parallel ip - initial checkin

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.osbp.releng.root b/.osbp.releng.root
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.osbp.releng.root
diff --git a/.project b/.project
new file mode 100644
index 0000000..4f79178
--- /dev/null
+++ b/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..f735bee
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,203 @@
+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/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..09f3c8e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,2 @@
+lunifera-ecview
+===============
diff --git a/about.html b/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
new file mode 100644
index 0000000..51ec190
--- /dev/null
+++ b/jenkins.build.config.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2016 - Loetz GmbH&Co.KG                                    -->
+<!--# 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:                                                          -->
+<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation                           -->
+<!--#======================================================================= -->
+<!--# Module specific parameters for the Jenkins Job 						 -->
+<!--#======================================================================= -->
+
+<jenkins>
+	<!-- DO NOT EDIT BELOW THIS LINE -->
+        <jenkins.build.dependencies>
+                <jenkins.build.dependency>org.eclipse.osbp.dsl</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.runtime</jenkins.build.dependency>
+        </jenkins.build.dependencies>
+</jenkins>
diff --git a/notice.html b/notice.html
new file mode 100644
index 0000000..c3d34c3
--- /dev/null
+++ b/notice.html
@@ -0,0 +1,107 @@
+<?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>April 9, 2014</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>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/org.eclipse.osbp.ecview.core.common.editparts.emf/.checkstyle b/org.eclipse.osbp.ecview.core.common.editparts.emf/.checkstyle
new file mode 100644
index 0000000..2f2667a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <fileset name="all" enabled="true" check-config-name="emfstoreStyle" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/.project b/org.eclipse.osbp.ecview.core.common.editparts.emf/.project
new file mode 100644
index 0000000..71f1fe3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/.project
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.common.editparts.emf</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/LICENSE.txt b/org.eclipse.osbp.ecview.core.common.editparts.emf/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.common.editparts.emf/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..3bb604c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/META-INF/MANIFEST.MF
@@ -0,0 +1,44 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.common.editparts.emf
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.common.editparts.emf
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-Activator: org.eclipse.osbp.ecview.core.common.editpart.emf.Activator
+Require-Bundle: org.eclipse.core.runtime;visibility:=reexport,
+ org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="2.8.0";visibility:=reexport,
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.1,1.5.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.1,1.5.0)",
+ org.eclipse.core.databinding.beans;bundle-version="[1.2.200,1.5.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.200,1.5.0)",
+ org.apache.commons.lang;bundle-version="2.6.0",
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.databinding.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.apache.commons.beanutils;bundle-version="1.9.2",
+ org.eclipse.osbp.runtime.jsr303.validation;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Import-Package: javax.validation;version="1.1.0",
+ javax.validation.bootstrap;version="1.1.0",
+ javax.validation.metadata;version="1.1.0",
+ org.eclipse.emf.databinding,
+ org.osgi.service.event;version="1.3.0",
+ org.slf4j;version="1.6.4"
+Export-Package: org.eclipse.osbp.ecview.core.common.editpart.emf;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.editpart.emf.binding;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.editpart.emf.common;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.editpart.emf.internal;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.editpart.emf.validation;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.editpart.emf.visibility;
+  uses:="org.eclipse.osbp.ecview.core.common.model.visibility,
+   org.eclipse.osbp.ecview.core.common.editpart.binding,
+   org.eclipse.osbp.ecview.core.common.visibility,
+   org.eclipse.osbp.ecview.core.common.editpart.visibility,
+   org.eclipse.emf.common.notify,
+   org.eclipse.osbp.ecview.core.common.editpart.emf";version="0.9.0"
+Service-Component: OSGI-INF/editPartManager.xml
diff --git "a/org.eclipse.osbp.ecview.core.common.editparts.emf/META-INF/TODO__Florian\041" "b/org.eclipse.osbp.ecview.core.common.editparts.emf/META-INF/TODO__Florian\041"
new file mode 100644
index 0000000..b1c5e82
--- /dev/null
+++ "b/org.eclipse.osbp.ecview.core.common.editparts.emf/META-INF/TODO__Florian\041"
@@ -0,0 +1,3 @@
+Exports im Manifest heißen *.editpart.emf
+Sollte sein *.editpartS.emf
+
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/OSGI-INF/editPartManager.xml b/org.eclipse.osbp.ecview.core.common.editparts.emf/OSGI-INF/editPartManager.xml
new file mode 100644
index 0000000..4db8a35
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/OSGI-INF/editPartManager.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="false" name="org.eclipse.osbp.ecview.core.ui.core.editparts.coreeditpartmanager">
+   <implementation class="org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager"/>
+   <service>
+      <provide interface="org.eclipse.osbp.ecview.core.common.editpart.IEditPartManager"/>
+   </service>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/about.html b/org.eclipse.osbp.ecview.core.common.editparts.emf/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/about.ini b/org.eclipse.osbp.ecview.core.common.editparts.emf/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/about.mappings b/org.eclipse.osbp.ecview.core.common.editparts.emf/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/about.properties b/org.eclipse.osbp.ecview.core.common.editparts.emf/about.properties
new file mode 100644
index 0000000..dae9328
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.common.editparts.emf
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/build.properties b/org.eclipse.osbp.ecview.core.common.editparts.emf/build.properties
new file mode 100644
index 0000000..55b9d77
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               OSGI-INF/,\
+               LICENSE.txt,\
+               license.html
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/license.html b/org.eclipse.osbp.ecview.core.common.editparts.emf/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/pom.xml b/org.eclipse.osbp.ecview.core.common.editparts.emf/pom.xml
new file mode 100644
index 0000000..12a96e6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.osbp.ecview.core</groupId>
+		<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.osbp.ecview.core.common.editparts.emf</artifactId>
+	<description>Contains the EMF based ui controller</description>
+	<packaging>eclipse-plugin</packaging>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<plugins>
+			<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source/>
+					<target/>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ActionEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ActionEditpart.java
new file mode 100644
index 0000000..62d5135
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ActionEditpart.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2013 Loetz GmbH&Co.KG(Heidelberg). 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: Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IActionEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementation of {@link IActionEditpart}.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public class ActionEditpart<M extends YAction> extends EmbeddableEditpart<M>
+		implements IActionEditpart {
+
+	/** The Constant LOGGER. */
+	@SuppressWarnings("unused")
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ActionEditpart.class);
+
+	/**
+	 * A default constructor.
+	 */
+	protected ActionEditpart() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeBridge#getDatatypeValidators()
+	 */
+	@Override
+	public List<IValidatorEditpart> getDatatypeValidators() {
+		return Collections.emptyList();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/Activator.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/Activator.java
new file mode 100644
index 0000000..786b3aa
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/Activator.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * Activator of the bundle.
+ */
+public class Activator implements BundleActivator {
+
+	private static BundleContext context;
+
+	/**
+	 * Returns the bundle context.
+	 * @return context
+	 */
+	static BundleContext getContext() {
+		return context;
+	}
+	
+	/**
+	 * {@inheritDoc}
+	 */
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void start(BundleContext bundleContext) throws Exception {
+		// END SUPRESS CATCH EXCEPTION
+		Activator.context = bundleContext;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void stop(BundleContext bundleContext) throws Exception {
+		// END SUPRESS CATCH EXCEPTION
+		Activator.context = null;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/BeanSlotListBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/BeanSlotListBindingEndpointEditpart.java
new file mode 100644
index 0000000..0850de4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/BeanSlotListBindingEndpointEditpart.java
@@ -0,0 +1,94 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.net.URI;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.binding.observables.ContextObservables;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IBeanSlotListBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableListEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Responsible to create a context observable based on the given bean slot.
+ */
+public class BeanSlotListBindingEndpointEditpart extends
+		BindableListEndpointEditpart<YBeanSlotListBindingEndpoint> implements
+		IBeanSlotListBindingEndpointEditpart {
+	private static final Logger logger = LoggerFactory
+			.getLogger(BeanSlotListBindingEndpointEditpart.class);
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableList> A getObservable() {
+		if (getModel().getAttributePath() == null
+				|| getModel().getAttributePath().equals("")) {
+			logger.error("Attribute path must not be null!");
+			return null;
+		}
+
+		YBeanSlot yBeanSlot = getModel().getBeanSlot();
+		if (yBeanSlot == null) {
+			logger.error("BeanSlot must not be null!");
+			return null;
+		}
+
+		// view or viewset
+		Object container = getModel().getBeanSlot().eContainer();
+		if (container instanceof YView) {
+			URI targetURI = getURI(yBeanSlot);
+			IViewEditpart viewEditpart = DelegatingEditPartManager
+					.getInstance().getEditpart(viewContext, container);
+			return (A) ContextObservables.observeList(
+					viewEditpart.getContext(), targetURI, getModel()
+							.getCollectionType());
+		}
+
+		throw new IllegalArgumentException(container
+				+ " is not a valid super type!");
+	}
+
+	/**
+	 * Returns the URI for the given bean slot. The URI may be used with the
+	 * {@link URIHelper} to access the bean slot.
+	 * 
+	 * @param yBeanSlot
+	 * @return
+	 */
+	private URI getURI(YBeanSlot yBeanSlot) {
+		EObject container = yBeanSlot.eContainer();
+		URI uri = null;
+		if (container instanceof YView) {
+			uri = URIHelper.view().bean(yBeanSlot.getName())
+					.fragment(getModel().getAttributePath()).toURI();
+		} else {
+			throw new RuntimeException(container + " is not a valid type!");
+		}
+
+		return uri;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/BeanSlotValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/BeanSlotValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..db02ff3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/BeanSlotValueBindingEndpointEditpart.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.net.URI;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.binding.observables.ContextObservables;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IBeanSlotValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Responsible to create a context observable based on the given bean slot.
+ */
+public class BeanSlotValueBindingEndpointEditpart extends
+		BindableValueEndpointEditpart<YBeanSlotValueBindingEndpoint> implements
+		IBeanSlotValueBindingEndpointEditpart {
+	private static final Logger logger = LoggerFactory
+			.getLogger(BeanSlotValueBindingEndpointEditpart.class);
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableValue> A getObservable() {
+		YBeanSlot yBeanSlot = getModel().getBeanSlot();
+		if (yBeanSlot == null) {
+			logger.error("BeanSlot must not be null!");
+			return null;
+		}
+
+		// view or viewset
+		Object container = getModel().getBeanSlot().eContainer();
+		if (container instanceof YView) {
+			URI targetURI = getURI(yBeanSlot);
+			IViewEditpart viewEditpart = DelegatingEditPartManager
+					.getInstance().getEditpart(viewContext, container);
+			return (A) ContextObservables.observeValue(
+					viewEditpart.getContext(), targetURI);
+		}
+
+		throw new IllegalArgumentException(container
+				+ " is not a valid super type!");
+	}
+
+	/**
+	 * Returns the URI for the given bean slot. The URI may be used with the
+	 * {@link URIHelper} to access the bean slot.
+	 * 
+	 * @param yBeanSlot
+	 * @return
+	 */
+	private URI getURI(YBeanSlot yBeanSlot) {
+		EObject container = yBeanSlot.eContainer();
+		URI uri = null;
+		if (container instanceof YView) {
+			if (getModel().getAttributePath() == null
+					|| getModel().getAttributePath().equals("")) {
+				uri = URIHelper.view().bean(yBeanSlot.getName()).toURI();
+			} else {
+				uri = URIHelper.view().bean(yBeanSlot.getName())
+						.fragment(getModel().getAttributePath()).toURI();
+			}
+		} else {
+			throw new RuntimeException(container + " is not a valid type!");
+		}
+
+		return uri;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/CommandEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/CommandEditpart.java
new file mode 100644
index 0000000..3e73b90
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/CommandEditpart.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+// TODO: Auto-generated Javadoc
+/**
+ * See {@link ElementEditpart}.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public abstract class CommandEditpart<M extends YCommand> extends
+		ElementEditpart<M> implements ICommandEditpart {
+
+	/**
+	 * The default constructor.
+	 */
+	protected CommandEditpart() {
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IElementEditpart getParent() {
+		YElement yParent = (YElement) getModel().eContainer();
+		return yParent != null ? getEditpart(viewContext, yParent) : null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart#getView()
+	 */
+	@Override
+	public IViewEditpart getView() {
+		YView yView = getModel().getView();
+		return yView != null ? (IViewEditpart) getEditpart(viewContext, yView) : null;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/CommandSetEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/CommandSetEditpart.java
new file mode 100644
index 0000000..3d44c43
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/CommandSetEditpart.java
@@ -0,0 +1,370 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementation of {@link ICommandSetEditpart}.
+ */
+public class CommandSetEditpart extends ElementEditpart<YCommandSet> implements
+		ICommandSetEditpart {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(CommandSetEditpart.class);
+
+	/** The lock. */
+	private Object lock;
+	
+	/** The active. */
+	private boolean active;
+	
+	/** The commands. */
+	private List<ICommandEditpart> commands;
+	
+	/** The transient commands. */
+	private List<ICommandEditpart> transientCommands;
+
+	/**
+	 * A default constructor.
+	 */
+	public CommandSetEditpart() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart#getView()
+	 */
+	@Override
+	public IViewEditpart getView() {
+		checkDisposed();
+
+		YView yView = getModel().getView();
+		return yView != null ? (IViewEditpart) ElementEditpart
+				.findEditPartFor(yView) : null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart#isActive()
+	 */
+	@Override
+	public boolean isActive() {
+		checkDisposed();
+
+		return active;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart#activate()
+	 */
+	@Override
+	public void activate() {
+		checkDisposed();
+
+		try {
+			getCommands();
+			getTransientCommands();
+		} finally {
+			active = true;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart#addCommand(org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart)
+	 */
+	@Override
+	public void addCommand(ICommandEditpart command) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			YCommandSet yCommandSet = getModel();
+			YCommand yCommand = (YCommand) command.getModel();
+			yCommandSet.addCommand(yCommand);
+
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart#removeCommand(org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart)
+	 */
+	@Override
+	public void removeCommand(ICommandEditpart command) {
+		try {
+			checkDisposed();
+
+			// remove the element by using the model
+			//
+			YCommandSet yCommandSet = getModel();
+			YCommand yCommand = (YCommand) command.getModel();
+			yCommandSet.removeCommand(yCommand);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelAdd(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelAdd(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YCOMMAND_SET__COMMANDS:
+			YCommand yCommand = (YCommand) notification.getNewValue();
+
+			ICommandEditpart editPart = (ICommandEditpart) getEditpart(viewContext, yCommand);
+			internalAddCommand(editPart);
+			break;
+		case CoreModelPackage.YCOMMAND_SET__TRANSIENT_COMMANDS:
+			yCommand = (YCommand) notification.getNewValue();
+
+			editPart = (ICommandEditpart) getEditpart(viewContext, yCommand);
+			internalAddTransientCommand(editPart);
+			break;
+		default:
+			break;
+		}
+
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of commands.
+	 * 
+	 * @param command
+	 *            The editpart to be added
+	 */
+	protected void internalAddCommand(ICommandEditpart command) {
+		checkDisposed();
+
+		ensureCommandsLoaded();
+		if (!commands.contains(command)) {
+			commands.add(command);
+
+			// activates the command
+			command.activate();
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of commands.
+	 * 
+	 * @param command
+	 *            The editpart to be added
+	 */
+	protected void internalAddTransientCommand(ICommandEditpart command) {
+		checkDisposed();
+
+		ensureTransientCommandsLoaded();
+		if (!transientCommands.contains(command)) {
+			transientCommands.add(command);
+
+			// activates the command
+			command.activate();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelRemove(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelRemove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YCOMMAND_SET__COMMANDS:
+			YCommand yCommand = (YCommand) notification.getOldValue();
+
+			ICommandEditpart editPart = (ICommandEditpart) getEditpart(viewContext, yCommand);
+			internalRemoveCommand(editPart);
+			break;
+		case CoreModelPackage.YCOMMAND_SET__TRANSIENT_COMMANDS:
+			yCommand = (YCommand) notification.getOldValue();
+
+			editPart = (ICommandEditpart) getEditpart(viewContext, yCommand);
+			internalRemoveTransientCommand(editPart);
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * Ensures that the internal commands are loaded properly.
+	 */
+	private void ensureCommandsLoaded() {
+		if (commands == null) {
+			internalLoadCommands();
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all commands.
+	 */
+	protected void internalLoadCommands() {
+		checkDisposed();
+
+		if (commands == null) {
+			commands = new ArrayList<ICommandEditpart>();
+			for (YCommand yCommand : getModel().getCommands()) {
+				ICommandEditpart editPart = getEditpart(viewContext, yCommand);
+				internalAddCommand(editPart);
+			}
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of commands.
+	 * 
+	 * @param command
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveCommand(ICommandEditpart command) {
+		checkDisposed();
+
+		if (commands != null && command != null) {
+			commands.remove(command);
+		}
+
+		// unbinds the command
+		if (command != null) {
+			command.dispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart#getCommands()
+	 */
+	@Override
+	public List<ICommandEditpart> getCommands() {
+		ensureCommandsLoaded();
+		return new ArrayList<ICommandEditpart>(commands);
+	}
+
+	/**
+	 * Ensures that the internal transientCommands are loaded properly.
+	 */
+	private void ensureTransientCommandsLoaded() {
+		if (transientCommands == null) {
+			internalLoadTransientCommands();
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all transientCommands.
+	 */
+	protected void internalLoadTransientCommands() {
+		checkDisposed();
+
+		if (transientCommands == null) {
+			transientCommands = new ArrayList<ICommandEditpart>();
+			for (YCommand yCommand : getModel().getTransientCommands()) {
+				ICommandEditpart editPart = getEditpart(viewContext, yCommand);
+				internalAddTransientCommand(editPart);
+			}
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of transientCommands.
+	 * 
+	 * @param command
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveTransientCommand(ICommandEditpart command) {
+		checkDisposed();
+
+		if (transientCommands != null && command != null) {
+			transientCommands.remove(command);
+		}
+
+		// unbinds the command
+		if (command != null) {
+			command.dispose();
+		}
+	}
+
+	/**
+	 * Gets the transient commands.
+	 *
+	 * @return the transient commands
+	 */
+	public List<ICommandEditpart> getTransientCommands() {
+		ensureTransientCommandsLoaded();
+		return new ArrayList<ICommandEditpart>(transientCommands);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (lock != null) {
+				lock = new Object();
+			}
+			synchronized (lock) {
+				// lazy loading: edit parts also have to be disposed if they
+				// have
+				// not been loaded yet, but exist in the model.
+				if (commands != null || !getModel().getCommands().isEmpty()) {
+					List<ICommandEditpart> tempElements = getCommands();
+					for (ICommandEditpart command : tempElements
+							.toArray(new ICommandEditpart[tempElements.size()])) {
+						command.dispose();
+					}
+				}
+				commands = null;
+
+				if (transientCommands != null
+						|| !getModel().getTransientCommands().isEmpty()) {
+					List<ICommandEditpart> tempElements = getTransientCommands();
+					for (ICommandEditpart command : tempElements
+							.toArray(new ICommandEditpart[tempElements.size()])) {
+						command.dispose();
+					}
+				}
+				transientCommands = null;
+			}
+			lock = null;
+		} finally {
+			super.internalDispose();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ContextValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ContextValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..2380e41
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ContextValueBindingEndpointEditpart.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.net.URI;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.binding.observables.ContextObservables;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IContextValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Responsible to create a context observables.
+ */
+public class ContextValueBindingEndpointEditpart extends
+		BindableValueEndpointEditpart<YContextValueBindingEndpoint> implements
+		IContextValueBindingEndpointEditpart {
+	private static final Logger logger = LoggerFactory
+			.getLogger(ContextValueBindingEndpointEditpart.class);
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableValue> A getObservable() {
+		YView yView = null;
+		try {
+			yView = getModel().getBinding().getBindingSet().getView();
+		} catch (NullPointerException e) {
+			logger.error("{}", e);
+			throw new RuntimeException("View must not be null!", e);
+		}
+
+		if (getModel().getUrlString() == null
+				|| getModel().getUrlString().equals("")) {
+			logger.error("URLString must not be null!");
+			return null;
+		}
+
+		IViewEditpart viewEditpart = DelegatingEditPartManager.getInstance()
+				.getEditpart(viewContext, yView);
+		return (A) ContextObservables.observeValue(viewEditpart.getContext(),
+				URI.create(getModel().getUrlString()));
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ConverterEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ConverterEditpart.java
new file mode 100644
index 0000000..894754f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ConverterEditpart.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.editpart.IConverterEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YConverter;
+import org.eclipse.osbp.ecview.core.common.presentation.DelegatingConverterFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The implementation of the IOpenDialogCommandEditpart.
+ */
+public class ConverterEditpart extends ElementEditpart<YConverter> implements
+		IConverterEditpart {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ConverterEditpart.class);
+	private Object delegate;
+
+	@Override
+	public Object getDelegate() {
+		if (delegate == null) {
+			EObject context = (EObject) getModel().eContainer();
+			delegate = DelegatingConverterFactory.getInstance()
+					.createConverter(getViewContext(context), this);
+
+			LOGGER.info("Created converter for " + getModel());
+		}
+
+		return delegate;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/DetailValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/DetailValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..c69161e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/DetailValueBindingEndpointEditpart.java
@@ -0,0 +1,142 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.beans.PropertyChangeListener;
+import java.lang.reflect.Method;
+import java.util.List;
+
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.PojoObservables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.FeaturePath;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IDetailValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
+
+/**
+ * Responsible to create an observable. The model of this editpart is used to
+ * access the getObservableValue from the underlying widget presentation.
+ */
+public class DetailValueBindingEndpointEditpart extends
+		BindableValueEndpointEditpart<YDetailValueBindingEndpoint> implements
+		IDetailValueBindingEndpointEditpart {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart#getObservable()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableValue> A getObservable() {
+		IBindableValueEndpointEditpart masterEditpart = DelegatingEditPartManager
+				.getInstance().getEditpart(viewContext, getModel().getMasterObservable());
+
+		IObservableValue masterObservable = (IObservableValue) masterEditpart
+				.getObservable();
+		Class<?> type = getModel().getType();
+		if (type == null) {
+			throw new RuntimeException("Type must not be null");
+		}
+
+		if (EObject.class.isAssignableFrom(type)) {
+			if (getModel().getFeatures().size() == 0) {
+				throw new IllegalArgumentException(
+						"Please use features for EObjects");
+			}
+
+			List<EStructuralFeature> features = getModel().getFeatures();
+			return (A) EMFProperties.value(FeaturePath.fromList(features
+					.toArray(new EStructuralFeature[features.size()]))).observeDetail(masterObservable);
+		} else if (hasPropertyChangeSupport(type)) {
+			return (A) BeansObservables.observeDetailValue(masterObservable,
+					type, getModel().getPropertyPath(), null);
+		} else {
+			return (A) PojoObservables.observeDetailValue(masterObservable,
+					getModel().getPropertyPath(), null);
+		}
+	}
+
+	// private FeaturePath createFeaturePath(EClass eClass) {
+	// List<EStructuralFeature> features = new ArrayList<EStructuralFeature>();
+	// String[] properties = getModel().getPropertyPath().split("\\.");
+	// for (String property : properties) {
+	// EStructuralFeature feature = eClass.getEStructuralFeature(property);
+	// if (feature == null) {
+	// throw new IllegalStateException(String.format(
+	// "%s is not a valid feature for %s!", property,
+	// eClass.getName()));
+	// }
+	//
+	// features.add(feature);
+	// if (feature instanceof EReference) {
+	// EReference eReference = (EReference) feature;
+	// eClass = eReference.getEReferenceType();
+	// }
+	// }
+	//
+	// FeaturePath path = FeaturePath.fromList(features
+	// .toArray(new EStructuralFeature[features.size()]));
+	// return path;
+	// }
+	//
+	// /**
+	// * Tries to find the eClass for the given type.
+	// *
+	// * @param type
+	// * @return
+	// */
+	// private EClass findEClass(Class<?> type, String nsURI) {
+	// EClass eClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(nsURI)
+	// .getEClassifier(type.getSimpleName());
+	// return eClass;
+	// }
+
+	/**
+	 * Returns true, if the bean has property change support.
+	 *
+	 * @param valueType
+	 *            the value type
+	 * @return true, if successful
+	 */
+	protected boolean hasPropertyChangeSupport(Class<?> valueType) {
+		@SuppressWarnings("unused")
+		Method method = null;
+		try {
+			try {
+				method = valueType.getMethod("addPropertyChangeListener",
+						new Class[] { String.class,
+								PropertyChangeListener.class });
+				return true;
+			} catch (NoSuchMethodException e) {
+				method = valueType.getMethod("addPropertyChangeListener",
+						new Class[] { PropertyChangeListener.class });
+				return true;
+			}
+		} catch (SecurityException e) {
+		} catch (NoSuchMethodException e) {
+		}
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart#setRefreshProvider(org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart.RefreshProvider)
+	 */
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/DialogEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/DialogEditpart.java
new file mode 100644
index 0000000..97765a8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/DialogEditpart.java
@@ -0,0 +1,340 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.presentation.DelegatingPresenterFactory;
+import org.eclipse.osbp.ecview.core.common.presentation.IDialogPresentation;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class DialogEditpart.
+ */
+public class DialogEditpart extends ElementEditpart<YDialog> implements
+		IDialogEditpart {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(EmbeddableEditpart.class);
+	
+	/** The presentation. */
+	private IDialogPresentation<?> presentation;
+	
+	/** The content. */
+	private IEmbeddableEditpart content;
+
+	/**
+	 * The default constructor.
+	 */
+	protected DialogEditpart() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#getParent()
+	 */
+	@Override
+	public IViewEditpart getParent() {
+		return getView();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#getView()
+	 */
+	@Override
+	public IViewEditpart getView() {
+		YView yView = getModel().getView();
+		return yView != null ? (IViewEditpart) getEditpart(viewContext, yView) : null;
+	}
+
+	/**
+	 * Returns the instance of the presentation, but does not load it.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IWidgetPresentation}
+	 * @return presentation
+	 */
+	@SuppressWarnings("unchecked")
+	protected <A extends IWidgetPresentation<?>> A internalGetPresentation() {
+		return (A) presentation;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#getPresentation()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IDialogPresentation<?>> A getPresentation() {
+		if (presentation == null) {
+			presentation = createPresenter();
+			presentation.setContent(getContent());
+		}
+		return (A) presentation;
+	}
+
+	/**
+	 * Is called to created the presenter for this edit part.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @return the a
+	 */
+	protected <A extends IWidgetPresentation<?>> A createPresenter() {
+		IViewEditpart viewEditPart = getView();
+		if (viewEditPart == null) {
+			LOGGER.info("View is null");
+			return null;
+		}
+		return DelegatingPresenterFactory.getInstance().createPresentation(
+				viewEditPart.getContext(), this);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			// dispose the presenter
+			//
+			if (presentation != null) {
+				presentation.dispose();
+				presentation = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#requestRender()
+	 */
+	@Override
+	public void requestRender() {
+		if (getParent() != null) {
+			getParent().openDialog(this, null);
+		} else {
+			unrender();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#render(java.lang.Object)
+	 */
+	@Override
+	public Object render(Object parentWidget) {
+		return getPresentation().createWidget(parentWidget);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#requestUnrender()
+	 */
+	@Override
+	public void requestUnrender() {
+		if (getParent() != null) {
+			getParent().closeDialog(this);
+		} else {
+			unrender();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#unrender()
+	 */
+	@Override
+	public void unrender() {
+		getPresentation().unrender();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#isRendered()
+	 */
+	@Override
+	public boolean isRendered() {
+		return internalGetPresentation() != null
+				&& internalGetPresentation().isRendered();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#getWidget()
+	 */
+	@Override
+	public Object getWidget() {
+		return getPresentation().getWidget();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#requestDispose()
+	 */
+	@Override
+	public void requestDispose() {
+		if (getParent() != null) {
+			getParent().closeDialog(this);
+		} else {
+			dispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent#renderChild(org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void renderChild(IEmbeddableEditpart child) {
+		if (child != content) {
+			return;
+		}
+
+		getPresentation().setContent(child);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent#unrenderChild(org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void unrenderChild(IEmbeddableEditpart child) {
+		if (child != content) {
+			return;
+		}
+
+		// first remove the child presentation from the current presentation
+		getPresentation().setContent(null);
+
+		// then tell the child editpart to unrender its own presentation
+		child.unrender();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent#disposeChild(org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void disposeChild(IEmbeddableEditpart child) {
+		if (child != content) {
+			return;
+		}
+
+		// first remove the child presentation from the current presentation
+		getPresentation().setContent(null);
+
+		// then tell the child editpart to dispose itself
+		child.dispose();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YDIALOG__CONTENT:
+			IEmbeddableEditpart oldContent = content;
+			if (oldContent != null) {
+				oldContent.dispose();
+				internalSetContent(null);
+				if (isRendered()) {
+					getPresentation().setContent(null);
+				}
+			}
+
+			YEmbeddable yNewContent = (YEmbeddable) notification.getNewValue();
+			IEmbeddableEditpart editPart = (IEmbeddableEditpart) getEditpart(viewContext, yNewContent);
+			internalSetContent(editPart);
+
+			// handle the presentation
+			//
+			if (isRendered()) {
+				getPresentation().setContent(editPart);
+			}
+
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * Sets the content.
+	 *
+	 * @param content
+	 *            the new content
+	 */
+	public void setContent(IEmbeddableEditpart content) {
+		try {
+			checkDisposed();
+
+			// set the element by using the model
+			//
+			YDialog yDialog = getModel();
+			YEmbeddable yElement = content != null ? (YEmbeddable) content
+					.getModel() : null;
+			yDialog.setContent(yElement);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/**
+	 * Gets the content.
+	 *
+	 * @return the content
+	 */
+	public IEmbeddableEditpart getContent() {
+		if (content == null) {
+			loadContent();
+		}
+		return content;
+	}
+
+	/**
+	 * Loads the content of the view.
+	 */
+	protected void loadContent() {
+		if (content == null) {
+			YEmbeddable yContent = getModel().getContent();
+			internalSetContent((IEmbeddableEditpart) getEditpart(viewContext, yContent));
+		}
+	}
+
+	/**
+	 * May be invoked by a model change and the content of the edit part should
+	 * be set.
+	 * 
+	 * @param content
+	 *            The content to be set
+	 */
+	protected void internalSetContent(IEmbeddableEditpart content) {
+		this.content = content;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart#setInputDataBindingEndpoint(org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart)
+	 */
+	@Override
+	public void setInputDataBindingEndpoint(
+			IBindableEndpointEditpart bindingEndpoint) {
+		IDialogPresentation<?> presentation = getPresentation();
+		presentation.setInputDataBindingEndpoint(bindingEndpoint);
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ECViewModelListBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ECViewModelListBindingEndpointEditpart.java
new file mode 100644
index 0000000..22a7cab
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ECViewModelListBindingEndpointEditpart.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.emf.databinding.FeaturePath;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.editpart.IECViewModelListBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableListEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.databinding.emf.model.ECViewModelBindable;
+
+/**
+ * Responsible to create an observable. The model of this editpart is used to
+ * access the getObservableValue from the underlying widget presentation.
+ */
+@SuppressWarnings("restriction")
+public class ECViewModelListBindingEndpointEditpart extends
+		BindableListEndpointEditpart<YECViewModelListBindingEndpoint> implements
+		IECViewModelListBindingEndpointEditpart {
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableList> A getObservable() {
+		YECViewModelListBindingEndpoint model = getModel();
+		if (model.getFeatures().size() > 0) {
+			List<EStructuralFeature> features = model.getFeatures();
+			return (A) ECViewModelBindable.observeList(model.getElement(),
+					FeaturePath.fromList(features
+							.toArray(new EStructuralFeature[features.size()])));
+		} else if (model.getPropertyPath() != null
+				&& !model.getPropertyPath().equals("")) {
+			return (A) ECViewModelBindable.observeList(model.getElement(),
+					model.getPropertyPath(), model.getType());
+		}
+
+		throw new IllegalArgumentException("Not a valid binding model " + model);
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ECViewModelValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ECViewModelValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..414f389
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ECViewModelValueBindingEndpointEditpart.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.FeaturePath;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.editpart.IECViewModelValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.databinding.emf.model.ECViewModelBindable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Responsible to create an observable. The model of this editpart is used to
+ * access the getObservableValue from the underlying widget presentation.
+ */
+@SuppressWarnings("restriction")
+public class ECViewModelValueBindingEndpointEditpart extends
+		BindableValueEndpointEditpart<YECViewModelValueBindingEndpoint>
+		implements IECViewModelValueBindingEndpointEditpart {
+	
+	private static final Logger LOGGER = LoggerFactory.getLogger(ECViewModelValueBindingEndpointEditpart.class);
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableValue> A getObservable() {
+		YECViewModelValueBindingEndpoint model = getModel();
+		if (model.getFeatures().size() > 0) {
+			List<EStructuralFeature> features = model.getFeatures();
+			return (A) ECViewModelBindable.observeValue(model.getElement(),
+					FeaturePath.fromList(features
+							.toArray(new EStructuralFeature[features.size()])));
+		} else if (model.getPropertyPath() != null
+				&& !model.getPropertyPath().equals("")) {
+			return (A) ECViewModelBindable.observeValue(model.getElement(),
+					model.getPropertyPath(), model.getType(),
+					model.getEmfNsURI());
+		}
+
+		LOGGER.error("Not a valid binding model " + model);
+		return null;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EditpartManager.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EditpartManager.java
new file mode 100644
index 0000000..55064f1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EditpartManager.java
@@ -0,0 +1,310 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BeanValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.EnumListBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.ListBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.ValueBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.VisibilityProcessorValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.common.AbstractEditpartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.BeanValidationValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.ClassDelegateValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.MaxLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.MinLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.RegexpValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.visibility.VisibilityProcessorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YConverter;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+
+/**
+ * An implementation of IEditPartManager for eObjects with
+ * nsURI=http://eclipse.org/emf/emfclient/uimodel.
+ */
+public class EditpartManager extends AbstractEditpartManager {
+
+	@Override
+	public boolean isFor(Object element) {
+		if (element instanceof EObject) {
+			String uriString = ((EObject) element).eClass().getEPackage()
+					.getNsURI();
+			return uriString.equals(CoreModelPackage.eNS_URI)
+					|| uriString.equals(BindingPackage.eNS_URI)
+					|| uriString.equals(ValidationPackage.eNS_URI)
+					|| uriString.equals(VisibilityPackage.eNS_URI);
+		} else if (element instanceof String) {
+			return element.equals(CoreModelPackage.eNS_URI)
+					|| element.equals(BindingPackage.eNS_URI)
+					|| element.equals(ValidationPackage.eNS_URI)
+					|| element.equals(VisibilityPackage.eNS_URI);
+		}
+		return false;
+	}
+
+//	@SuppressWarnings("unchecked")
+//	@Override
+//	public <A extends IElementEditpart> A createEditpart(IViewContext context, Object selector,
+//			Class<A> editPartClazz) {
+//		ElementEditpart<YElement> result = null;
+//		if (editPartClazz.isAssignableFrom(IViewEditpart.class)) {
+//			result = createNewInstance(ViewEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(ILayoutEditpart.class)) {
+//			result = createNewInstance(LayoutEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(IFieldEditpart.class)) {
+//			result = createNewInstance(FieldEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(IActionEditpart.class)) {
+//			result = createNewInstance(ActionEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(IBindingSetEditpart.class)) {
+//			result = createNewInstance(BindingSetEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IDetailValueBindingEndpointEditpart.class)) {
+//			result = createNewInstance(DetailValueBindingEndpointEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(IValueBindingEditpart.class)) {
+//			result = createNewInstance(ValueBindingEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(IListBindingEditpart.class)) {
+//			result = createNewInstance(ListBindingEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IContextValueBindingEndpointEditpart.class)) {
+//			result = createNewInstance(ContextValueBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IBeanSlotValueBindingEndpointEditpart.class)) {
+//			result = createNewInstance(BeanSlotValueBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IBeanSlotListBindingEndpointEditpart.class)) {
+//			result = createNewInstance(BeanSlotListBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IEmbeddableValueBindingEndpointEditpart.class)) {
+//			result = createNewInstance(EmbeddableValueBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IEmbeddableSelectionEndpointEditpart.class)) {
+//			result = createNewInstance(EmbeddableSelectionBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IEmbeddableMultiSelectionEndpointEditpart.class)) {
+//			result = createNewInstance(EmbeddableMultiSelectionBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IEmbeddableCollectionEndpointEditpart.class)) {
+//			result = createNewInstance(EmbeddableCollectionBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IBeanValueBindingEndpointEditpart.class)) {
+//			result = createNewInstance(BeanValueBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IECViewModelValueBindingEndpointEditpart.class)) {
+//			result = createNewInstance(ECViewModelValueBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IECViewModelListBindingEndpointEditpart.class)) {
+//			result = createNewInstance(ECViewModelListBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IEnumListBindingEndpointEditpart.class)) {
+//			result = createNewInstance(EnumListBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IMinLengthValidatorEditpart.class)) {
+//			result = createNewInstance(MinLengthValidatorEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IMaxLengthValidatorEditpart.class)) {
+//			result = createNewInstance(MaxLengthValidatorEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IRegexpValidatorEditpart.class)) {
+//			result = createNewInstance(RegexpValidatorEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IClassDelegateValidatorEditpart.class)) {
+//			result = createNewInstance(ClassDelegateValidatorEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IClassDelegateValidatorEditpart.class)) {
+//			result = createNewInstance(ClassDelegateValidatorEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IBeanValidationValidatorEditpart.class)) {
+//			result = createNewInstance(BeanValidationValidatorEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IVisibilityProcessorEditpart.class)) {
+//			result = createNewInstance(VisibilityProcessorEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IVisibilityPropertiesEditpart.class)) {
+//			result = createNewInstance(VisibilityPropertiesEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(ICommandSetEditpart.class)) {
+//			result = createNewInstance(CommandSetEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(IDialogEditpart.class)) {
+//			result = createNewInstance(DialogEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IOpenDialogCommandEditpart.class)) {
+//			result = createNewInstance(OpenDialogCommandEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IVisibilityProcessorValueBindingEndpointEditpart.class)) {
+//			result = createNewInstance(VisibilityProcessorValueBindingEndpointEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IVisibilityProcessorEditpart.class)) {
+//			result = createNewInstance(VisibilityProcessorEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(IExposedActionEditpart.class)) {
+//			result = createNewInstance(ExposedActionEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(ISendEventCommandEditpart.class)) {
+//			result = createNewInstance(SendEventCommandEditpart.class);
+//		} else if (editPartClazz
+//				.isAssignableFrom(IKeyStrokeDefinitionEditpart.class)) {
+//			result = createNewInstance(KeyStrokeDefinitionEditpart.class);
+//		} else if (editPartClazz.isAssignableFrom(IConverterEditpart.class)) {
+//			result = createNewInstance(ConverterEditpart.class);
+//		}
+//
+//		if (result != null) {
+//			result.initialize();
+//		}
+//
+//		return (A) result;
+//	}
+
+	/**
+	 * Creates a new instance of the edit part.
+	 * 
+	 * @param <A>
+	 *            an instance of {@link IElementEditpart}
+	 * @param yElement
+	 *            the model element
+	 * @return editpart
+	 */
+	@SuppressWarnings("unchecked")
+	protected <A extends IElementEditpart> A createEditpart(IViewContext context, Object yElement) {
+		// asserts that no editpart was created already for the given element
+		assertOneEditpartForModelelement(yElement);
+
+		ElementEditpart<YElement> result = null;
+		if (yElement instanceof YView) {
+			result = createNewInstance(ViewEditpart.class);
+		} else if (yElement instanceof YLayout) {
+			result = createNewInstance(LayoutEditpart.class);
+		} else if (yElement instanceof YField) {
+			result = createNewInstance(FieldEditpart.class);
+		} else if (yElement instanceof YAction) {
+			result = createNewInstance(ActionEditpart.class);
+		} else if (yElement instanceof YBindingSet) {
+			result = createNewInstance(BindingSetEditpart.class);
+		} else if (yElement instanceof YValueBinding) {
+			result = createNewInstance(ValueBindingEditpart.class);
+		} else if (yElement instanceof YListBinding) {
+			result = createNewInstance(ListBindingEditpart.class);
+		} else if (yElement instanceof YContextValueBindingEndpoint) {
+			result = createNewInstance(ContextValueBindingEndpointEditpart.class);
+		} else if (yElement instanceof YBeanSlotValueBindingEndpoint) {
+			result = createNewInstance(BeanSlotValueBindingEndpointEditpart.class);
+		} else if (yElement instanceof YBeanSlotListBindingEndpoint) {
+			result = createNewInstance(BeanSlotListBindingEndpointEditpart.class);
+		} else if (yElement instanceof YDetailValueBindingEndpoint) {
+			result = createNewInstance(DetailValueBindingEndpointEditpart.class);
+		} else if (yElement instanceof YEmbeddableValueEndpoint) {
+			result = createNewInstance(EmbeddableValueBindingEndpointEditpart.class);
+		} else if (yElement instanceof YEmbeddableSelectionEndpoint) {
+			result = createNewInstance(EmbeddableSelectionBindingEndpointEditpart.class);
+		} else if (yElement instanceof YEmbeddableMultiSelectionEndpoint) {
+			result = createNewInstance(EmbeddableMultiSelectionBindingEndpointEditpart.class);
+		} else if (yElement instanceof YEmbeddableCollectionEndpoint) {
+			result = createNewInstance(EmbeddableCollectionBindingEndpointEditpart.class);
+		} else if (yElement instanceof YBeanValueBindingEndpoint) {
+			result = createNewInstance(BeanValueBindingEndpointEditpart.class);
+		} else if (yElement instanceof YEnumListBindingEndpoint) {
+			result = createNewInstance(EnumListBindingEndpointEditpart.class);
+		} else if (yElement instanceof YECViewModelValueBindingEndpoint) {
+			result = createNewInstance(ECViewModelValueBindingEndpointEditpart.class);
+		} else if (yElement instanceof YECViewModelListBindingEndpoint) {
+			result = createNewInstance(ECViewModelListBindingEndpointEditpart.class);
+		} else if (yElement instanceof YMinLengthValidator) {
+			result = createNewInstance(MinLengthValidatorEditpart.class);
+		} else if (yElement instanceof YMaxLengthValidator) {
+			result = createNewInstance(MaxLengthValidatorEditpart.class);
+		} else if (yElement instanceof YRegexpValidator) {
+			result = createNewInstance(RegexpValidatorEditpart.class);
+		} else if (yElement instanceof YClassDelegateValidator) {
+			result = createNewInstance(ClassDelegateValidatorEditpart.class);
+		} else if (yElement instanceof YBeanValidationValidator) {
+			result = createNewInstance(BeanValidationValidatorEditpart.class);
+		} else if (yElement instanceof YCommandSet) {
+			result = createNewInstance(CommandSetEditpart.class);
+		} else if (yElement instanceof YDialog) {
+			result = createNewInstance(DialogEditpart.class);
+		} else if (yElement instanceof YOpenDialogCommand) {
+			result = createNewInstance(OpenDialogCommandEditpart.class);
+		} else if (yElement instanceof YVisibilityProcessorValueBindingEndpoint) {
+			result = createNewInstance(VisibilityProcessorValueBindingEndpointEditpart.class);
+		} else if (yElement instanceof YVisibilityProcessor) {
+			result = createNewInstance(VisibilityProcessorEditpart.class);
+		} else if (yElement instanceof YExposedAction) {
+			result = createNewInstance(ExposedActionEditpart.class);
+		} else if (yElement instanceof YSendEventCommand) {
+			result = createNewInstance(SendEventCommandEditpart.class);
+		} else if (yElement instanceof YKeyStrokeDefinition) {
+			result = createNewInstance(KeyStrokeDefinitionEditpart.class);
+		} else if (yElement instanceof YConverter) {
+			result = createNewInstance(ConverterEditpart.class);
+		}
+
+		if (result != null) {
+			result.initialize(context, (YElement) yElement);
+		}
+
+		return (A) result;
+	}
+
+	/**
+	 * Returns a new instance of the type.
+	 * 
+	 * @param type
+	 *            The type of the edit part to be created
+	 * @return editpart
+	 * @throws InstantiationException
+	 *             e
+	 * @throws IllegalAccessException
+	 *             e
+	 */
+	protected IElementEditpart newInstance(
+			Class<? extends IElementEditpart> type)
+			throws InstantiationException, IllegalAccessException {
+		return type.newInstance();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ElementEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ElementEditpart.java
new file mode 100644
index 0000000..644f2a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ElementEditpart.java
@@ -0,0 +1,595 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpartProvider;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The implementation of the main edit part. <br>
+ * The whole ui is based on an ui model which is built by emf. And each edit
+ * part is based on an EObject (ui model element) that is given in the
+ * initialize method and contains all information required to render the ui
+ * element. The edit part is just the controller that renders the ui but the
+ * informations how to render is given by the EObject.
+ * <p>
+ * For general, edit parts have 3 different kind of methods. <br>
+ * <h3>API</h3> API are public methods that are declared by the interfaces. They
+ * can be used to create the ui based on the edit parts like
+ * <p>
+ * <code>
+ * layoutEditpart.addElement(element)
+ * </code>
+ * <p>
+ * Internally these methods do not handle the calls directly, but will delegate
+ * to the underlying EMF model. What means, that the implementation of the
+ * public methods do not create ui, but just changes the EObject.
+ * 
+ * <h3>EMF adpater</h3>
+ * Since each edit part inherits {@link Adapter} and observes all the
+ * notifications from the assigned element, the changes made by the public API
+ * methods will notify the {@link #notifyChanged(Notification)} method that
+ * delegates the call to the handleModel_... methods.<br>
+ * 
+ * <h3>Internal methods</h3> The handleModel_... methods interpret the model
+ * change and invoke the internal... methods. These are responsible to make the
+ * changes to internal state of the edit part.
+ * 
+ * <h3>Advantage</h3> The advantage of that pattern is to provide a very
+ * flexible API. The ui can be built up by the edit parts, but it can be also
+ * defined based on the underlying emf model.
+ * 
+ * <h3>Presenters</h3> The presenter used to render the ui by a special ui-kit
+ * may use databinding. Therefore they can bind the emf model directly to become
+ * notified of changes to the ui model. But they can also bind the edit parts
+ * properties. But attention! Binding an edit part can only notify about edit
+ * part related changes. For instance, if a new edit part was prepared based on
+ * a model change. All returned lists for <code>"List get[Element]()"</code>
+ * should return an unmodifiable bindable list representation like a
+ * UnmodifiableObservableList.
+ * <p>
+ *
+ * @param <M>
+ *            the generic type
+ */
+public abstract class ElementEditpart<M extends YElement> extends AdapterImpl
+		implements IElementEditpart, IElementEditpartProvider {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ElementEditpart.class);
+
+	/** The disposed. */
+	private boolean disposed;
+
+	/** The dispose listeners. */
+	private List<IDisposable.Listener> disposeListeners;
+
+	/** The model. */
+	private M model;
+
+	/** The id. */
+	private String id;
+
+	/** The disposing. */
+	private boolean disposing;
+
+	protected IViewContext viewContext;
+
+	/**
+	 * Returns the edit part for the given model yElement.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IElementEditpart}
+	 * @param yElement
+	 *            the model element
+	 * @return editpart
+	 */
+	public static <A extends IElementEditpart> A findEditPartFor(
+			YElement yElement) {
+		return EditpartManager.findEditPartFor(yElement);
+	}
+
+	/**
+	 * Returns an existing edit part or creates a new one.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IElementEditpart}
+	 * @param context
+	 *            the context to be used to create the editpart
+	 * @param yElement
+	 *            the model element
+	 * @return editpart
+	 */
+	public static <A extends IElementEditpart> A getEditpart(
+			IViewContext context, YElement yElement) {
+		if (yElement == null) {
+			return null;
+		}
+
+		A editPart = findEditPartFor(yElement);
+		if (editPart != null) {
+			return editPart;
+		}
+		return DelegatingEditPartManager.getInstance().getEditpart(context,
+				yElement);
+	}
+
+	public IViewContext getContext() {
+		return viewContext;
+	}
+
+	/**
+	 * Returns the view context for the given embeddable.
+	 *
+	 * @param yEmbeddable
+	 *            the y embeddable
+	 * @return the view context
+	 */
+	public static IViewContext getViewContext(YEmbeddable yEmbeddable) {
+		IViewEditpart viewEditpart = getViewEditpart(yEmbeddable);
+		return viewEditpart != null ? viewEditpart.getContext() : null;
+	}
+
+	/**
+	 * Returns the view editpart for the given embeddable. Or <code>null</code>.
+	 *
+	 * @param yEmbeddable
+	 *            the y embeddable
+	 * @return the view editpart
+	 */
+	public static IViewEditpart getViewEditpart(YEmbeddable yEmbeddable) {
+		IEmbeddableEditpart editpart = findEditPartFor(yEmbeddable);
+		return editpart != null ? editpart.getView() : null;
+	}
+
+	/**
+	 * Returns the view context for the given embeddable.
+	 *
+	 * @param eObject
+	 *            the context
+	 * @return the view context
+	 */
+	public static IViewContext getViewContext(EObject eObject) {
+		if (eObject == null) {
+			return null;
+		}
+
+		if (eObject instanceof YElement) {
+			IElementEditpart editpart = findEditPartFor((YElement) eObject);
+			if (editpart != null && editpart.getContext() != null) {
+				return editpart.getContext();
+			}
+		}
+
+		// // otherwise iterate up the hierarchy to find a view context
+		// if (context instanceof YEmbeddable) {
+		// IViewEditpart viewEditpart = getViewEditpart((YEmbeddable) context);
+		// return viewEditpart != null ? viewEditpart.getContext() : null;
+		// } else if (context instanceof YView) {
+		// IViewEditpart viewEditpart = getEditpart((YView) context);
+		// return viewEditpart != null ? viewEditpart.getContext() : null;
+		// } else {
+		EObject parent = eObject.eContainer();
+		return getViewContext(parent);
+		// }
+	}
+
+	/**
+	 * The default constructor.
+	 */
+	protected ElementEditpart() {
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public String getId() {
+		checkDisposed();
+
+		return id;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public M getModel() {
+		// do not check disposed here. The model is required for lifecycle
+		// events directly after disposing stuff.
+		return model;
+	}
+
+	/**
+	 * Is called to initialize this edit part with the given model. The editpart
+	 * will be built based on the given model.
+	 * 
+	 * @param model
+	 *            the model element
+	 */
+	public void initialize(IViewContext context, M model) {
+		checkDisposed();
+
+		if (this.model != null) {
+			LOGGER.error("Editparts must only be initialized once!");
+			throw new IllegalStateException(
+					"Editparts must only be initialized once!");
+		}
+
+		this.viewContext = context;
+
+		checkAdapter(model);
+
+		this.model = model;
+
+		id = model.getId();
+		if (id == null || id.equals("")) {
+			id = UUID.randomUUID().toString();
+			model.setId(id);
+		}
+
+		registerAdapter(this);
+
+		viewContext = getViewContext(model);
+	}
+
+	protected void checkAdapter(M model) {
+		for (Adapter adapter : castEObject(model).eAdapters()) {
+			if (adapter instanceof IElementEditpartProvider) {
+				LOGGER.error("For a modelelement instance only one editpart can be created!");
+				throw new RuntimeException(
+						"For a modelelement instance only one editpart can be created!");
+			}
+		}
+	}
+
+	/**
+	 * Casts element to eObject.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the e object
+	 */
+	protected EObject castEObject(M element) {
+		return (EObject) element;
+	}
+
+	/**
+	 * Implementation of {@link IElementEditpartProvider} and returns
+	 * <code>this</code> in that special case.
+	 * 
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IElementEditpart getEditpart() {
+		checkDisposed();
+
+		return this;
+	}
+
+	/**
+	 * Registers an adapter at the model element.
+	 * 
+	 * @param adapter
+	 *            The adapter to be added to the model element
+	 */
+	protected void registerAdapter(Adapter adapter) {
+		checkDisposed();
+
+		EObject eObject = castEObject(model);
+		if (!eObject.eAdapters().contains(adapter)) {
+			eObject.eAdapters().add(adapter);
+		}
+	}
+
+	/**
+	 * Unregisters an adapter at the model element.
+	 * 
+	 * @param adapter
+	 *            The adapter to be removed from the model element
+	 */
+	protected void unregisterAdapter(Adapter adapter) {
+		castEObject(model).eAdapters().remove(adapter);
+	}
+
+	/**
+	 * Is called by the emf model element, if state changed.
+	 * 
+	 * @param notification
+	 *            notification to be processed
+	 */
+	public void notifyChanged(Notification notification) {
+		int featureId = notification.getFeatureID(YElement.class);
+		switch (notification.getEventType()) {
+		case Notification.ADD:
+			handleModelAdd(featureId, notification);
+			break;
+		case Notification.ADD_MANY:
+			handleModelAddMany(featureId, notification);
+			break;
+		case Notification.REMOVE:
+			handleModelRemove(featureId, notification);
+			break;
+		case Notification.REMOVE_MANY:
+			handleModelRemoveMany(featureId, notification);
+			break;
+		case Notification.MOVE:
+			handleModelMove(featureId, notification);
+			break;
+		case Notification.SET:
+			handleModelSet(featureId, notification);
+			break;
+		default:
+
+		}
+	}
+
+	/**
+	 * Is called from {@link #notifyChanged(Notification)} for the
+	 * add-many-event to be handled by subclasses.
+	 * 
+	 * @param featureId
+	 *            The featureId the notication belongs to
+	 * @param notification
+	 *            The notfication
+	 */
+	protected void handleModelRemoveMany(int featureId,
+			Notification notification) {
+		checkDisposed();
+	}
+
+	/**
+	 * Is called from {@link #notifyChanged(Notification)} for the
+	 * remove-many-event to be handled by subclasses.
+	 * 
+	 * @param featureId
+	 *            The featureId the notication belongs to
+	 * @param notification
+	 *            The notfication
+	 */
+	protected void handleModelAddMany(int featureId, Notification notification) {
+		checkDisposed();
+	}
+
+	/**
+	 * Is called from {@link #notifyChanged(Notification)} for the add-event to
+	 * be handled by subclasses.
+	 * 
+	 * @param featureId
+	 *            The featureId the notication belongs to
+	 * @param notification
+	 *            The notfication
+	 */
+	protected void handleModelAdd(int featureId, Notification notification) {
+		checkDisposed();
+	}
+
+	/**
+	 * Is called from {@link #notifyChanged(Notification)} for the remove-event
+	 * to be handled by subclasses.
+	 * 
+	 * @param featureId
+	 *            The featureId the notication belongs to
+	 * @param notification
+	 *            The notfication
+	 */
+	protected void handleModelRemove(int featureId, Notification notification) {
+		checkDisposed();
+	}
+
+	/**
+	 * Is called from {@link #notifyChanged(Notification)} for the move-event to
+	 * be handled by subclasses.
+	 * 
+	 * @param featureId
+	 *            The featureId the notication belongs to
+	 * @param notification
+	 *            The notfication
+	 */
+	protected void handleModelMove(int featureId, Notification notification) {
+		checkDisposed();
+	}
+
+	/**
+	 * Is called from {@link #notifyChanged(Notification)} for the set-event to
+	 * be handled by subclasses.
+	 * 
+	 * @param featureId
+	 *            The featureId the notication belongs to
+	 * @param notification
+	 *            The notfication
+	 */
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		if (featureId == CoreModelPackage.YELEMENT__ID) {
+			throw new IllegalArgumentException("The id must never be changed!");
+		}
+	}
+
+	/**
+	 * Returns true, of the UI element contains a tag with the given tagName.
+	 *
+	 * @param tag
+	 *            the tag
+	 * @return true, if successful
+	 */
+	public boolean containsTag(String tag) {
+		return getModel().getTags().contains(tag);
+	}
+
+	/**
+	 * Returns true, of the UI element contains a property with the given key.
+	 *
+	 * @param key
+	 *            the key
+	 * @return true, if successful
+	 */
+	public boolean containsProperty(String key) {
+		return getModel().getProperties().contains(key);
+	}
+
+	/**
+	 * Returns the property value from the UI element with the given key.
+	 *
+	 * @param key
+	 *            the key
+	 * @return the property value
+	 */
+	public String getPropertyValue(String key) {
+		return getModel().getProperties().get(key);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isDisposed() {
+		return disposed;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isDisposing() {
+		return disposing;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void dispose() {
+		try {
+			disposing = true;
+			if (!isDisposed()) {
+				internalDispose();
+			}
+		} finally {
+			disposing = false;
+		}
+	}
+
+	/**
+	 * Is called to dispose all this instance.
+	 */
+	protected void internalDispose() {
+		try {
+			// unregisters the observer from observing the model
+			unregisterAdapter(this);
+
+			// first call the dispose listener and the set disposed=true
+			notifyDisposeListeners();
+
+			viewContext = null;
+		} finally {
+			disposed = true;
+		}
+	}
+
+	/**
+	 * Subclasses may override.
+	 * <p>
+	 * Default implementation of request dispose directly invokes #dispose()
+	 */
+	@Override
+	public void requestDispose() {
+		dispose();
+	}
+
+	/**
+	 * Checks whether the element is disposed. Throws a DisposeException is the
+	 * element is disposed.
+	 *
+	 * @throws DisposeException
+	 *             the dispose exception
+	 */
+	protected void checkDisposed() {
+		IDisposable.DisposableUtil.checkDisposed(this);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.runtime.common.dispose.IDisposable#addDisposeListener
+	 * (org.eclipse.osbp.runtime.common.dispose.IDisposable.Listener)
+	 */
+	@Override
+	public void addDisposeListener(Listener listener) {
+		checkDisposed();
+
+		if (listener == null) {
+			return;
+		}
+
+		if (disposeListeners == null) {
+			disposeListeners = new ArrayList<IDisposable.Listener>();
+		}
+
+		if (!disposeListeners.contains(listener)) {
+			disposeListeners.add(listener);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.runtime.common.dispose.IDisposable#removeDisposeListener
+	 * (org.eclipse.osbp.runtime.common.dispose.IDisposable.Listener)
+	 */
+	@Override
+	public void removeDisposeListener(Listener listener) {
+		checkDisposed();
+
+		if (listener == null || disposeListeners == null) {
+			return;
+		}
+
+		disposeListeners.remove(listener);
+	}
+
+	/**
+	 * Notifies all listeners about the disposal of that elemenyElement.
+	 */
+	protected void notifyDisposeListeners() {
+		if (disposeListeners == null) {
+			return;
+		}
+
+		for (IDisposable.Listener listener : disposeListeners
+				.toArray(new IDisposable.Listener[disposeListeners.size()])) {
+			listener.notifyDisposed(this);
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableCollectionBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableCollectionBindingEndpointEditpart.java
new file mode 100644
index 0000000..cb2d506
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableCollectionBindingEndpointEditpart.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableCollectionEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableListEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+
+/**
+ * Responsible to create an observable.
+ */
+public class EmbeddableCollectionBindingEndpointEditpart extends
+		BindableListEndpointEditpart<YEmbeddableCollectionEndpoint> implements
+		IEmbeddableCollectionEndpointEditpart {
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableList> A getObservable() {
+		IEmbeddableEditpart embeddableEditpart = DelegatingEditPartManager
+				.getInstance().getEditpart(viewContext, getModel().getElement());
+
+		IWidgetPresentation<?> presentation = embeddableEditpart
+				.getPresentation();
+		return presentation != null ? (A) presentation
+				.getObservableValue(getModel()) : null;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableEditpart.java
new file mode 100644
index 0000000..04b3e60
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableEditpart.java
@@ -0,0 +1,456 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeBridge;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeChangeEvent;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IUiElementAccess;
+import org.eclipse.osbp.ecview.core.common.memento.IECViewMementoManager;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMemento;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.presentation.DelegatingPresenterFactory;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler;
+import org.eclipse.osbp.runtime.common.memento.IMementoHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * See {@link ElementEditpart}.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public abstract class EmbeddableEditpart<M extends YEmbeddable> extends
+		ElementEditpart<M> implements IEmbeddableEditpart, DatatypeBridge,
+		IUiElementAccess {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(EmbeddableEditpart.class);
+	
+	/** The presentation. */
+	private IWidgetPresentation<?> presentation;
+
+	/** The datatype feature. */
+	private EStructuralFeature datatypeFeature;
+
+	/**
+	 * The default constructor.
+	 */
+	protected EmbeddableEditpart() {
+	}
+
+	/**
+	 * A constructor that becomes passed the datatype feature.
+	 *
+	 * @param datatypeFeature
+	 *            the datatype feature
+	 */
+	public EmbeddableEditpart(EStructuralFeature datatypeFeature) {
+		this.datatypeFeature = datatypeFeature;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IEmbeddableParent getParent() {
+		YLayout yParentLayout = getModel().getParent();
+		if (yParentLayout != null) {
+			return getEditpart(viewContext, yParentLayout);
+		} else {
+			YView yView = getModel().getView();
+			if (yView != null && yView.getContent() == getModel()) {
+				return (IViewEditpart) getEditpart(viewContext, yView);
+			}
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#getView()
+	 */
+	@Override
+	public IViewEditpart getView() {
+		return viewContext.getViewEditpart();
+	}
+
+	/**
+	 * Returns the instance of the presentation, but does not load it.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IWidgetPresentation}
+	 * @return presentation
+	 */
+	@SuppressWarnings("unchecked")
+	protected <A extends IWidgetPresentation<?>> A internalGetPresentation() {
+		return (A) presentation;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#getPresentation()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IWidgetPresentation<?>> A getPresentation() {
+		if (presentation == null) {
+			presentation = createPresenter();
+
+			doInitPresentation(presentation);
+		}
+		return (A) presentation;
+	}
+
+	/**
+	 * A hook method to initialize the presentation after creation.
+	 *
+	 * @param presentation
+	 *            the presentation
+	 */
+	protected void doInitPresentation(IWidgetPresentation<?> presentation) {
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessable#apply(org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler)
+	 */
+	@Override
+	public void apply(IVisibilityHandler handler) {
+		IWidgetPresentation<?> presentation = getPresentation();
+		if (presentation != null) {
+			presentation.apply(handler);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessable#resetVisibilityProperties()
+	 */
+	@Override
+	public void resetVisibilityProperties() {
+		IWidgetPresentation<?> presentation = getPresentation();
+		if (presentation != null) {
+			presentation.resetVisibilityProperties();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#restoreMemento()
+	 */
+	@Override
+	public void restoreMemento() {
+		if (isRendered()) {
+			if (!(getPresentation() instanceof IMementoHandler)) {
+				throw new UnsupportedOperationException(
+						"Memento not supported by element.");
+			}
+
+			YMemento yMemento = loadMemento(getModel().getMementoId());
+			if (yMemento != null) {
+				((IMementoHandler) getPresentation()).applyMemento(yMemento);
+			} else {
+				LOGGER.debug("Memento is null. No apply to presentation. mementoId: "
+						+ getModel().getMementoId());
+			}
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#saveMemento(java.lang.Object)
+	 */
+	@Override
+	public void saveMemento(Object memento) {
+		if (isRendered()) {
+			if (!(getPresentation() instanceof IMementoHandler)) {
+				throw new UnsupportedOperationException(
+						"Memento not supported by element.");
+			}
+
+			YMemento yMemento = (YMemento) memento;
+			if (yMemento != null) {
+				IECViewMementoManager manager = getView().getContext()
+						.getService(IECViewMementoManager.class.getName());
+				if (manager != null) {
+					manager.saveMemento(yMemento.getId(), yMemento);
+				} else {
+					LOGGER.warn("IMementoManager is not available.");
+				}
+			} else {
+				LOGGER.warn("Memento is null. No save done. mementoId: "
+						+ memento);
+			}
+		}
+	}
+
+	/**
+	 * Load memento.
+	 *
+	 * @param mementoId
+	 *            the memento id
+	 * @return the y memento
+	 */
+	protected YMemento loadMemento(String mementoId) {
+		IECViewMementoManager manager = getView().getContext().getService(
+				IECViewMementoManager.class.getName());
+		if (manager == null) {
+			LOGGER.error("IMementoManager is not available.");
+			return null;
+		}
+		return (YMemento) manager.loadMemento(mementoId);
+	}
+
+	/**
+	 * Returns the datatype of the model. Or <code>null</code> if no datatype is
+	 * available.
+	 *
+	 * @return the y datatype
+	 */
+	protected YDatatype internalGetDatatype() {
+		if (datatypeFeature == null) {
+			return null;
+		}
+		return (YDatatype) getModel().eGet(datatypeFeature);
+	}
+
+	/**
+	 * Is called to created the presenter for this edit part.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @return the a
+	 */
+	protected <A extends IWidgetPresentation<?>> A createPresenter() {
+		IViewEditpart viewEditPart = getView();
+		if (viewEditPart == null) {
+			LOGGER.info("View is null");
+			return null;
+		}
+		return DelegatingPresenterFactory.getInstance().createPresentation(
+				viewEditPart.getContext(), this);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#initialize(org.eclipse.osbp.ecview.core.common.model.core.YElement)
+	 */
+	@Override
+	public void initialize(IViewContext context, M model) {
+		super.initialize(context, model);
+
+		// directly after initialization the embeddable needs to become
+		// registered at the datatype editpart. No lazy loading can be used
+		// here.
+		registerAtDatatype();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelSet(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		if (notification.getFeature() == datatypeFeature) {
+			YDatatype oldYDatatype = (YDatatype) notification.getOldValue();
+			if (oldYDatatype != null) {
+				// unregister the element from the old datatype
+				unregisterFromDatatype(oldYDatatype);
+			}
+
+			// an register the field to the new datatype if available
+			YDatatype newYDatatype = (YDatatype) notification.getNewValue();
+			if (newYDatatype != null) {
+				registerAtDatatype();
+			}
+		} else {
+			super.handleModelSet(featureId, notification);
+		}
+	}
+
+	/**
+	 * Registers the element at the datatype. Changes on the datatype will
+	 * update the embeddable.
+	 */
+	protected void registerAtDatatype() {
+		// unregisters the datatype editpart
+		YDatatype yDatatype = internalGetDatatype();
+		if (yDatatype != null) {
+			IDatatypeEditpart datatypeEditpart = getEditpart(viewContext, yDatatype);
+			datatypeEditpart.addBridge(this);
+
+			notifyDatatypeChanged(datatypeEditpart.getCurrentState());
+		}
+	}
+
+	/**
+	 * Unregisters the element from the datatype. So changes on the datatype do
+	 * not update the embeddable anymore.
+	 *
+	 * @param yDatatype
+	 *            the y datatype
+	 */
+	protected void unregisterFromDatatype(YDatatype yDatatype) {
+		// unregisters the datatype editpart
+		if (yDatatype != null) {
+			IDatatypeEditpart datatypeEditpart = getEditpart(viewContext, yDatatype);
+			datatypeEditpart.removeBridge(this);
+			notifyDatatypeChanged(createDatatypeUnsetEvent(datatypeEditpart));
+		}
+	}
+
+	/**
+	 * Create an internal event that resets the datatype information.
+	 *
+	 * @param datatypeEditpart
+	 *            the datatype editpart
+	 * @return the datatype change event
+	 */
+	private DatatypeChangeEvent createDatatypeUnsetEvent(
+			IDatatypeEditpart datatypeEditpart) {
+
+		List<IValidatorEditpart> toRemove = new ArrayList<>(
+				getDatatypeValidators());
+		DatatypeChangeEvent event = new DatatypeChangeEvent(true,
+				datatypeEditpart, null, null, toRemove);
+		return event;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeBridge#notifyDatatypeChanged(org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeChangeEvent)
+	 */
+	@Override
+	public void notifyDatatypeChanged(DatatypeChangeEvent event) {
+		IWidgetPresentation<?> presentation = getPresentation();
+		if (presentation != null) {
+			presentation.notifyDatatypeChanged(event);
+		} else {
+			LOGGER.warn("Presentation is null for " + getModel());
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			// unregister the element from the datatype
+			YDatatype yDatatype = internalGetDatatype();
+			if (yDatatype != null) {
+				unregisterFromDatatype(yDatatype);
+			}
+
+			// dispose the presenter
+			//
+			if (presentation != null) {
+				presentation.dispose();
+				presentation = null;
+			}
+
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#requestRender()
+	 */
+	@Override
+	public void requestRender() {
+		if (getParent() != null) {
+			getParent().renderChild(this);
+		} else {
+			unrender();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#render(java.lang.Object)
+	 */
+	@Override
+	public Object render(Object parentWidget) {
+		if (getPresentation() == null) {
+			throw new IllegalStateException("No presentation for " + getModel());
+		}
+		return getPresentation().createWidget(parentWidget);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#requestUnrender()
+	 */
+	@Override
+	public void requestUnrender() {
+		if (getParent() != null) {
+			getParent().unrenderChild(this);
+		} else {
+			unrender();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#unrender()
+	 */
+	@Override
+	public void unrender() {
+		IWidgetPresentation<?> presentation = getPresentation();
+		if (presentation != null) {
+			presentation.unrender();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#isRendered()
+	 */
+	@Override
+	public boolean isRendered() {
+		return internalGetPresentation() != null
+				&& internalGetPresentation().isRendered();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart#getWidget()
+	 */
+	@Override
+	public Object getWidget() {
+		IWidgetPresentation<?> presentation = getPresentation();
+		if (presentation != null) {
+			return presentation.getWidget();
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#requestDispose()
+	 */
+	@Override
+	public void requestDispose() {
+		if (getParent() != null) {
+			getParent().disposeChild(this);
+		} else {
+			// in case where the embeddable is not added to a layout
+			dispose();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableMultiSelectionBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableMultiSelectionBindingEndpointEditpart.java
new file mode 100644
index 0000000..9bd199f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableMultiSelectionBindingEndpointEditpart.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableMultiSelectionEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableListEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+
+/**
+ * Responsible to create an observable.
+ */
+public class EmbeddableMultiSelectionBindingEndpointEditpart extends
+		BindableListEndpointEditpart<YEmbeddableMultiSelectionEndpoint>
+		implements IEmbeddableMultiSelectionEndpointEditpart {
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableList> A getObservable() {
+		IEmbeddableEditpart embeddableEditpart = DelegatingEditPartManager
+				.getInstance().getEditpart(viewContext, getModel().getElement());
+
+		IWidgetPresentation<?> presentation = embeddableEditpart
+				.getPresentation();
+		return presentation != null ? (A) presentation
+				.getObservableValue(getModel()) : null;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableSelectionBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableSelectionBindingEndpointEditpart.java
new file mode 100644
index 0000000..d68f55c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableSelectionBindingEndpointEditpart.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableSelectionEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+
+/**
+ * Responsible to create an observable.
+ */
+public class EmbeddableSelectionBindingEndpointEditpart extends
+		BindableValueEndpointEditpart<YEmbeddableSelectionEndpoint> implements
+		IEmbeddableSelectionEndpointEditpart {
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableValue> A getObservable() {
+		IEmbeddableEditpart embeddableEditpart = DelegatingEditPartManager
+				.getInstance().getEditpart(viewContext, getModel().getElement());
+
+		IWidgetPresentation<?> presentation = embeddableEditpart
+				.getPresentation();
+		return presentation != null ? (A) presentation
+				.getObservableValue(getModel()) : null;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..cadde2f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/EmbeddableValueBindingEndpointEditpart.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Responsible to create an observable. The model of this editpart is used to
+ * access the getObservableValue from the underlying widget presentation.
+ */
+public class EmbeddableValueBindingEndpointEditpart extends
+		BindableValueEndpointEditpart<YEmbeddableValueEndpoint> implements
+		IEmbeddableValueBindingEndpointEditpart {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(EmbeddableValueBindingEndpointEditpart.class);
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableValue> A getObservable() {
+		IEmbeddableEditpart embeddableEditpart = DelegatingEditPartManager
+				.getInstance().getEditpart(viewContext, getModel().getElement());
+
+		if (embeddableEditpart == null) {
+			LOGGER.warn("editpart is null for embeddable");
+			return null;
+		}
+
+		IWidgetPresentation<?> presentation = embeddableEditpart
+				.getPresentation();
+		return presentation != null ? (A) presentation
+				.getObservableValue(getModel()) : null;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		// nothing to do
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ExposedActionEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ExposedActionEditpart.java
new file mode 100644
index 0000000..bba25fe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ExposedActionEditpart.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IExposedActionEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+
+// TODO: Auto-generated Javadoc
+/**
+ * See {@link ElementEditpart}.
+ */
+public class ExposedActionEditpart extends ElementEditpart<YExposedAction>
+		implements IExposedActionEditpart {
+
+	/**
+	 * The default constructor.
+	 */
+	protected ExposedActionEditpart() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IExposedActionEditpart#getIconName()
+	 */
+	@Override
+	public String getIconName() {
+		return getModel().getIcon();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IExposedActionEditpart#getDescription()
+	 */
+	@Override
+	public String getDescription() {
+		II18nService service = getView().getContext().getService(
+				II18nService.ID);
+		if (service == null) {
+			String label = getModel().getLabel();
+			if (label != null && !label.equals("")) {
+				return label;
+			} else {
+				return getModel().getName();
+			}
+		} else {
+			String labelI18nKey = getModel().getLabelI18nKey();
+			if (labelI18nKey != null && !labelI18nKey.equals("")) {
+				String value = service.getValue(labelI18nKey, getView()
+						.getContext().getLocale());
+				if (value == null) {
+					String label = getModel().getLabel();
+					if (label != null && !label.equals("")) {
+						return label;
+					} else {
+						return getModel().getName();
+					}
+				} else {
+					return value;
+				}
+			}
+		}
+		return getModel().getId();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IElementEditpart getParent() {
+		YElement yParent = (YElement) getModel().eContainer();
+		if (yParent != null) {
+			return getEditpart(viewContext, yParent);
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IExposedActionEditpart#getView()
+	 */
+	@Override
+	public IViewEditpart getView() {
+		YView yView = getModel().getView();
+		return yView != null ? (IViewEditpart) getEditpart(viewContext, yView) : null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessable#apply(org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler)
+	 */
+	@Override
+	public void apply(IVisibilityHandler handler) {
+		getModel().setEnabled(handler.isEnabled());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessable#resetVisibilityProperties()
+	 */
+	@Override
+	public void resetVisibilityProperties() {
+		getModel().setEnabled(getModel().isInitialEnabled());
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/FieldEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/FieldEditpart.java
new file mode 100644
index 0000000..46f7d3f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/FieldEditpart.java
@@ -0,0 +1,506 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.editpart.IConverterEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeChangeEvent;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YConverter;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.common.presentation.IFieldPresentation;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementation of {@link IFieldEditpart}.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public class FieldEditpart<M extends YField> extends EmbeddableEditpart<M>
+		implements IFieldEditpart {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(FieldEditpart.class);
+
+	/** The validators. */
+	private List<IValidatorEditpart> validators;
+	
+	/** The internal validators. */
+	private List<IValidatorEditpart> internalValidators;
+
+	/** The converter editpart. */
+	private IConverterEditpart converterEditpart;
+
+	/**
+	 * A default constructor.
+	 */
+	protected FieldEditpart() {
+	}
+
+	/**
+	 * A constructor that becomes passed the datatype feature.
+	 *
+	 * @param datatypeFeature
+	 *            the datatype feature
+	 */
+	public FieldEditpart(EStructuralFeature datatypeFeature) {
+		super(datatypeFeature);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart#doInitPresentation(org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation)
+	 */
+	@Override
+	protected void doInitPresentation(IWidgetPresentation<?> presentation) {
+		IFieldPresentation<?> fieldPresentation = (IFieldPresentation<?>) presentation;
+
+		if (fieldPresentation == null) {
+			LOGGER.warn("Presentation is null for " + getModel());
+			return;
+		}
+
+		converterToPresentation(fieldPresentation);
+
+		ensureValidatorsLoaded();
+		for (IValidatorEditpart validatorEditpart : validators) {
+			fieldPresentation.addValidator(validatorEditpart.getValidator());
+		}
+
+		if (internalValidators != null) {
+			for (IValidatorEditpart validatorEditpart : internalValidators) {
+				fieldPresentation
+						.addValidator(validatorEditpart.getValidator());
+			}
+		}
+	}
+
+	/**
+	 * Converter to presentation.
+	 *
+	 * @param fieldPresentation
+	 *            the field presentation
+	 */
+	protected void converterToPresentation(
+			IFieldPresentation<?> fieldPresentation) {
+		IConverterEditpart converter = getConverter();
+		if (converter != null) {
+			fieldPresentation.setConverter(converter.getDelegate());
+		} else {
+			fieldPresentation.setConverter(null);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart#notifyDatatypeChanged(org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeChangeEvent)
+	 */
+	@Override
+	public void notifyDatatypeChanged(DatatypeChangeEvent event) {
+
+		super.notifyDatatypeChanged(event);
+
+		// Remove the validators that should be removed
+		//
+		for (IValidatorEditpart validator : event.getRemovedValidators()) {
+			getModel().getInternalValidators().remove(
+					(YValidator) validator.getModel());
+		}
+
+		// Add the validators that should be added
+		//
+		for (IValidatorEditpart validator : event.getAddedValidators()) {
+			getModel().getInternalValidators().add(
+					(YValidator) validator.getModel());
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart#addValidator(org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart)
+	 */
+	@Override
+	public void addValidator(IValidatorEditpart validator) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			YField yField = getModel();
+			YValidator yValidator = (YValidator) validator.getModel();
+			yField.getValidators().add(yValidator);
+
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart#removeValidator(org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart)
+	 */
+	@Override
+	public void removeValidator(IValidatorEditpart validator) {
+		try {
+			checkDisposed();
+
+			// remove the element by using the model
+			//
+			YField yField = getModel();
+			YValidator yValidator = (YValidator) validator.getModel();
+			yField.getValidators().remove(yValidator);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart#addExternalStatus(org.eclipse.osbp.runtime.common.validation.IStatus)
+	 */
+	@Override
+	public void addExternalStatus(IStatus status) {
+		if (isRendered()) {
+			((IFieldPresentation<?>) getPresentation())
+					.addExternalStatus(status);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart#removeExternalStatus(org.eclipse.osbp.runtime.common.validation.IStatus)
+	 */
+	@Override
+	public void removeExternalStatus(IStatus status) {
+		if (isRendered()) {
+			((IFieldPresentation<?>) getPresentation())
+					.removeExternalStatus(status);
+		}
+	}
+	
+	
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart#resetExternalStatus()
+	 */
+	@Override
+	public void resetExternalStatus() {
+		if (isRendered()) {
+			((IFieldPresentation<?>) getPresentation())
+					.resetExternalStatus();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelAdd(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelAdd(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YFIELD__VALIDATORS:
+			YValidator yValidator = (YValidator) notification.getNewValue();
+
+			IValidatorEditpart editPart = (IValidatorEditpart) getEditpart(viewContext, yValidator);
+			internalAddValidator(editPart);
+			break;
+		case CoreModelPackage.YFIELD__INTERNAL_VALIDATORS:
+			yValidator = (YValidator) notification.getNewValue();
+
+			editPart = (IValidatorEditpart) getEditpart(viewContext, yValidator);
+			internalAddInternalValidator(editPart);
+			break;
+		default:
+			break;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart#handleModelSet(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YFIELD__CONVERTER:
+			YConverter yConverter = (YConverter) notification.getNewValue();
+
+			IConverterEditpart editPart = (IConverterEditpart) getEditpart(viewContext, yConverter);
+			internalSetConverter(editPart);
+
+			if (isRendered()) {
+				converterToPresentation((IFieldPresentation<?>) getPresentation());
+			}
+			break;
+		default:
+			super.handleModelSet(featureId, notification);
+			break;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart#getConverter()
+	 */
+	public IConverterEditpart getConverter() {
+		checkDisposed();
+
+		if (converterEditpart == null) {
+			loadConverter();
+		}
+		return converterEditpart;
+	}
+
+	/**
+	 * Load converter.
+	 */
+	protected void loadConverter() {
+		if (converterEditpart == null) {
+			YConverter yConverter = getModel().getConverter();
+			internalSetConverter((IConverterEditpart) getEditpart(viewContext, yConverter));
+		}
+	}
+
+	/**
+	 * Internal set converter.
+	 *
+	 * @param converterEditpart
+	 *            the converter editpart
+	 */
+	protected void internalSetConverter(IConverterEditpart converterEditpart) {
+		this.converterEditpart = converterEditpart;
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of validators.
+	 * 
+	 * @param validatorEditpart
+	 *            The editpart to be added
+	 */
+	protected void internalAddValidator(IValidatorEditpart validatorEditpart) {
+		checkDisposed();
+
+		ensureValidatorsLoaded();
+		if (!validators.contains(validatorEditpart)) {
+			validators.add(validatorEditpart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				IFieldPresentation<?> presenter = getPresentation();
+				presenter.addValidator(validatorEditpart.getValidator());
+			}
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of internal validators.
+	 * 
+	 * @param validatorEditpart
+	 *            The editpart to be added
+	 */
+	protected void internalAddInternalValidator(
+			IValidatorEditpart validatorEditpart) {
+		checkDisposed();
+
+		if (internalValidators == null) {
+			internalValidators = new ArrayList<>();
+		}
+
+		if (!internalValidators.contains(validatorEditpart)) {
+			internalValidators.add(validatorEditpart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				IFieldPresentation<?> presenter = getPresentation();
+				presenter.addValidator(validatorEditpart.getValidator());
+			}
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelRemove(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelRemove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YFIELD__VALIDATORS:
+			YValidator yValidator = (YValidator) notification.getOldValue();
+
+			IValidatorEditpart editPart = (IValidatorEditpart) getEditpart(viewContext, yValidator);
+			internalRemoveValidator(editPart);
+			break;
+		case CoreModelPackage.YFIELD__INTERNAL_VALIDATORS:
+			yValidator = (YValidator) notification.getOldValue();
+
+			editPart = (IValidatorEditpart) getEditpart(viewContext, yValidator);
+			internalRemoveInternalValidator(editPart);
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * Ensures that the internal validators are loaded properly.
+	 */
+	private void ensureValidatorsLoaded() {
+		if (validators == null) {
+			internalLoadValidators();
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all validators.
+	 */
+	protected void internalLoadValidators() {
+		checkDisposed();
+
+		if (validators == null) {
+			validators = new ArrayList<IValidatorEditpart>();
+			for (YValidator yValidator : getModel().getValidators()) {
+				IValidatorEditpart editPart = getEditpart(viewContext, yValidator);
+				internalAddValidator(editPart);
+			}
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of validators.
+	 * 
+	 * @param validatorEditpart
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveValidator(IValidatorEditpart validatorEditpart) {
+		checkDisposed();
+
+		if (validators != null && validatorEditpart != null) {
+			validators.remove(validatorEditpart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				IFieldPresentation<?> presenter = getPresentation();
+				presenter.removeValidator(validatorEditpart.getValidator());
+			}
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of internal validators.
+	 * 
+	 * @param validatorEditpart
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveInternalValidator(
+			IValidatorEditpart validatorEditpart) {
+		checkDisposed();
+
+		if (internalValidators != null && validatorEditpart != null) {
+			internalValidators.remove(validatorEditpart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				IFieldPresentation<?> presenter = getPresentation();
+				presenter.removeValidator(validatorEditpart.getValidator());
+			}
+
+			validatorEditpart.dispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart#getValidators()
+	 */
+	@Override
+	public List<IValidatorEditpart> getValidators() {
+		ensureValidatorsLoaded();
+		return Collections.unmodifiableList(validators);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			// lazy loading: edit parts also have to be disposed if they have
+			// not been loaded yet, but exist in the model.
+			if (validators != null || getModel().getValidators().size() > 0) {
+				List<IValidatorEditpart> tempElements = getValidators();
+				IFieldPresentation<?> presentation = internalGetPresentation();
+				synchronized (validators) {
+					for (IValidatorEditpart validatorEditpart : tempElements
+							.toArray(new IValidatorEditpart[tempElements.size()])) {
+						if (presentation != null) {
+							presentation.removeValidator(validatorEditpart
+									.getValidator());
+						}
+						validatorEditpart.dispose();
+					}
+				}
+				validators = null;
+			}
+
+			if (converterEditpart != null) {
+				converterEditpart.dispose();
+				converterEditpart = null;
+			}
+
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/**
+	 * Returns true, if the presenter is present.
+	 *
+	 * @return true, if is presentation present
+	 */
+	protected boolean isPresentationPresent() {
+		return internalGetPresentation() != null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeBridge#getDatatypeValidators()
+	 */
+	@Override
+	public List<IValidatorEditpart> getDatatypeValidators() {
+		return internalValidators != null ? Collections
+				.unmodifiableList(internalValidators) : Collections
+				.<IValidatorEditpart> emptyList();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/KeyStrokeDefinitionEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/KeyStrokeDefinitionEditpart.java
new file mode 100644
index 0000000..2bd1538
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/KeyStrokeDefinitionEditpart.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IKeyStrokeDefinitionContainer;
+import org.eclipse.osbp.ecview.core.common.editpart.IKeyStrokeDefinitionEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.custom.KeyStrokeUtil;
+import org.eclipse.osbp.runtime.common.keystroke.KeyStrokeDefinition;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The implementation of the IKeyStrokeDefinitionEditpart.
+ */
+public class KeyStrokeDefinitionEditpart extends
+		ElementEditpart<YKeyStrokeDefinition> implements
+		IKeyStrokeDefinitionEditpart {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(KeyStrokeDefinitionEditpart.class);
+
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		YKeyStrokeDefinition yElement = getModel();
+		switch (featureId) {
+		case CoreModelPackage.YKEY_STROKE_DEFINITION__KEY_CODE:
+		case CoreModelPackage.YKEY_STROKE_DEFINITION__MODIFIER_KEYS:
+			IElementEditpart parent = getEditpart(viewContext, (YElement) yElement
+					.eContainer());
+			LOGGER.info("Keystroke definition changed.");
+			if (parent instanceof IKeyStrokeDefinitionContainer) {
+				((IKeyStrokeDefinitionContainer) parent).keyStrokeChanged(this);
+			}
+			break;
+		default:
+			super.handleModelSet(featureId, notification);
+		}
+	}
+
+	@Override
+	public KeyStrokeDefinition getDefinition() {
+		return KeyStrokeUtil.from(getModel());
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/LayoutEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/LayoutEditpart.java
new file mode 100644
index 0000000..5e2b567
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/LayoutEditpart.java
@@ -0,0 +1,411 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.presentation.ILayoutPresentation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An implementation of {@link ILayoutEditpart}.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public class LayoutEditpart<M extends YLayout> extends EmbeddableEditpart<M>
+		implements ILayoutEditpart {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(LayoutEditpart.class);
+
+	/** The ui element editparts. */
+	private List<IEmbeddableEditpart> uiElementEditparts;
+
+	/**
+	 * Default constructor.
+	 */
+	public LayoutEditpart() {
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart#getElements()
+	 */
+	@Override
+	public List<IEmbeddableEditpart> getElements() {
+		if (uiElementEditparts == null) {
+			internalLoadElements();
+		}
+		return Collections.unmodifiableList(uiElementEditparts);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			// lazy loading: edit parts also have to be disposed if they have
+			// not been loaded yet,
+			// but exist in the model.
+			if (uiElementEditparts != null
+					|| getModel().getElements().size() > 0) {
+				List<IEmbeddableEditpart> tempElements = getElements();
+				synchronized (uiElementEditparts) {
+					for (IEmbeddableEditpart editpart : tempElements
+							.toArray(new IEmbeddableEditpart[tempElements
+									.size()])) {
+						editpart.dispose();
+					}
+				}
+				uiElementEditparts = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart#addElement(org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void addElement(IEmbeddableEditpart element) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			M yLayout = getModel();
+			YEmbeddable yElement = (YEmbeddable) element.getModel();
+			yLayout.getElements().add(yElement);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart#removeElement(org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void removeElement(IEmbeddableEditpart element) {
+		try {
+			checkDisposed();
+
+			// remove the element by using the model
+			//
+			M yLayout = getModel();
+			YEmbeddable yElement = (YEmbeddable) element.getModel();
+			yLayout.getElements().remove(yElement);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	protected void handleModelAdd(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YLAYOUT__ELEMENTS:
+			YEmbeddable yElement = (YEmbeddable) notification.getNewValue();
+
+			IEmbeddableEditpart editPart = (IEmbeddableEditpart) getEditpart(viewContext, yElement);
+			internalAddElement(editPart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				ILayoutPresentation<?> presenter = getPresentation();
+				int index = notification.getPosition();
+				if (index < 0 || index >= getElements().size() - 1) {
+					presenter.add(editPart);
+				} else {
+					presenter.insert(editPart, index);
+				}
+			}
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	protected void handleModelSet(int featureId, Notification notification) {
+
+		if (notification.getFeature() == CoreModelPackage.Literals.YSPACINGABLE__SPACING
+				|| notification.getFeature() == CoreModelPackage.Literals.YMARGINABLE__MARGIN) {
+			if (isRendered()) {
+				getPresentation().updateSpacings();
+			}
+		} else {
+			super.handleModelSet(featureId, notification);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelMove(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelMove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YLAYOUT__ELEMENTS:
+			YEmbeddable yElement = (YEmbeddable) notification.getNewValue();
+
+			IEmbeddableEditpart editPart = (IEmbeddableEditpart) getEditpart(viewContext, yElement);
+			internalMoveElement(editPart, notification.getPosition());
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				ILayoutPresentation<?> presenter = getPresentation();
+				presenter.move(editPart, notification.getPosition());
+			}
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * Returns true, if the presenter is present.
+	 *
+	 * @return true, if is presentation present
+	 */
+	protected boolean isPresentationPresent() {
+		return internalGetPresentation() != null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	protected void handleModelRemove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YLAYOUT__ELEMENTS:
+			YEmbeddable yElement = (YEmbeddable) notification.getOldValue();
+
+			IEmbeddableEditpart editPart = (IEmbeddableEditpart) getEditpart(viewContext, yElement);
+			internalRemoveElement(editPart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				ILayoutPresentation<?> presenter = getPresentation();
+				presenter.remove(editPart);
+			}
+			editPart.unrender();
+			break;
+		default:
+			break;
+		}
+	}
+
+	// /**
+	// * {@inheritDoc}
+	// */
+	// protected void handleModel_Move(int featureId, Notification notification)
+	// {
+	// checkDisposed();
+	//
+	// switch (featureId) {
+	// case UiModelPackage.YUI_LAYOUT__ELEMENTS:
+	// YUiEmbeddable yElement = (YUiEmbeddable) notification.getNewValue();
+	// internalAddElement((IUiEmbeddableEditpart) getEditpart(yElement));
+	// break;
+	// }
+	// }
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of elements.
+	 * 
+	 * @param editpart
+	 *            The editpart to be added
+	 */
+	protected void internalAddElement(IEmbeddableEditpart editpart) {
+		checkDisposed();
+
+		if (uiElementEditparts == null) {
+			internalLoadElements();
+		}
+		if (!uiElementEditparts.contains(editpart)) {
+			uiElementEditparts.add(editpart);
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and to move the given editpart in
+	 * the list of elements.
+	 * 
+	 * @param editpart
+	 *            The editpart to be inserted
+	 * @param index
+	 *            The index to move the element.
+	 */
+	protected void internalMoveElement(IEmbeddableEditpart editpart, int index) {
+		checkDisposed();
+
+		if (uiElementEditparts == null) {
+			internalLoadElements();
+		} else if (!uiElementEditparts.contains(editpart)) {
+			throw new RuntimeException(String.format(
+					"Editpart %s is not contained in elements",
+					editpart.getId()));
+		} else {
+			uiElementEditparts.remove(editpart);
+			uiElementEditparts.add(index, editpart);
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of elements.
+	 * 
+	 * @param editpart
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveElement(IEmbeddableEditpart editpart) {
+		checkDisposed();
+
+		if (uiElementEditparts != null && editpart != null) {
+			uiElementEditparts.remove(editpart);
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all elements.
+	 */
+	protected void internalLoadElements() {
+		checkDisposed();
+
+		if (uiElementEditparts == null) {
+			uiElementEditparts = new ArrayList<IEmbeddableEditpart>();
+			for (YEmbeddable yElement : getModel().getElements()) {
+				IEmbeddableEditpart editPart = getEditpart(viewContext, yElement);
+				internalAddElement(editPart);
+			}
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart#getPresentation()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public ILayoutPresentation<?> getPresentation() {
+		return super.getPresentation();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeBridge#getDatatypeValidators()
+	 */
+	@Override
+	public List<IValidatorEditpart> getDatatypeValidators() {
+		return Collections.emptyList();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent#renderChild(org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void renderChild(IEmbeddableEditpart child) {
+		int index = getElements().indexOf(child);
+		if (index < 0) {
+			// if a disposed editpart become repainted, then add it to the list
+			// again
+			index = getModel().getElements().indexOf(child.getModel());
+			if (index < 0) {
+				throw new IllegalArgumentException(
+						String.format(
+								"The element %s is not contained in the current editpart %s",
+								child.toString(), toString()));
+			}
+			uiElementEditparts.add(index, child);
+		}
+
+		getPresentation().insert(child, index);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent#unrenderChild(org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void unrenderChild(IEmbeddableEditpart child) {
+		// first remove the child presentation from the current presentation
+		getPresentation().remove(child);
+
+		// then tell the child editpart to unrender its own presentation
+		child.unrender();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart#unrender()
+	 */
+	@Override
+	public void unrender() {
+		if (internalGetPresentation() == null) {
+			return;
+		}
+
+		getPresentation().unrender();
+
+		// if (uiElementEditparts != null) {
+		// for (IEmbeddableEditpart child : uiElementEditparts
+		// .toArray(new IEmbeddableEditpart[uiElementEditparts.size()])) {
+		//
+		// child.unrender();
+		// }
+		// }
+
+		super.unrender();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent#disposeChild(org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void disposeChild(IEmbeddableEditpart child) {
+		// first remove the child presentation from the current presentation
+		ILayoutPresentation<?> presentation = getPresentation();
+		if (presentation != null) {
+			presentation.remove(child);
+		}
+
+		// then tell the child editpart to dispose itself
+		child.dispose();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/OpenDialogCommandEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/OpenDialogCommandEditpart.java
new file mode 100644
index 0000000..c69078a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/OpenDialogCommandEditpart.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.beans.PojoObservables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IOpenDialogCommandEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The implementation of the IOpenDialogCommandEditpart.
+ */
+public class OpenDialogCommandEditpart extends
+		CommandEditpart<YOpenDialogCommand> implements
+		IOpenDialogCommandEditpart {
+
+	/** The binding. */
+	private Binding binding;
+	
+	/** The activated. */
+	private boolean activated;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart#activate()
+	 */
+	@Override
+	public void activate() {
+		// bind the values
+		IECViewBindingManager bindingManager = getView().getContext()
+				.getService(IECViewBindingManager.class.getName());
+
+		// Bind the trigger
+		IBindableValueEndpointEditpart modelValueEditpart = (IBindableValueEndpointEditpart) getEditpart(viewContext, getModel()
+				.createTriggerDialogEndpoint());
+		IObservableValue modelObservable = modelValueEditpart.getObservable();
+		IObservableValue targetObservable = PojoObservables.observeValue(this,
+				"trigger");
+		binding = bindingManager.bindValue(targetObservable, modelObservable,
+				new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
+				new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE));
+		activated = true;
+	}
+
+	/**
+	 * Setting a value will trigger the command execution.
+	 *
+	 * @param value
+	 *            the new trigger
+	 */
+	public void setTrigger(Object value) {
+		// execute the command
+		if (activated && value != null) {
+			execute();
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (binding != null) {
+				binding.dispose();
+				binding = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart#execute()
+	 */
+	@Override
+	public void execute() {
+		checkDisposed();
+
+		YOpenDialogCommand model = getModel();
+		IDialogEditpart dialogEditpart = getEditpart(viewContext, model.getDialog());
+		IBindableEndpointEditpart bindableEndpoint = getEditpart(viewContext, model
+				.createTriggerDialogEndpoint());
+		getView().openDialog(dialogEditpart, bindableEndpoint);
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/SendEventCommandEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/SendEventCommandEditpart.java
new file mode 100644
index 0000000..7509c85
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/SendEventCommandEditpart.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.ISendEventCommandEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand;
+import org.eclipse.osbp.runtime.common.event.IEventBroker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The implementation of the IOpenDialogCommandEditpart.
+ */
+public class SendEventCommandEditpart extends
+		CommandEditpart<YSendEventCommand> implements ISendEventCommandEditpart {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(SendEventCommandEditpart.class);
+
+	/** The activated. */
+	private boolean activated;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart#activate()
+	 */
+	@Override
+	public void activate() {
+		activated = true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelSet(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		YSendEventCommand yCommand = getModel();
+		switch (featureId) {
+		case CoreModelPackage.YSEND_EVENT_COMMAND__MESSAGE:
+			if (yCommand.isAutoTrigger()) {
+				execute();
+			}
+			break;
+		case CoreModelPackage.YSEND_EVENT_COMMAND__TRIGGER:
+			trigger(yCommand);
+			break;
+		default:
+			super.handleModelSet(featureId, notification);
+		}
+	}
+
+	/**
+	 * Setting a value will trigger the command execution.
+	 *
+	 * @param value
+	 *            the value
+	 */
+	public void trigger(Object value) {
+		// execute the command
+		if (activated && value != null) {
+			execute();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart#execute()
+	 */
+	@Override
+	public void execute() {
+		checkDisposed();
+
+		YSendEventCommand yCommand = getModel();
+		IEventBroker eventAdmin = getView().getContext().getService(
+				IEventBroker.class.getName());
+		if (eventAdmin != null) {
+			try {
+				Map<String, Object> data = new HashMap<String, Object>();
+				data.put(IEventBroker.DATA, yCommand.getMessage());
+				eventAdmin.post(yCommand.getEventTopic(), data);
+			} catch (Exception e) {
+				LOGGER.error("{}", e);
+			}
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ViewEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ViewEditpart.java
new file mode 100644
index 0000000..7721706
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/ViewEditpart.java
@@ -0,0 +1,1498 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Future;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.util.EObjectValidator;
+import org.eclipse.osbp.ecview.core.common.context.ContextException;
+import org.eclipse.osbp.ecview.core.common.context.IConfiguration;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IExposedActionEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+import org.eclipse.osbp.ecview.core.common.notification.ILifecycleEvent;
+import org.eclipse.osbp.ecview.core.common.notification.ILifecycleHandler;
+import org.eclipse.osbp.ecview.core.common.notification.ILifecycleService;
+import org.eclipse.osbp.ecview.core.common.presentation.DelegatingPresenterFactory;
+import org.eclipse.osbp.ecview.core.common.presentation.IViewPresentation;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.common.services.IUiKitBasedService;
+import org.eclipse.osbp.ecview.core.common.services.IWidgetAssocationsService;
+import org.eclipse.osbp.runtime.common.event.IEventBroker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The implementation for {@link IViewEditpart}.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public class ViewEditpart<M extends YView> extends ElementEditpart<M> implements
+		IViewEditpart, ILifecycleHandler {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ViewEditpart.class);
+
+	/** The content. */
+	private IEmbeddableEditpart content;
+
+	/** The configuration. */
+	private IConfiguration configuration;
+
+	/** The presentation. */
+	private IViewPresentation<?> presentation;
+
+	/** The binding set. */
+	private IBindingSetEditpart bindingSet;
+
+	/** The command set. */
+	private ICommandSetEditpart commandSet;
+
+	/** The open dialogs. */
+	private Set<IDialogEditpart> openDialogs;
+
+	/** The v processor editparts. */
+	private List<IVisibilityProcessorEditpart> vProcessorEditparts;
+
+	/** The transient v processor editparts. */
+	private List<IVisibilityProcessorEditpart> transientVProcessorEditparts;
+
+	/** The exposed action editparts. */
+	private List<IExposedActionEditpart> exposedActionEditparts;
+
+	/**
+	 * Default constructor.
+	 */
+	public ViewEditpart() {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#findModelElement
+	 * (java.lang.String)
+	 */
+	@Override
+	public Object findModelElement(String id) {
+		if (id == null || id.equals("")) {
+			return null;
+		}
+
+		Iterator<EObject> iter = getModel().eAllContents();
+		while (iter.hasNext()) {
+			EObject eObject = iter.next();
+			if (eObject instanceof YElement) {
+				YElement yElement = (YElement) eObject;
+				if (id.equals(yElement.getId())) {
+					return yElement;
+				}
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#findBoundField
+	 * (java.lang.String)
+	 */
+	@Override
+	public Object findBoundField(String bindingIdRegex) {
+		if (bindingIdRegex == null || bindingIdRegex.equals("")) {
+			return null;
+		}
+
+		Iterator<EObject> iter = getModel().eAllContents();
+		while (iter.hasNext()) {
+			EObject eObject = iter.next();
+			if (eObject instanceof YBinding) {
+				YBinding yBinding = (YBinding) eObject;
+
+				if (!(yBinding instanceof YValueBinding)) {
+					continue;
+				}
+
+				YValueBinding binding = (YValueBinding) yBinding;
+
+				String modelBindingId = binding.getModelEndpoint()
+						.getBindingIdString();
+				String targetBindingId = binding.getTargetEndpoint()
+						.getBindingIdString();
+
+				if (modelBindingId.matches(bindingIdRegex)) {
+					// we found a binding that matches the search value
+					// now check, whether the opposite endpoint is a
+					// yFieldEndpoint
+					String oppositeId = binding.getTargetEndpoint()
+							.getBindingIdString();
+					if (oppositeId.startsWith(BindingIdUtil.UI_VALUE)) {
+						// we found the field
+						YEmbeddableValueEndpoint ep = (YEmbeddableValueEndpoint) binding
+								.getTargetEndpoint();
+						return ep.getElement();
+					} else if (oppositeId
+							.startsWith(BindingIdUtil.MODEL_BINDING)
+							&& (oppositeId.endsWith("value") || oppositeId
+									.endsWith("collection"))) {
+						// we found the field
+						YECViewModelValueBindingEndpoint ep = (YECViewModelValueBindingEndpoint) binding
+								.getTargetEndpoint();
+						return ep.getElement();
+					}
+
+				} else if (targetBindingId.matches(bindingIdRegex)) {
+
+					// we found a binding that matches the search value
+					// now check, whether the opposite endpoint is a
+					// yFieldEndpoint
+					String oppositeId = binding.getModelEndpoint()
+							.getBindingIdString();
+					if (oppositeId.startsWith(BindingIdUtil.UI_VALUE)) {
+						// we found the field
+						YEmbeddableValueEndpoint ep = (YEmbeddableValueEndpoint) binding
+								.getModelEndpoint();
+						return ep.getElement();
+					} else if (oppositeId
+							.startsWith(BindingIdUtil.MODEL_BINDING)
+							&& (oppositeId.endsWith("value") || oppositeId
+									.endsWith("collection"))) {
+						// we found the field
+						YECViewModelValueBindingEndpoint ep = (YECViewModelValueBindingEndpoint) binding
+								.getTargetEndpoint();
+						return ep.getElement();
+					}
+				}
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#render(java
+	 * .util.Map)
+	 */
+	@Override
+	public void render(Map<String, Object> options) throws ContextException {
+		checkDisposed();
+		try {
+			validateModel();
+
+			if (configuration != null) {
+				configuration.beforeUiRendering(getContext());
+			}
+
+			// ensure that the bean slots are initialized
+			for (YBeanSlot yBeanSlot : getModel().getBeanSlots()) {
+				internalAddBeanSlot(yBeanSlot);
+			}
+
+			bindDetailBeanSlots();
+
+			// register the context as a bean slot
+			viewContext.createBeanSlot(BEANSLOT__ECVIEW_CONTEXT,
+					IViewContext.class);
+			viewContext.setBean(BEANSLOT__ECVIEW_CONTEXT, getContext());
+
+			// Will create the editparts.
+			internalLoadExposedActions();
+
+			// render the view presentation
+			renderPresentation(options);
+
+			if (configuration != null) {
+				configuration.afterUiRendering(getContext());
+			}
+
+			if (configuration != null) {
+				configuration.beforeBind(getContext());
+			}
+			// render the bindings
+			renderBindings(options);
+
+			// render the commands
+			renderCommands(options);
+
+			// render the visibility processor
+			activateVisibilityProcessor(options);
+
+			if (configuration != null) {
+				configuration.afterBind(getContext());
+			}
+
+			if (getContext() != null) {
+				ILifecycleService service = getContext().getService(
+						ILifecycleService.class.getName());
+				if (service == null) {
+					throw new RuntimeException("ILifecycleService is required");
+				}
+				service.addHandler(this);
+			}
+
+			// set the initial focus
+			if (getModel().getInitialFocus() != null) {
+				requestFocus(getModel().getInitialFocus());
+			}
+		} catch (Exception ex) {
+			LOGGER.error("{}", ex);
+		}
+	}
+
+	/**
+	 * This methods binds the detail bean slots to their master slot.
+	 */
+	protected void bindDetailBeanSlots() {
+		for (YBeanSlot beanSlot : getModel().getBeanSlots()) {
+			if (beanSlot instanceof YDetailBeanSlot) {
+				YDetailBeanSlot detailSlot = (YDetailBeanSlot) beanSlot;
+				YBeanSlot masterSlot = detailSlot.getMasterBeanSlot();
+
+				// TODO masterSlot may also be a detailSlot. So take care about
+				// the order in creating bindings
+
+				// the input of detail is the main slot
+				YBeanSlotValueBindingEndpoint detailSlotEP = detailSlot
+						.createBindingEndpoint("value");
+
+				// the output of master is the property path from detail slot
+				YBeanSlotValueBindingEndpoint masterSlotEP = masterSlot
+						.createBindingEndpoint(detailSlot.getPropertyPath());
+
+				// add the binding as a transient binding. Will not be persisted
+				// if the model was persisted
+				getModel().getOrCreateBindingSet().addTransientBinding(
+						detailSlotEP, masterSlotEP,
+						YBindingUpdateStrategy.NEVER,
+						YBindingUpdateStrategy.UPDATE);
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent#unrenderChild
+	 * (org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void unrenderChild(IEmbeddableEditpart child) {
+		if (child != content) {
+			return;
+		}
+
+		// first remove the child presentation from the current presentation
+		getPresentation().setContent(null);
+
+		// then tell the child editpart to unrender its own presentation
+		child.unrender();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent#disposeChild
+	 * (org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void disposeChild(IEmbeddableEditpart child) {
+		if (child != content) {
+			return;
+		}
+
+		// first remove the child presentation from the current presentation
+		getPresentation().setContent(null);
+		content = null;
+
+		// then tell the child editpart to dispose itself
+		child.dispose();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableParent#renderChild
+	 * (org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void renderChild(IEmbeddableEditpart child) {
+		if (child != content) {
+			return;
+		}
+
+		getPresentation().setContent(child);
+	}
+
+	/**
+	 * Validates the model and throws an exception if model is not valid.
+	 *
+	 * @throws ContextException
+	 *             the viewContext exception
+	 */
+	protected void validateModel() throws ContextException {
+		YView yView = getModel();
+		EValidator validator = EObjectValidator.INSTANCE;
+		BasicDiagnostic diagnostic = new BasicDiagnostic();
+		boolean valid = validator.validate(yView, diagnostic, null);
+		if (!valid) {
+			throw new ContextException(diagnostic.toString());
+		}
+	}
+
+	/**
+	 * Renders the presentation of that view.
+	 *
+	 * @param options
+	 *            the options
+	 * @throws ContextException
+	 *             the viewContext exception
+	 */
+	protected void renderPresentation(Map<String, Object> options)
+			throws ContextException {
+		checkDisposed();
+
+		IViewPresentation<?> presentation = getPresentation();
+		if (presentation == null) {
+			throw new ContextException("Presenter must not be null!");
+		}
+		presentation.render(options);
+	}
+
+	/**
+	 * Renders the bindings of that view.
+	 *
+	 * @param options
+	 *            the options
+	 * @throws ContextException
+	 *             the viewContext exception
+	 */
+	protected void renderBindings(Map<String, Object> options)
+			throws ContextException {
+		checkDisposed();
+
+		IBindingSetEditpart bindingSet = getBindingSet();
+		if (bindingSet == null) {
+			LOGGER.info("BindingSet is null!");
+		}
+		// call to activate not required. Pending bindings are bound
+		// automatically
+	}
+
+	/**
+	 * Renders the commands of that view.
+	 *
+	 * @param options
+	 *            the options
+	 * @throws ContextException
+	 *             the viewContext exception
+	 */
+	protected void renderCommands(Map<String, Object> options)
+			throws ContextException {
+		checkDisposed();
+
+		ICommandSetEditpart commandSet = getCommandSet();
+		if (commandSet == null) {
+			LOGGER.info("CommandSet is null!");
+		}
+		// call to activate not required. Pending commands are activated
+		// automatically
+	}
+
+	/**
+	 * Activates the visibility processor of that view.
+	 *
+	 * @param options
+	 *            the options
+	 * @throws ContextException
+	 *             the viewContext exception
+	 */
+	protected void activateVisibilityProcessor(Map<String, Object> options)
+			throws ContextException {
+		checkDisposed();
+
+		getVisibilityProcessors();
+		getTransientVisibilityProcessors();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.ecview.core.common.notification.ILifecycleHandler#
+	 * notifyLifecycle
+	 * (org.eclipse.osbp.ecview.core.common.notification.ILifecycleEvent)
+	 */
+	@Override
+	public void notifyLifecycle(ILifecycleEvent event) {
+		IElementEditpart editPart = event.getEditpart();
+
+		switch (event.getType()) {
+		case ILifecycleEvent.TYPE_DISPOSED: {
+			YElement element = (YElement) editPart.getModel();
+			if (element instanceof YBindable) {
+				IBindingSetEditpart bindingSet = getBindingSet();
+				if (bindingSet != null) {
+					List<IBindingEditpart<?>> bindings = bindingSet
+							.findBindings(element);
+					for (IBindingEditpart<?> binding : bindings) {
+						if (!binding.isDisposed()) {
+							binding.dispose();
+						}
+					}
+				}
+			}
+
+			// send the lifecycle event by event admin
+			IEventBroker broker = getContext().getService(
+					IEventBroker.class.getName());
+			if (broker != null) {
+				broker.send(IViewContext.TOPIC_LIFECYCLE, event);
+			}
+
+			break;
+		}
+		case ILifecycleEvent.TYPE_RENDERED: {
+			YElement element = (YElement) editPart.getModel();
+			if (element instanceof YBindable) {
+				IBindingSetEditpart bindingSet = getBindingSet();
+				if (bindingSet != null) {
+					List<IBindingEditpart<?>> bindings = bindingSet
+							.findBindings(element);
+					for (IBindingEditpart<?> binding : bindings) {
+						if (!binding.isBound()) {
+							binding.bind();
+						}
+					}
+				}
+			}
+			break;
+		}
+		case ILifecycleEvent.TYPE_UNRENDERED: {
+			YElement element = (YElement) editPart.getModel();
+			if (element instanceof YBindable) {
+				IBindingSetEditpart bindingSet = getBindingSet();
+				if (bindingSet != null) {
+					List<IBindingEditpart<?>> bindings = bindingSet
+							.findBindings(element);
+					for (IBindingEditpart<?> binding : bindings) {
+						binding.unbind();
+					}
+				}
+			}
+			break;
+		}
+		}
+	}
+
+	// /* (non-Javadoc)
+	// * @see
+	// org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#setContext(org.eclipse.osbp.ecview.core.common.context.IViewContext)
+	// */
+	// @Override
+	// // BEGIN SUPRESS CATCH EXCEPTION
+	// public void setContext(IViewContext context) throws RuntimeException {
+	// // END SUPRESS CATCH EXCEPTION
+	//
+	// checkDisposed();
+	//
+	// if (this.context == context) {
+	// return;
+	// }
+	//
+	// if (this.context != null && this.context.isRendered()) {
+	// throw new RuntimeException(
+	// "Already rendered! Changing context not allowed!");
+	// }
+	// this.context = context;
+	// }
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#setConfiguration
+	 * (org.eclipse.osbp.ecview.core.common.context.IConfiguration)
+	 */
+	@Override
+	public void setConfiguration(IConfiguration configuration) {
+		checkDisposed();
+
+		this.configuration = configuration;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#getName()
+	 */
+	@Override
+	public String getName() {
+		return getModel().getViewName();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#setContent
+	 * (org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart)
+	 */
+	@Override
+	public void setContent(IEmbeddableEditpart content) {
+		try {
+			checkDisposed();
+
+			// set the element by using the model
+			//
+			M yView = getModel();
+			YEmbeddable yElement = content != null ? (YEmbeddable) content
+					.getModel() : null;
+			yView.setContent(yElement);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#getContent()
+	 */
+	@Override
+	public IEmbeddableEditpart getContent() {
+		if (content == null) {
+			loadContent();
+		}
+		return content;
+	}
+
+	/**
+	 * Loads the content of the view.
+	 */
+	protected void loadContent() {
+		if (content == null) {
+			YEmbeddable yContent = getModel().getContent();
+			internalSetContent((IEmbeddableEditpart) getEditpart(viewContext,
+					yContent));
+		}
+	}
+
+	/**
+	 * May be invoked by a model change and the content of the edit part should
+	 * be set.
+	 * 
+	 * @param content
+	 *            The content to be set
+	 */
+	protected void internalSetContent(IEmbeddableEditpart content) {
+		this.content = content;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#setBindingSet
+	 * (org
+	 * .eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart)
+	 */
+	@Override
+	public void setBindingSet(IBindingSetEditpart bindingSet) {
+		try {
+			checkDisposed();
+
+			// set the element by using the model
+			//
+			M yView = getModel();
+			YBindingSet yBindingSet = bindingSet != null ? (YBindingSet) bindingSet
+					.getModel() : null;
+			yView.setBindingSet(yBindingSet);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#getBindingSet
+	 * ()
+	 */
+	@Override
+	public IBindingSetEditpart getBindingSet() {
+		checkDisposed();
+
+		if (bindingSet == null) {
+			loadBindingSet();
+		}
+		return bindingSet;
+	}
+
+	/**
+	 * Loads the bindingSet of the view.
+	 */
+	protected void loadBindingSet() {
+		checkDisposed();
+
+		if (bindingSet == null) {
+			YBindingSet yBindingSet = getModel().getOrCreateBindingSet();
+			internalSetBindingSet((IBindingSetEditpart) getEditpart(
+					viewContext, yBindingSet));
+		}
+	}
+
+	/**
+	 * May be invoked by a model change and the bindingSet of the edit part
+	 * should be set.
+	 * 
+	 * @param bindingSet
+	 *            The bindingSet to be set
+	 */
+	protected void internalSetBindingSet(IBindingSetEditpart bindingSet) {
+		checkDisposed();
+
+		if (this.bindingSet == bindingSet) {
+			return;
+		}
+
+		IBindingSetEditpart current = this.bindingSet;
+		this.bindingSet = bindingSet;
+
+		// dispose current binding set
+		if (current != null) {
+			current.dispose();
+		}
+
+		// activate the new binding set
+		if (this.bindingSet != null && !this.bindingSet.isActive()) {
+			this.bindingSet.activate();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#setCommandSet
+	 * (org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart)
+	 */
+	@Override
+	public void setCommandSet(ICommandSetEditpart commandSet) {
+		try {
+			checkDisposed();
+
+			// set the element by using the model
+			//
+			M yView = getModel();
+			YCommandSet yCommandSet = commandSet != null ? (YCommandSet) commandSet
+					.getModel() : null;
+			yView.setCommandSet(yCommandSet);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#getCommandSet
+	 * ()
+	 */
+	@Override
+	public ICommandSetEditpart getCommandSet() {
+		checkDisposed();
+
+		if (commandSet == null) {
+			loadCommandSet();
+		}
+		return commandSet;
+	}
+
+	/**
+	 * Loads the commandSet of the view.
+	 */
+	protected void loadCommandSet() {
+		checkDisposed();
+
+		if (commandSet == null) {
+			YCommandSet yCommandSet = getModel().getCommandSet();
+			internalSetCommandSet((ICommandSetEditpart) getEditpart(
+					viewContext, yCommandSet));
+		}
+	}
+
+	/**
+	 * May be invoked by a model change and the commandSet of the edit part
+	 * should be set.
+	 * 
+	 * @param commandSet
+	 *            The commandSet to be set
+	 */
+	protected void internalSetCommandSet(ICommandSetEditpart commandSet) {
+		checkDisposed();
+
+		if (this.commandSet == commandSet) {
+			return;
+		}
+
+		ICommandSetEditpart current = this.commandSet;
+		this.commandSet = commandSet;
+
+		// dispose current binding set
+		if (current != null) {
+			current.dispose();
+		}
+
+		// activate the new binding set
+		if (this.commandSet != null && !this.commandSet.isActive()) {
+			this.commandSet.activate();
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YVIEW__CONTENT:
+
+			IEmbeddableEditpart oldContent = content;
+			if (oldContent != null) {
+				oldContent.dispose();
+				internalSetContent(null);
+				if (isRendered()) {
+					getPresentation().setContent(null);
+				}
+			}
+
+			YEmbeddable yNewContent = (YEmbeddable) notification.getNewValue();
+			IEmbeddableEditpart editPart = (IEmbeddableEditpart) getEditpart(
+					viewContext, yNewContent);
+			internalSetContent(editPart);
+
+			// handle the presentation
+			//
+			if (isRendered()) {
+				getPresentation().setContent(editPart);
+			}
+
+			break;
+		case CoreModelPackage.YVIEW__BINDING_SET:
+			YBindingSet yNewBindingSet = (YBindingSet) notification
+					.getNewValue();
+			IBindingSetEditpart bsEditPart = (IBindingSetEditpart) getEditpart(
+					viewContext, yNewBindingSet);
+			internalSetBindingSet(bsEditPart);
+			break;
+		case CoreModelPackage.YVIEW__COMMAND_SET:
+			YCommandSet yNewCommandSet = (YCommandSet) notification
+					.getNewValue();
+			ICommandSetEditpart csEditPart = (ICommandSetEditpart) getEditpart(
+					viewContext, yNewCommandSet);
+			internalSetCommandSet(csEditPart);
+			break;
+		case CoreModelPackage.YVIEW__CURRENT_FOCUS:
+			YFocusable yFocusable = (YFocusable) notification.getNewValue();
+			requestFocus(yFocusable);
+			break;
+		case CoreModelPackage.YVIEW__CONTENT_ALIGNMENT:
+			if (isRendered()) {
+				getPresentation().updateContentAlignment();
+			}
+		case CoreModelPackage.YVIEW__MARGIN:
+			if (isRendered()) {
+				getPresentation().updateSpacings();
+			}
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * Requests the focus for the given element.
+	 *
+	 * @param yFocusable
+	 *            the y focusable
+	 */
+	protected void requestFocus(YFocusable yFocusable) {
+		getPresentation().requestFocus(
+				getEditpart(viewContext, (YElement) yFocusable));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#
+	 * handleModelAdd(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelAdd(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YVIEW__BEAN_SLOTS:
+			YBeanSlot yBeanSlot = (YBeanSlot) notification.getNewValue();
+			internalAddBeanSlot(yBeanSlot);
+			break;
+		case CoreModelPackage.YVIEW__VISIBILITY_PROCESSORS:
+			YVisibilityProcessor yElement = (YVisibilityProcessor) notification
+					.getNewValue();
+			internalAddVisibilityProcessor((IVisibilityProcessorEditpart) getEditpart(
+					viewContext, yElement));
+			break;
+		case CoreModelPackage.YVIEW__TRANSIENT_VISIBILITY_PROCESSORS:
+			yElement = (YVisibilityProcessor) notification.getNewValue();
+			internalAddTransientVisibilityProcessor((IVisibilityProcessorEditpart) getEditpart(
+					viewContext, yElement));
+			break;
+		case CoreModelPackage.YVIEW__EXPOSED_ACTIONS:
+			YExposedAction yAction = (YExposedAction) notification
+					.getNewValue();
+			internalAddExposedAction((IExposedActionEditpart) getEditpart(
+					viewContext, yAction));
+			break;
+		default:
+			break;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#
+	 * handleModelRemove(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelRemove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case CoreModelPackage.YVIEW__BEAN_SLOTS:
+			throw new IllegalStateException("Viewslots must not be removed!");
+		case CoreModelPackage.YVIEW__VISIBILITY_PROCESSORS:
+			YVisibilityProcessor yElement = (YVisibilityProcessor) notification
+					.getOldValue();
+			internalRemoveVisibilityProcessor((IVisibilityProcessorEditpart) getEditpart(
+					viewContext, yElement));
+			break;
+		case CoreModelPackage.YVIEW__TRANSIENT_VISIBILITY_PROCESSORS:
+			yElement = (YVisibilityProcessor) notification.getOldValue();
+			internalRemoveTransientVisibilityProcessor((IVisibilityProcessorEditpart) getEditpart(
+					viewContext, yElement));
+			break;
+		case CoreModelPackage.YVIEW__EXPOSED_ACTIONS:
+			YExposedAction yAction = (YExposedAction) notification
+					.getOldValue();
+			internalRemoveExposedAction((IExposedActionEditpart) getEditpart(
+					viewContext, yAction));
+			break;
+		default:
+			break;
+		}
+	}
+
+	@Override
+	public void initialize(IViewContext context, M model) {
+		super.initialize(context, model);
+
+		context.setViewEditpart(this);
+	}
+
+	/**
+	 * Registers the given bean slot.
+	 *
+	 * @param yBeanSlot
+	 *            the y bean slot
+	 */
+	protected void internalAddBeanSlot(YBeanSlot yBeanSlot) {
+		checkDisposed();
+
+		if (viewContext == null) {
+			LOGGER.warn("ViewEditpart is not rendered yet. Can not install beanslot!");
+			return;
+		}
+
+		// redirect events are handled from outside
+		viewContext.createBeanSlot(yBeanSlot.getName(), yBeanSlot
+				.getValueType(), yBeanSlot.isRedirectEvents() ? null
+				: yBeanSlot.getEventTopic());
+	}
+
+	/**
+	 * Gets the visibility processors.
+	 *
+	 * @return the visibility processors
+	 */
+	public List<IVisibilityProcessorEditpart> getVisibilityProcessors() {
+		if (vProcessorEditparts == null) {
+			internalLoadVisibilityProcessors();
+		}
+		return Collections.unmodifiableList(vProcessorEditparts);
+	}
+
+	/**
+	 * Gets the transient visibility processors.
+	 *
+	 * @return the transient visibility processors
+	 */
+	public List<IVisibilityProcessorEditpart> getTransientVisibilityProcessors() {
+		if (transientVProcessorEditparts == null) {
+			internalLoadTransientVisibilityProcessors();
+		}
+		return Collections.unmodifiableList(transientVProcessorEditparts);
+	}
+
+	/**
+	 * Adds the visibility processor.
+	 *
+	 * @param element
+	 *            the element
+	 */
+	public void addVisibilityProcessor(IVisibilityProcessorEditpart element) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			M yVProcessor = getModel();
+			YVisibilityProcessor yVisibilityProcessor = (YVisibilityProcessor) element
+					.getModel();
+			yVProcessor.getVisibilityProcessors().add(yVisibilityProcessor);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/**
+	 * Removes the visibility processor.
+	 *
+	 * @param element
+	 *            the element
+	 */
+	public void removeVisibilityProcessor(IVisibilityProcessorEditpart element) {
+		try {
+			checkDisposed();
+
+			// remove the element by using the model
+			//
+			M yVProcessor = getModel();
+			YVisibilityProcessor yVisibilityProcessor = (YVisibilityProcessor) element
+					.getModel();
+			yVProcessor.getVisibilityProcessors().remove(yVisibilityProcessor);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of processors.
+	 * 
+	 * @param editpart
+	 *            The editpart to be added
+	 */
+	protected void internalAddVisibilityProcessor(
+			IVisibilityProcessorEditpart editpart) {
+		checkDisposed();
+
+		if (vProcessorEditparts == null) {
+			internalLoadVisibilityProcessors();
+		}
+		if (!vProcessorEditparts.contains(editpart)) {
+			vProcessorEditparts.add(editpart);
+
+			editpart.activate();
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of transientVProcessors.
+	 * 
+	 * @param editpart
+	 *            The editpart to be added
+	 */
+	protected void internalAddTransientVisibilityProcessor(
+			IVisibilityProcessorEditpart editpart) {
+		checkDisposed();
+
+		if (transientVProcessorEditparts == null) {
+			internalLoadTransientVisibilityProcessors();
+		}
+		if (!transientVProcessorEditparts.contains(editpart)) {
+			transientVProcessorEditparts.add(editpart);
+
+			if (isRendered()) {
+				editpart.activate();
+			}
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of processors.
+	 * 
+	 * @param editpart
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveVisibilityProcessor(
+			IVisibilityProcessorEditpart editpart) {
+		checkDisposed();
+
+		if (vProcessorEditparts != null && editpart != null) {
+			vProcessorEditparts.remove(editpart);
+
+			editpart.dispose();
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of transient processors.
+	 * 
+	 * @param editpart
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveTransientVisibilityProcessor(
+			IVisibilityProcessorEditpart editpart) {
+		checkDisposed();
+
+		if (transientVProcessorEditparts != null && editpart != null) {
+			transientVProcessorEditparts.remove(editpart);
+
+			editpart.dispose();
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all elements.
+	 */
+	protected void internalLoadVisibilityProcessors() {
+		checkDisposed();
+
+		if (vProcessorEditparts == null) {
+			vProcessorEditparts = new ArrayList<IVisibilityProcessorEditpart>();
+			for (YVisibilityProcessor yVisibilityProcessor : getModel()
+					.getVisibilityProcessors()) {
+				IVisibilityProcessorEditpart editPart = getEditpart(
+						viewContext, yVisibilityProcessor);
+				internalAddVisibilityProcessor(editPart);
+			}
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all transientVProcessors.
+	 */
+	protected void internalLoadTransientVisibilityProcessors() {
+		checkDisposed();
+
+		if (transientVProcessorEditparts == null) {
+			transientVProcessorEditparts = new ArrayList<IVisibilityProcessorEditpart>();
+			for (YVisibilityProcessor yVisibilityProcessor : getModel()
+					.getTransientVisibilityProcessors()) {
+				IVisibilityProcessorEditpart editPart = getEditpart(
+						viewContext, yVisibilityProcessor);
+				internalAddTransientVisibilityProcessor(editPart);
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#getExposedActions
+	 * ()
+	 */
+	public List<IExposedActionEditpart> getExposedActions() {
+		if (exposedActionEditparts == null) {
+			internalLoadExposedActions();
+		}
+		return Collections.unmodifiableList(exposedActionEditparts);
+	}
+
+	/**
+	 * Adds the exposed actions.
+	 *
+	 * @param element
+	 *            the element
+	 */
+	public void addExposedActions(IExposedActionEditpart element) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			M yView = getModel();
+			YExposedAction yExposedAction = (YExposedAction) element.getModel();
+			yView.getExposedActions().add(yExposedAction);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/**
+	 * Removes the exposed action.
+	 *
+	 * @param element
+	 *            the element
+	 */
+	public void removeExposedAction(IExposedActionEditpart element) {
+		try {
+			checkDisposed();
+
+			// remove the element by using the model
+			//
+			M yView = getModel();
+			YExposedAction yExposedAction = (YExposedAction) element.getModel();
+			yView.getExposedActions().remove(yExposedAction);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of processors.
+	 * 
+	 * @param editpart
+	 *            The editpart to be added
+	 */
+	@SuppressWarnings("unchecked")
+	protected void internalAddExposedAction(IExposedActionEditpart editpart) {
+		checkDisposed();
+
+		if (exposedActionEditparts == null) {
+			internalLoadExposedActions();
+		}
+		if (!exposedActionEditparts.contains(editpart)) {
+
+			@SuppressWarnings("rawtypes")
+			IWidgetAssocationsService associations = viewContext
+					.getService(IWidgetAssocationsService.ID);
+			associations.associate(editpart, editpart.getModel());
+
+			exposedActionEditparts.add(editpart);
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of processors.
+	 * 
+	 * @param editpart
+	 *            The editpart to be removed
+	 */
+	@SuppressWarnings("unchecked")
+	protected void internalRemoveExposedAction(IExposedActionEditpart editpart) {
+		checkDisposed();
+
+		if (exposedActionEditparts != null && editpart != null) {
+			exposedActionEditparts.remove(editpart);
+
+			@SuppressWarnings("rawtypes")
+			IWidgetAssocationsService associations = viewContext
+					.getService(IWidgetAssocationsService.ID);
+			associations.remove(editpart);
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all elements.
+	 */
+	protected void internalLoadExposedActions() {
+		checkDisposed();
+
+		if (exposedActionEditparts == null) {
+			exposedActionEditparts = new ArrayList<IExposedActionEditpart>();
+			for (YExposedAction exposedActionEditpart : getModel()
+					.getExposedActions()) {
+				IExposedActionEditpart editPart = getEditpart(viewContext,
+						exposedActionEditpart);
+				internalAddExposedAction(editPart);
+			}
+		}
+	}
+
+	/**
+	 * Returns true, if the editpart is currently rendered.
+	 *
+	 * @return true, if is rendered
+	 */
+	private boolean isRendered() {
+		checkDisposed();
+
+		return internalGetPresentation() != null
+				&& internalGetPresentation().isRendered();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#
+	 * internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+
+			if (viewContext != null) {
+				ILifecycleService service = viewContext
+						.getService(ILifecycleService.class.getName());
+				if (service != null) {
+					// now remove the handler
+					service.removeHandler(this);
+				}
+			}
+
+			// dispose the presenter
+			//
+			if (presentation != null) {
+				presentation.dispose();
+				presentation = null;
+			}
+
+			if (getContent() != null) {
+				content.dispose();
+				content = null;
+			}
+
+			if (openDialogs != null) {
+				for (IDialogEditpart dialog : openDialogs) {
+					dialog.dispose();
+				}
+				openDialogs = null;
+			}
+
+			if (getBindingSet() != null) {
+				bindingSet.dispose();
+				bindingSet = null;
+			}
+
+			// dispose all visibility processor
+			for (IVisibilityProcessorEditpart editpart : getVisibilityProcessors()) {
+				editpart.dispose();
+			}
+			vProcessorEditparts = null;
+
+			for (IVisibilityProcessorEditpart editpart : getTransientVisibilityProcessors()) {
+				editpart.dispose();
+			}
+			transientVProcessorEditparts = null;
+
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/**
+	 * Returns the instance of the presentation, but does not load it.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IWidgetPresentation}
+	 * @return presentation
+	 */
+	@SuppressWarnings("unchecked")
+	protected <A extends IWidgetPresentation<?>> A internalGetPresentation() {
+		checkDisposed();
+
+		return (A) presentation;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#getPresentation
+	 * ()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IViewPresentation<?>> A getPresentation() {
+		checkDisposed();
+
+		if (presentation == null) {
+			presentation = createPresentation();
+		}
+		return (A) presentation;
+	}
+
+	/**
+	 * Is called to created the presenter for this edit part.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IViewPresentation}
+	 * 
+	 * @return The created presentation.
+	 */
+	protected <A extends IViewPresentation<?>> A createPresentation() {
+		return DelegatingPresenterFactory.getInstance().createPresentation(
+				getContext(), this);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#exec(java.
+	 * lang.Runnable)
+	 */
+	@Override
+	public void exec(Runnable runnable) {
+		checkDisposed();
+		getPresentation().exec(runnable);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#execAsync(
+	 * java.lang.Runnable)
+	 */
+	@Override
+	public Future<?> execAsync(Runnable runnable) {
+		checkDisposed();
+		return getPresentation().execAsync(runnable);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#createService
+	 * (java.lang.Class)
+	 */
+	@Override
+	public <A extends IUiKitBasedService> A createService(Class<A> serviceClass) {
+		return getPresentation().createService(serviceClass);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#openDialog
+	 * (org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart,
+	 * org.eclipse
+	 * .osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart)
+	 */
+	@Override
+	public void openDialog(IDialogEditpart dialogEditpart,
+			IBindableEndpointEditpart inputData) {
+		if (dialogEditpart == null) {
+			return;
+		}
+
+		if (openDialogs == null) {
+			openDialogs = new HashSet<IDialogEditpart>();
+		}
+		openDialogs.add(dialogEditpart);
+
+		getPresentation().openDialog(dialogEditpart, inputData);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart#closeDialog
+	 * (org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart)
+	 */
+	@Override
+	public void closeDialog(IDialogEditpart dialogEditpart) {
+		if (dialogEditpart == null) {
+			return;
+		}
+
+		if (openDialogs != null) {
+			openDialogs.remove(dialogEditpart);
+		}
+
+		getPresentation().closeDialog(dialogEditpart);
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BeanValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BeanValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..53ec8cb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BeanValueBindingEndpointEditpart.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.binding;
+
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBeanValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Responsible to create an observable. The model of this editpart is used to
+ * access the getObservableValue from the underlying widget presentation.
+ */
+public class BeanValueBindingEndpointEditpart extends
+		BindableValueEndpointEditpart<YBeanValueBindingEndpoint> implements
+		IBeanValueBindingEndpointEditpart {
+
+	private static final Logger logger = LoggerFactory
+			.getLogger(BeanValueBindingEndpointEditpart.class);
+	private RefreshProvider refresh;
+
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		switch (featureId) {
+		case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__BEAN:
+			refresh.refresh();
+			break;
+		default:
+			break;
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableValue> A getObservable() {
+
+		Object bean = getModel().getBean();
+
+		String propertyPath = getModel().getPropertyPath();
+		if (bean == null || propertyPath == null || propertyPath.equals("")) {
+			logger.warn("Bean {} or propertyPath {} not valid!", bean,
+					propertyPath);
+			return null;
+		}
+
+		IObservableValue observable = null;
+		if (propertyPath.contains("\\.")) {
+			WritableValue value = new WritableValue(bean, bean.getClass());
+			observable = BeansObservables.observeDetailValue(value,
+					propertyPath, null);
+		} else {
+			observable = BeansObservables.observeValue(bean, propertyPath);
+		}
+
+		return (A) observable;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		this.refresh = refresh;
+	}
+
+	@Override
+	protected void internalDispose() {
+		refresh = null;
+
+		super.internalDispose();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BindableListEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BindableListEndpointEditpart.java
new file mode 100644
index 0000000..ee120a2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BindableListEndpointEditpart.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.binding;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableListEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Implementation of {@link IBindingSetEditpart}.
+ * 
+ * @param <M>
+ */
+public abstract class BindableListEndpointEditpart<M extends YBindingEndpoint>
+		extends ElementEditpart<M> implements IBindableListEndpointEditpart {
+
+	@SuppressWarnings("unused")
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(BindableListEndpointEditpart.class);
+
+	/**
+	 * A default constructor.
+	 */
+	public BindableListEndpointEditpart() {
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+		} finally {
+			super.internalDispose();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BindableValueEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BindableValueEndpointEditpart.java
new file mode 100644
index 0000000..637a27c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BindableValueEndpointEditpart.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.binding;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementation of {@link IBindingSetEditpart}.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public abstract class BindableValueEndpointEditpart<M extends YBindingEndpoint>
+		extends ElementEditpart<M> implements IBindableValueEndpointEditpart {
+
+	/** The Constant LOGGER. */
+	@SuppressWarnings("unused")
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(BindableValueEndpointEditpart.class);
+
+	/**
+	 * A default constructor.
+	 */
+	public BindableValueEndpointEditpart() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+		} finally {
+			super.internalDispose();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BindingSetEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BindingSetEditpart.java
new file mode 100644
index 0000000..c624e0d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/BindingSetEditpart.java
@@ -0,0 +1,546 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.binding;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementation of {@link IBindingSetEditpart}.
+ */
+public class BindingSetEditpart extends ElementEditpart<YBindingSet> implements
+		IBindingSetEditpart {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(BindingSetEditpart.class);
+
+	/** The lock. */
+	private Object lock;
+
+	/** The active. */
+	private boolean active;
+	
+	/** The bindings. */
+	private List<IBindingEditpart<?>> bindings;
+	
+	/** The transient bindings. */
+	private List<IBindingEditpart<?>> transientBindings;
+	
+	/** The binding manager. */
+	private IECViewBindingManager bindingManager;
+
+	/**
+	 * A default constructor.
+	 */
+	public BindingSetEditpart() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#getView()
+	 */
+	@Override
+	public IViewEditpart getView() {
+		checkDisposed();
+
+		YView yView = getModel().getView();
+		return yView != null ? (IViewEditpart) ElementEditpart
+				.findEditPartFor(yView) : null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#getBindingManager()
+	 */
+	@Override
+	public IECViewBindingManager getBindingManager() {
+		IViewEditpart view = getView();
+		if (view == null) {
+			if (bindingManager != null) {
+				return bindingManager;
+			}
+			throw new IllegalArgumentException(
+					"View and BindingManager must not be null for now!");
+		} else {
+			IECViewBindingManager bm = view.getContext().getService(
+					IECViewBindingManager.class.getName());
+			if (bm == null) {
+				bm = this.bindingManager;
+			}
+			return bm;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#setBindingManager(org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager)
+	 */
+	@Override
+	public void setBindingManager(IECViewBindingManager bindingManager) {
+		this.bindingManager = bindingManager;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#isActive()
+	 */
+	@Override
+	public boolean isActive() {
+		checkDisposed();
+
+		return active;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#activate()
+	 */
+	@Override
+	public void activate() {
+		checkDisposed();
+
+		try {
+			for (IBindingEditpart<?> binding : getBindings()) {
+				binding.bind();
+			}
+
+			for (IBindingEditpart<?> binding : getTransientBindings()) {
+				binding.bind();
+			}
+		} finally {
+			active = true;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#addBinding(org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart)
+	 */
+	@Override
+	public void addBinding(IBindingEditpart<?> binding) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			YBindingSet yBindingSet = getModel();
+			YBinding yBinding = (YBinding) binding.getModel();
+			yBindingSet.addBinding(yBinding);
+
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#removeBinding(org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart)
+	 */
+	@Override
+	public void removeBinding(IBindingEditpart<?> binding) {
+		try {
+			checkDisposed();
+
+			// remove the element by using the model
+			//
+			YBindingSet yBindingSet = getModel();
+			YBinding yBinding = (YBinding) binding.getModel();
+			yBindingSet.removeBinding(yBinding);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#addTransientBinding(org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart)
+	 */
+	@Override
+	public void addTransientBinding(IBindingEditpart<?> binding) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			YBindingSet yBindingSet = getModel();
+			YBinding yBinding = (YBinding) binding.getModel();
+			yBindingSet.getTransientBindings().add(yBinding);
+
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#removeTransientBinding(org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart)
+	 */
+	@Override
+	public void removeTransientBinding(IBindingEditpart<?> binding) {
+		try {
+			checkDisposed();
+
+			// remove the element by using the model
+			//
+			YBindingSet yBindingSet = getModel();
+			YBinding yBinding = (YBinding) binding.getModel();
+			yBindingSet.getTransientBindings().remove(yBinding);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelAdd(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelAdd(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case BindingPackage.YBINDING_SET__BINDINGS:
+			YBinding yBinding = (YBinding) notification.getNewValue();
+
+			IBindingEditpart<?> editPart = (IBindingEditpart<?>) getEditpart(viewContext, yBinding);
+			internalAddBinding(editPart);
+			break;
+		case BindingPackage.YBINDING_SET__TRANSIENT_BINDINGS:
+			yBinding = (YBinding) notification.getNewValue();
+
+			editPart = (IBindingEditpart<?>) getEditpart(viewContext, yBinding);
+			internalAddTransientBinding(editPart);
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of bindings.
+	 * 
+	 * @param binding
+	 *            The editpart to be added
+	 */
+	protected void internalAddBinding(IBindingEditpart<?> binding) {
+		checkDisposed();
+
+		ensureBindingsLoaded();
+		if (!bindings.contains(binding)) {
+			bindings.add(binding);
+
+			// activates the binding
+			binding.bind();
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of transientBindings.
+	 * 
+	 * @param binding
+	 *            The editpart to be added
+	 */
+	protected void internalAddTransientBinding(IBindingEditpart<?> binding) {
+		checkDisposed();
+		ensureBindingsLoaded();
+		if (!transientBindings.contains(binding)) {
+			transientBindings.add(binding);
+
+			// activates the binding
+			binding.bind();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelRemove(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelRemove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case BindingPackage.YBINDING_SET__BINDINGS:
+			YBinding yBinding = (YBinding) notification.getOldValue();
+
+			IBindingEditpart<?> editPart = (IBindingEditpart<?>) getEditpart(viewContext, yBinding);
+			internalRemoveBinding(editPart);
+			break;
+		case BindingPackage.YBINDING_SET__TRANSIENT_BINDINGS:
+			yBinding = (YBinding) notification.getOldValue();
+
+			editPart = (IBindingEditpart<?>) getEditpart(viewContext, yBinding);
+			internalRemoveTransientBinding(editPart);
+			break;
+		default:
+			break;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelRemoveMany(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	protected void handleModelRemoveMany(int featureId,
+			Notification notification) {
+		switch (featureId) {
+		case BindingPackage.YBINDING_SET__BINDINGS:
+			List<YBinding> yBindings = (List<YBinding>) notification
+					.getOldValue();
+			for (YBinding yBinding : yBindings) {
+				IBindingEditpart<?> editPart = (IBindingEditpart<?>) getEditpart(viewContext, yBinding);
+				internalRemoveBinding(editPart);
+			}
+			break;
+		case BindingPackage.YBINDING_SET__TRANSIENT_BINDINGS:
+			yBindings = (List<YBinding>) notification.getOldValue();
+			for (YBinding yBinding : yBindings) {
+				IBindingEditpart<?> editPart = (IBindingEditpart<?>) getEditpart(viewContext, yBinding);
+				internalRemoveTransientBinding(editPart);
+			}
+			break;
+		default:
+			super.handleModelRemoveMany(featureId, notification);
+			break;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelAddMany(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	protected void handleModelAddMany(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case BindingPackage.YBINDING_SET__BINDINGS:
+			List<YBinding> yBindings = (List<YBinding>) notification
+					.getNewValue();
+			for (YBinding yBinding : yBindings) {
+				IBindingEditpart<?> editPart = (IBindingEditpart<?>) getEditpart(viewContext, yBinding);
+				internalAddBinding(editPart);
+			}
+			break;
+		case BindingPackage.YBINDING_SET__TRANSIENT_BINDINGS:
+			yBindings = (List<YBinding>) notification.getNewValue();
+			for (YBinding yBinding : yBindings) {
+				IBindingEditpart<?> editPart = (IBindingEditpart<?>) getEditpart(viewContext, yBinding);
+				internalAddTransientBinding(editPart);
+			}
+			break;
+		default:
+			super.handleModelAddMany(featureId, notification);
+			break;
+		}
+	}
+
+	/**
+	 * Ensures that the internal bindings are loaded properly.
+	 */
+	private void ensureBindingsLoaded() {
+		if (bindings == null) {
+			internalLoadBindings();
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all bindings.
+	 */
+	protected void internalLoadBindings() {
+		checkDisposed();
+
+		if (bindings == null) {
+			bindings = new ArrayList<IBindingEditpart<?>>();
+			for (YBinding yBinding : getModel().getBindings()) {
+				IBindingEditpart<?> editPart = getEditpart(viewContext, yBinding);
+				internalAddBinding(editPart);
+			}
+		}
+	}
+
+	/**
+	 * Ensures that the internal transientBindings are loaded properly.
+	 */
+	private void ensureTransientBindingsLoaded() {
+		if (transientBindings == null) {
+			internalLoadTransientBindings();
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all transientBindings.
+	 */
+	protected void internalLoadTransientBindings() {
+		checkDisposed();
+
+		if (transientBindings == null) {
+			transientBindings = new ArrayList<IBindingEditpart<?>>();
+			for (YBinding yBinding : getModel().getTransientBindings()) {
+				IBindingEditpart<?> editPart = getEditpart(viewContext, yBinding);
+				internalAddTransientBinding(editPart);
+			}
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of bindings.
+	 * 
+	 * @param binding
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveBinding(IBindingEditpart<?> binding) {
+		checkDisposed();
+
+		if (bindings != null && binding != null) {
+			bindings.remove(binding);
+		}
+
+		// unbinds the binding
+		if (binding != null) {
+			binding.unbind();
+			binding.dispose();
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of transientBindings.
+	 * 
+	 * @param binding
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveTransientBinding(IBindingEditpart<?> binding) {
+		checkDisposed();
+
+		if (transientBindings != null && binding != null) {
+			transientBindings.remove(binding);
+		}
+
+		// unbinds the binding
+		if (binding != null) {
+			binding.unbind();
+			binding.dispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#getBindings()
+	 */
+	@Override
+	public List<IBindingEditpart<?>> getBindings() {
+		ensureBindingsLoaded();
+		return new ArrayList<IBindingEditpart<?>>(bindings);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#getTransientBindings()
+	 */
+	@Override
+	public List<IBindingEditpart<?>> getTransientBindings() {
+		ensureTransientBindingsLoaded();
+		return new ArrayList<IBindingEditpart<?>>(transientBindings);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (lock == null) {
+				lock = new Object();
+			}
+			synchronized (lock) {
+				// lazy loading: edit parts also have to be disposed if they
+				// have
+				// not been loaded yet, but exist in the model.
+				if (bindings != null || !getModel().getBindings().isEmpty()) {
+					List<IBindingEditpart<?>> tempElements = getBindings();
+					for (IBindingEditpart<?> binding : tempElements
+							.toArray(new IBindingEditpart<?>[tempElements
+									.size()])) {
+						binding.dispose();
+					}
+				}
+				bindings = null;
+
+				if (transientBindings != null
+						|| !getModel().getTransientBindings().isEmpty()) {
+					List<IBindingEditpart<?>> tempElements = getTransientBindings();
+					for (IBindingEditpart<?> binding : tempElements
+							.toArray(new IBindingEditpart<?>[tempElements
+									.size()])) {
+						binding.dispose();
+					}
+				}
+				transientBindings = null;
+			}
+			lock = null;
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart#findBindings(java.lang.Object)
+	 */
+	@Override
+	public List<IBindingEditpart<?>> findBindings(Object elementModel) {
+		if (!(elementModel instanceof YElement)) {
+			return Collections.emptyList();
+		}
+
+		List<IBindingEditpart<?>> result = new ArrayList<IBindingEditpart<?>>();
+		YBindingSet yBindingSet = getModel();
+		for (YBinding yBinding : yBindingSet.getBindings()) {
+			if (yBinding.isBindsElement((YElement) elementModel)) {
+				result.add((IBindingEditpart<?>) DelegatingEditPartManager
+						.getInstance().getEditpart(viewContext, yBinding));
+			}
+		}
+
+		for (YBinding yBinding : yBindingSet.getTransientBindings()) {
+			if (yBinding.isBindsElement((YElement) elementModel)) {
+				result.add((IBindingEditpart<?>) DelegatingEditPartManager
+						.getInstance().getEditpart(viewContext, yBinding));
+			}
+		}
+
+		return result;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/EnumListBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/EnumListBindingEndpointEditpart.java
new file mode 100644
index 0000000..1f535b7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/EnumListBindingEndpointEditpart.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.binding;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IEnumListBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Responsible to create an observable. The model of this editpart is used to
+ * access the getObservableValue from the underlying widget presentation.
+ */
+public class EnumListBindingEndpointEditpart extends
+		BindableListEndpointEditpart<YEnumListBindingEndpoint> implements
+		IEnumListBindingEndpointEditpart {
+
+	private static final Logger logger = LoggerFactory
+			.getLogger(EnumListBindingEndpointEditpart.class);
+	private RefreshProvider refresh;
+
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		switch (featureId) {
+		case BindingPackage.YENUM_LIST_BINDING_ENDPOINT__ENUM:
+			refresh.refresh();
+			break;
+		default:
+			break;
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableList> A getObservable() {
+		if (!getModel().getEnum().isEnum()) {
+			logger.error(getModel().getEnum() + " is not an enum!");
+			throw new IllegalArgumentException(getModel().getEnum()
+					+ " is not an enum!");
+		}
+
+		Class<Enum<?>> enumClass = (Class<Enum<?>>) getModel().getEnum();
+		WritableList observable = new WritableList();
+		for (Enum<?> xEnum : enumClass.getEnumConstants()) {
+			observable.add(xEnum);
+		}
+
+		return (A) observable;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		this.refresh = refresh;
+	}
+
+	@Override
+	protected void internalDispose() {
+		refresh = null;
+
+		super.internalDispose();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/ListBindingEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/ListBindingEditpart.java
new file mode 100644
index 0000000..38db549
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/ListBindingEditpart.java
@@ -0,0 +1,430 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.binding;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableListEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IListBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.databinding.emf.common.ECViewUpdateListStrategy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementation of {@link IBindingSetEditpart}.
+ */
+public class ListBindingEditpart extends ElementEditpart<YListBinding>
+		implements IListBindingEditpart {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ListBindingEditpart.class);
+
+	/** The target value. */
+	private IBindableListEndpointEditpart targetValue;
+
+	/** The model value. */
+	private IBindableListEndpointEditpart modelValue;
+
+	/** The bound. */
+	private boolean bound;
+
+	/** The binding. */
+	private Binding binding;
+
+	/**
+	 * A default constructor.
+	 */
+	public ListBindingEditpart() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#
+	 * handleModelSet(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		boolean shouldRebind = false;
+		switch (featureId) {
+		case BindingPackage.YLIST_BINDING__TARGET_ENDPOINT:
+			YBindingEndpoint YBindingEndpoint = (YBindingEndpoint) notification
+					.getNewValue();
+
+			IBindableListEndpointEditpart editPart = (IBindableListEndpointEditpart) getEditpart(
+					viewContext, YBindingEndpoint);
+			internalSetTargetValue(editPart);
+
+			shouldRebind = true;
+			break;
+		case BindingPackage.YLIST_BINDING__MODEL_ENDPOINT:
+			YBindingEndpoint = (YBindingEndpoint) notification.getNewValue();
+
+			editPart = (IBindableListEndpointEditpart) getEditpart(viewContext,
+					YBindingEndpoint);
+			internalSetModelValue(editPart);
+
+			shouldRebind = true;
+			break;
+		default:
+			break;
+		}
+
+		if (shouldRebind) {
+			unbind();
+			bind();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #setTargetEndpoint(org.eclipse.osbp.ecview.core.common.editpart.binding.
+	 * IBindableEndpointEditpart)
+	 */
+	public void setTargetEndpoint(IBindableListEndpointEditpart target) {
+		try {
+			checkDisposed();
+
+			// set the element by using the model
+			//
+			YListBinding yBinding = getModel();
+			YListBindingEndpoint yElement = target != null ? (YListBindingEndpoint) target
+					.getModel() : null;
+			yBinding.setTargetEndpoint(yElement);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #getTargetEndpoint()
+	 */
+	public IBindableListEndpointEditpart getTargetEndpoint() {
+		checkDisposed();
+
+		if (targetValue == null) {
+			loadTargetValue();
+		}
+		return targetValue;
+	}
+
+	/**
+	 * Loads the content of the view.
+	 */
+	protected void loadTargetValue() {
+		if (targetValue == null) {
+			YBindingEndpoint yValue = getModel().getTargetEndpoint();
+			internalSetTargetValue((IBindableListEndpointEditpart) getEditpart(
+					viewContext, yValue));
+		}
+	}
+
+	/**
+	 * May be invoked by a model change and the content of the edit part should
+	 * be set.
+	 * 
+	 * @param targetValue
+	 *            The content to be set
+	 */
+	protected void internalSetTargetValue(
+			IBindableListEndpointEditpart targetValue) {
+		this.targetValue = targetValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #setModelEndpoint(org.eclipse.osbp.ecview.core.common.editpart.binding.
+	 * IBindableEndpointEditpart)
+	 */
+	public void setModelEndpoint(IBindableListEndpointEditpart model) {
+		try {
+			checkDisposed();
+
+			// set the element by using the model
+			//
+			YListBinding yBinding = getModel();
+			YListBindingEndpoint yElement = model != null ? (YListBindingEndpoint) model
+					.getModel() : null;
+			yBinding.setModelEndpoint(yElement);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #getModelEndpoint()
+	 */
+	public IBindableListEndpointEditpart getModelEndpoint() {
+		checkDisposed();
+
+		if (modelValue == null) {
+			loadModelValue();
+		}
+		return modelValue;
+	}
+
+	/**
+	 * Loads the content of the view.
+	 */
+	protected void loadModelValue() {
+		if (modelValue == null) {
+			YBindingEndpoint yValue = getModel().getModelEndpoint();
+			internalSetModelValue((IBindableListEndpointEditpart) getEditpart(
+					viewContext, yValue));
+		}
+	}
+
+	/**
+	 * May be invoked by a model change and the content of the edit part should
+	 * be set.
+	 * 
+	 * @param modelValue
+	 *            The content to be set
+	 */
+	protected void internalSetModelValue(
+			IBindableListEndpointEditpart modelValue) {
+		this.modelValue = modelValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #isBound()
+	 */
+	@Override
+	public boolean isBound() {
+		checkDisposed();
+
+		return bound;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #bind()
+	 */
+	@Override
+	public void bind() {
+		checkDisposed();
+
+		if (bound) {
+			return;
+		}
+
+		IECViewBindingManager bindingManager = null;
+		if (getBindindSet() != null) {
+			bindingManager = getBindindSet().getBindingManager();
+		} else {
+			bindingManager = getViewContext(getModel()).getService(
+					IECViewBindingManager.class.getName());
+		}
+		if (bindingManager != null) {
+			if (getTargetEndpoint() == null || getModelEndpoint() == null) {
+				LOGGER.warn("Endpoints are null");
+				return;
+			}
+			IObservableList target = getTargetEndpoint().getObservable();
+			IObservableList model = getModelEndpoint().getObservable();
+			if (target == null) {
+				LOGGER.error("TargetValue must never be null! {}",
+						getTargetEndpoint());
+				return;
+			}
+
+			if (model == null) {
+				LOGGER.error("ModelValue must never be null! {}",
+						getModelEndpoint());
+				return;
+			}
+
+			ECViewUpdateListStrategy modelToTargetStrategy = getValueUpdateStrategy(getModel()
+					.getModelToTargetStrategy());
+			ECViewUpdateListStrategy targetToModelStrategy = getValueUpdateStrategy(getModel()
+					.getTargetToModelStrategy());
+			binding = bindingManager.bindList(target, model,
+					targetToModelStrategy, modelToTargetStrategy);
+			binding.updateTargetToModel();
+
+			// getTargetEndpoint().setRefreshProvider(
+			// new IBindableEndpointEditpart.RefreshProvider() {
+			// @Override
+			// public void refresh() {
+			// binding.updateTargetToModel();
+			// }
+			// });
+			//
+			// getModelEndpoint().setRefreshProvider(
+			// new IBindableEndpointEditpart.RefreshProvider() {
+			// @Override
+			// public void refresh() {
+			// binding.updateModelToTarget();
+			// }
+			// });
+
+			// set bound to true if everything went fine
+			bound = true;
+		} else {
+			LOGGER.error("BindingManager is null!. No bindings processed!");
+		}
+	}
+
+	/**
+	 * Gets the value update strategy.
+	 *
+	 * @param strategy
+	 *            the strategy
+	 * @return the value update strategy
+	 */
+	private ECViewUpdateListStrategy getValueUpdateStrategy(
+			YBindingUpdateStrategy strategy) {
+		ECViewUpdateListStrategy result = null;
+		switch (strategy) {
+		case UPDATE:
+			result = new ECViewUpdateListStrategy(
+					ECViewUpdateListStrategy.POLICY_UPDATE);
+			break;
+		case NEVER:
+			result = new ECViewUpdateListStrategy(
+					ECViewUpdateListStrategy.POLICY_NEVER);
+			break;
+		case ON_REQUEST:
+			result = new ECViewUpdateListStrategy(
+					ECViewUpdateListStrategy.POLICY_ON_REQUEST);
+			break;
+		default:
+			result = new ECViewUpdateListStrategy(
+					ECViewUpdateListStrategy.POLICY_UPDATE);
+		}
+		return result;
+	}
+
+	/**
+	 * Returns the binding set this binding belongs to.
+	 *
+	 * @return the bindind set
+	 */
+	protected IBindingSetEditpart getBindindSet() {
+		if (getModel().getBindingSet() == null) {
+			return null;
+		}
+		return DelegatingEditPartManager.getInstance().findEditpart(
+				getModel().getBindingSet());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #unbind()
+	 */
+	@Override
+	public void unbind() {
+		checkDisposed();
+
+		if (!bound) {
+			return;
+		}
+
+		try {
+			if (binding != null) {
+				binding.dispose();
+				binding = null;
+			}
+			if (modelValue != null) {
+				modelValue.dispose();
+				modelValue = null;
+			}
+			if (targetValue != null) {
+				targetValue.dispose();
+				targetValue = null;
+			}
+		} finally {
+			bound = false;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#
+	 * internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (binding != null) {
+				binding.dispose();
+				binding = null;
+			}
+			if (modelValue != null) {
+				modelValue.dispose();
+				modelValue = null;
+			}
+			if (targetValue != null) {
+				targetValue.dispose();
+				targetValue = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #getBinding()
+	 */
+	@Override
+	public Binding getBinding() {
+		return binding;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/ValueBindingEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/ValueBindingEditpart.java
new file mode 100644
index 0000000..71a7c36
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/ValueBindingEditpart.java
@@ -0,0 +1,412 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.binding;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IValueBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.databinding.emf.common.ECViewUpdateValueStrategy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementation of {@link IBindingSetEditpart}.
+ */
+public class ValueBindingEditpart extends ElementEditpart<YValueBinding>
+		implements IValueBindingEditpart {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ValueBindingEditpart.class);
+
+	/** The target value. */
+	private IBindableValueEndpointEditpart targetValue;
+
+	/** The model value. */
+	private IBindableValueEndpointEditpart modelValue;
+
+	/** The bound. */
+	private boolean bound;
+
+	/** The binding. */
+	private Binding binding;
+
+	/**
+	 * A default constructor.
+	 */
+	public ValueBindingEditpart() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#
+	 * handleModelSet(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		boolean shouldRebind = false;
+		switch (featureId) {
+		case BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT:
+			YBindingEndpoint YBindingEndpoint = (YBindingEndpoint) notification
+					.getNewValue();
+
+			IBindableValueEndpointEditpart editPart = (IBindableValueEndpointEditpart) getEditpart(
+					viewContext, YBindingEndpoint);
+			internalSetTargetValue(editPart);
+
+			shouldRebind = true;
+			break;
+		case BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT:
+			YBindingEndpoint = (YBindingEndpoint) notification.getNewValue();
+
+			editPart = (IBindableValueEndpointEditpart) getEditpart(
+					viewContext, YBindingEndpoint);
+			internalSetModelValue(editPart);
+
+			shouldRebind = true;
+			break;
+		default:
+			break;
+		}
+
+		if (shouldRebind) {
+			unbind();
+			bind();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #setTargetEndpoint(org.eclipse.osbp.ecview.core.common.editpart.binding.
+	 * IBindableEndpointEditpart)
+	 */
+	public void setTargetEndpoint(IBindableValueEndpointEditpart target) {
+		try {
+			checkDisposed();
+
+			// set the element by using the model
+			//
+			YValueBinding yBinding = getModel();
+			YValueBindingEndpoint yElement = target != null ? (YValueBindingEndpoint) target
+					.getModel() : null;
+			yBinding.setTargetEndpoint(yElement);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #getTargetEndpoint()
+	 */
+	public IBindableValueEndpointEditpart getTargetEndpoint() {
+		checkDisposed();
+
+		if (targetValue == null) {
+			loadTargetValue();
+		}
+		return targetValue;
+	}
+
+	/**
+	 * Loads the content of the view.
+	 */
+	protected void loadTargetValue() {
+		if (targetValue == null) {
+			YBindingEndpoint yValue = getModel().getTargetEndpoint();
+			internalSetTargetValue((IBindableValueEndpointEditpart) getEditpart(
+					viewContext, yValue));
+		}
+	}
+
+	/**
+	 * May be invoked by a model change and the content of the edit part should
+	 * be set.
+	 * 
+	 * @param targetValue
+	 *            The content to be set
+	 */
+	protected void internalSetTargetValue(
+			IBindableValueEndpointEditpart targetValue) {
+		this.targetValue = targetValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #setModelEndpoint(org.eclipse.osbp.ecview.core.common.editpart.binding.
+	 * IBindableEndpointEditpart)
+	 */
+	public void setModelEndpoint(IBindableValueEndpointEditpart model) {
+		try {
+			checkDisposed();
+
+			// set the element by using the model
+			//
+			YValueBinding yBinding = getModel();
+			YValueBindingEndpoint yElement = model != null ? (YValueBindingEndpoint) model
+					.getModel() : null;
+			yBinding.setModelEndpoint(yElement);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #getModelEndpoint()
+	 */
+	public IBindableValueEndpointEditpart getModelEndpoint() {
+		checkDisposed();
+
+		if (modelValue == null) {
+			loadModelValue();
+		}
+		return modelValue;
+	}
+
+	/**
+	 * Loads the content of the view.
+	 */
+	protected void loadModelValue() {
+		if (modelValue == null) {
+			YBindingEndpoint yValue = getModel().getModelEndpoint();
+			internalSetModelValue((IBindableValueEndpointEditpart) getEditpart(
+					viewContext, yValue));
+		}
+	}
+
+	/**
+	 * May be invoked by a model change and the content of the edit part should
+	 * be set.
+	 * 
+	 * @param modelValue
+	 *            The content to be set
+	 */
+	protected void internalSetModelValue(
+			IBindableValueEndpointEditpart modelValue) {
+		this.modelValue = modelValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #isBound()
+	 */
+	@Override
+	public boolean isBound() {
+		return bound;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #bind()
+	 */
+	@Override
+	public void bind() {
+		checkDisposed();
+
+		if (bound) {
+			return;
+		}
+
+		IECViewBindingManager bindingManager = null;
+		if (getBindindSet() != null) {
+			bindingManager = getBindindSet().getBindingManager();
+		} else {
+			bindingManager = getViewContext(getModel()).getService(
+					IECViewBindingManager.class.getName());
+		}
+		if (bindingManager != null) {
+			if (getTargetEndpoint() == null || getModelEndpoint() == null) {
+				LOGGER.warn("Endpoints are null");
+				return;
+			}
+			IObservableValue target = getTargetEndpoint().getObservable();
+			IObservableValue model = getModelEndpoint().getObservable();
+			if (target == null) {
+				LOGGER.error("TargetValue must never be null! {}",
+						getTargetEndpoint());
+				return;
+			}
+
+			if (model == null) {
+				LOGGER.error("ModelValue must never be null! {}",
+						getModelEndpoint());
+				return;
+			}
+
+			ECViewUpdateValueStrategy modelToTargetStrategy = getValueUpdateStrategy(getModel()
+					.getModelToTargetStrategy());
+			ECViewUpdateValueStrategy targetToModelStrategy = getValueUpdateStrategy(getModel()
+					.getTargetToModelStrategy());
+			binding = bindingManager.bindValue(target, model,
+					targetToModelStrategy, modelToTargetStrategy);
+			binding.updateTargetToModel();
+			
+			// set bound to true if everything went fine
+			bound = true;
+		} else {
+			LOGGER.error("BindingManager is null!. No bindings processed!");
+		}
+	}
+
+	/**
+	 * Gets the value update strategy.
+	 *
+	 * @param strategy
+	 *            the strategy
+	 * @return the value update strategy
+	 */
+	private ECViewUpdateValueStrategy getValueUpdateStrategy(
+			YBindingUpdateStrategy strategy) {
+		ECViewUpdateValueStrategy result = null;
+		switch (strategy) {
+		case UPDATE:
+			result = new ECViewUpdateValueStrategy(
+					ECViewUpdateValueStrategy.POLICY_UPDATE);
+			break;
+		case NEVER:
+			result = new ECViewUpdateValueStrategy(
+					ECViewUpdateValueStrategy.POLICY_NEVER);
+			break;
+		case ON_REQUEST:
+			result = new ECViewUpdateValueStrategy(
+					ECViewUpdateValueStrategy.POLICY_ON_REQUEST);
+			break;
+		default:
+			result = new ECViewUpdateValueStrategy(
+					ECViewUpdateValueStrategy.POLICY_UPDATE);
+		}
+		return result;
+	}
+
+	/**
+	 * Returns the binding set this binding belongs to.
+	 *
+	 * @return the bindind set
+	 */
+	protected IBindingSetEditpart getBindindSet() {
+		if (getModel().getBindingSet() == null) {
+			return null;
+		}
+		return DelegatingEditPartManager.getInstance().findEditpart(
+				getModel().getBindingSet());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #unbind()
+	 */
+	@Override
+	public void unbind() {
+		checkDisposed();
+
+		if (!bound) {
+			return;
+		}
+
+		try {
+			if (binding != null) {
+				binding.dispose();
+				binding = null;
+			}
+			if (modelValue != null) {
+				modelValue.dispose();
+				modelValue = null;
+			}
+			if (targetValue != null) {
+				targetValue.dispose();
+				targetValue = null;
+			}
+		} finally {
+			bound = false;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#
+	 * internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (binding != null) {
+				binding.dispose();
+				binding = null;
+			}
+			if (modelValue != null) {
+				modelValue.dispose();
+				modelValue = null;
+			}
+			if (targetValue != null) {
+				targetValue.dispose();
+				targetValue = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart
+	 * #getBinding()
+	 */
+	@Override
+	public Binding getBinding() {
+		return binding;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/VisibilityProcessorValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/VisibilityProcessorValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..0dbc957
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/binding/VisibilityProcessorValueBindingEndpointEditpart.java
@@ -0,0 +1,94 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.binding;
+
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.PojoObservables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IVisibilityProcessorValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityProcessor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Responsible to create an observable. The model of this editpart is used to
+ * access the getObservableValue from the underlying widget presentation.
+ */
+public class VisibilityProcessorValueBindingEndpointEditpart extends
+		BindableValueEndpointEditpart<YVisibilityProcessorValueBindingEndpoint>
+		implements IVisibilityProcessorValueBindingEndpointEditpart {
+
+	private static final Logger logger = LoggerFactory
+			.getLogger(VisibilityProcessorValueBindingEndpointEditpart.class);
+	private RefreshProvider refresh;
+	private IVisibilityProcessor processor;
+
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		switch (featureId) {
+		case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__BEAN:
+			refresh.refresh();
+			break;
+		default:
+			break;
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IObservableValue> A getObservable() {
+
+		if (processor == null) {
+			logger.error("No instance of processor was set!");
+		}
+
+		String property = getModel().getProperty();
+		if (property == null || property.equals("")) {
+			logger.warn("Property {} not valid!", processor, property);
+			return null;
+		}
+
+		IObservableValue observable = null;
+		try {
+			processor.getClass().getMethod("addPropertyChangeListener",
+					java.beans.PropertyChangeListener.class);
+			observable = BeansObservables.observeValue(processor, property);
+		} catch (NoSuchMethodException e) {
+		} catch (SecurityException e) {
+		}
+		if (observable == null) {
+			observable = PojoObservables.observeValue(processor, property);
+		}
+
+		return (A) observable;
+	}
+
+	@Override
+	public void setVisibilityProcessor(IVisibilityProcessor processor) {
+		this.processor = processor;
+	}
+
+	@Override
+	public void setRefreshProvider(RefreshProvider refresh) {
+		this.refresh = refresh;
+	}
+
+	@Override
+	protected void internalDispose() {
+		refresh = null;
+
+		super.internalDispose();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/common/AbstractEditpartManager.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/common/AbstractEditpartManager.java
new file mode 100644
index 0000000..2737fd4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/common/AbstractEditpartManager.java
@@ -0,0 +1,171 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.common;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpartProvider;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Abstract base implementation of {@link IEditPartManager}.
+ */
+public abstract class AbstractEditpartManager implements IEditPartManager {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(AbstractEditpartManager.class);
+
+	/**
+	 * Returns the edit part for the given model yElement.
+	 * 
+	 * @param <A>
+	 *            an instance of IUiElementEditpart
+	 * @param yElement
+	 *            the model element
+	 * @return editpart
+	 */
+	@SuppressWarnings("unchecked")
+	public static <A extends IElementEditpart> A findEditPartFor(
+			YElement yElement) {
+		if (yElement == null) {
+			return null;
+		}
+
+		IElementEditpartProvider editPartProvider = null;
+		for (Adapter adapter : ((EObject) yElement).eAdapters()) {
+			if (adapter instanceof IElementEditpartProvider) {
+				editPartProvider = (IElementEditpartProvider) adapter;
+				// only break, if the editpart is for the given model element
+				if (yElement == editPartProvider.getEditpart().getModel()) {
+					break;
+				}
+			}
+		}
+
+		return editPartProvider != null ? (A) editPartProvider.getEditpart()
+				: null;
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IElementEditpart> A getEditpart(IViewContext context,
+			Object yElement) {
+		IElementEditpart editPart = findEditpart(yElement);
+		return (A) (editPart != null ? editPart : createEditpart(context,
+				yElement));
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @param yElement
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IElementEditpart> A findEditpart(Object yElement) {
+		return (A) findEditPartFor((YElement) yElement);
+	}
+
+	/**
+	 * Creates a new instance of the edit part.
+	 * 
+	 * @param <A>
+	 *            an instance of IUiElementEditpart
+	 * @param context
+	 *            the context
+	 * @param yElement
+	 *            the model element
+	 * @return editpart
+	 */
+	protected abstract <A extends IElementEditpart> A createEditpart(
+			IViewContext context, Object yElement);
+
+	/**
+	 * Creates a new instance of the required edit part.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IElementEditpart}
+	 * @param type
+	 *            the type of the editpart to be returned
+	 * @return editpart
+	 */
+	@SuppressWarnings("unchecked")
+	protected <A extends IElementEditpart> A createNewInstance(
+			Class<? extends IElementEditpart> type) {
+		A result = null;
+		ElementEditpart<YElement> editPart = null;
+		try {
+			editPart = (ElementEditpart<YElement>) newInstance(type);
+		} catch (InstantiationException e) {
+			LOGGER.error("{}", e);
+			throw new RuntimeException(e);
+		} catch (IllegalAccessException e) {
+			LOGGER.error("{}", e);
+			throw new RuntimeException(e);
+		}
+		result = (A) editPart;
+		return result;
+	}
+
+	/**
+	 * Returns a new instance of the type.
+	 * 
+	 * @param type
+	 *            the type of the editpart to be created
+	 * @return editpart
+	 * 
+	 * @throws InstantiationException
+	 *             exception
+	 * @throws IllegalAccessException
+	 *             exception
+	 */
+	protected abstract IElementEditpart newInstance(
+			Class<? extends IElementEditpart> type)
+			throws InstantiationException, IllegalAccessException;
+
+	/**
+	 * Casts element to eObject.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the e object
+	 */
+	protected EObject castEObject(Object element) {
+		return (EObject) element;
+	}
+
+	/**
+	 * Asserts that only one IUiElementEditpartProvider exists for the given
+	 * element.
+	 * 
+	 * @param element
+	 *            the model element
+	 */
+	protected void assertOneEditpartForModelelement(Object element) {
+		YElement yElement = (YElement) element;
+		for (Adapter adapter : castEObject(yElement).eAdapters()) {
+			if (adapter instanceof IElementEditpartProvider) {
+				LOGGER.error("For a modelelement instance only one editpart can be created!");
+				throw new RuntimeException(
+						"For a modelelement instance only one editpart can be created!");
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/common/IResourceManager.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/common/IResourceManager.java
new file mode 100644
index 0000000..cc21e0e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/common/IResourceManager.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.common;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Handles the resources of the ui models.
+ */
+public interface IResourceManager {
+
+	/**
+	 * The file extension used for the orphan views resource.
+	 */
+	String ORPHAN_VIEWS_EXTENSION = "orphan";
+
+	/**
+	 * Is used to register orphan views.
+	 */
+	String ORPHAN_VIEW_RESOURCE_URI_STRING = "http://eclipse.org/emf/emfclient/uimodel.orphan";
+	
+	/**
+	 * The URI to access the resource for orphan views from the resource set.
+	 */
+	URI ORPHAN_VIEW_RESOURCE_URI = URI.createURI(ORPHAN_VIEW_RESOURCE_URI_STRING);
+
+	/**
+	 * Returns the resource for the given uri.
+	 * 
+	 * @param uri the uri to be used to access the resource
+	 * @return resource
+	 */
+	Resource getResource(String uri);
+
+	/**
+	 * Returns the resource for the given uri.
+	 * 
+	 * @param uri the uri to be used to access the resource
+	 * @return resource
+	 */
+	Resource getResource(URI uri);
+
+	/**
+	 * Returns the resource set.
+	 * 
+	 * @return resourceSet
+	 */
+	ResourceSet getResourceSet();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/common/ResourceManager.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/common/ResourceManager.java
new file mode 100644
index 0000000..fbadfdf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/common/ResourceManager.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.common;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.internal.OrphanViewsResource;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * The implementation of {@link IResourceManager}.
+ */
+public class ResourceManager implements IResourceManager {
+
+	private static IResourceManager instance = new ResourceManager();
+
+	private ResourceSet resourceSet;
+
+	/**
+	 * Returns the instance of that manager.
+	 * 
+	 * @return the instance
+	 */
+	public static IResourceManager getInstance() {
+		return instance;
+	}
+
+	@Override
+	public Resource getResource(String uri) {
+		return getResource(URI.createURI(uri));
+	}
+
+	@Override
+	public Resource getResource(URI uri) {
+		return getResourceSet().getResource(uri, true);
+	}
+
+	@Override
+	public ResourceSet getResourceSet() {
+		if (resourceSet == null) {
+			resourceSet = new ResourceSetImpl();
+			resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
+				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
+			resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
+				.put(ORPHAN_VIEWS_EXTENSION, new OrphanViewsResource.OrphanViewsResourceFactory());
+			resourceSet.getPackageRegistry().put(CoreModelPackage.eNS_URI, CoreModelPackage.eINSTANCE);
+		}
+		return resourceSet;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/datatypes/DatatypeEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/datatypes/DatatypeEditpart.java
new file mode 100644
index 0000000..aa72d5e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/datatypes/DatatypeEditpart.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The datatype editpart is responsible to observe the {@link YDatatype} model
+ * element and to update all UI elements that are registered at this instance.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public abstract class DatatypeEditpart<M extends YDatatype> extends
+		ElementEditpart<M> implements IDatatypeEditpart, IValidationConfig {
+
+	/** The Constant logger. */
+	private static final Logger logger = LoggerFactory
+			.getLogger(DatatypeEditpart.class);
+
+	/** The bridges. */
+	private Set<DatatypeBridge> bridges = Collections
+			.synchronizedSet(new HashSet<DatatypeBridge>());
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart#getCurrentState()
+	 */
+	@Override
+	public DatatypeChangeEvent getCurrentState() {
+		ValidatorDelta delta = internalGetAllValidators();
+		DatatypeChangeEvent event = new DatatypeChangeEvent(this, null,
+				delta.getToAdd(), null);
+		return event;
+	}
+
+	/**
+	 * Returns a validator delta that should be applied to the internal
+	 * validators of the containing UI element.
+	 *
+	 * @param bridge
+	 *            The currently handled bridge. If <code>null</code> is passed,
+	 *            then all validators have to be returned.
+	 * @param notification
+	 *            Based on the notification the subclasses have to calculate the
+	 *            validators to add. If <code>null</code> is passed, then all
+	 *            validators have to be returned.
+	 * @return the validator delta
+	 */
+	protected ValidatorDelta internalGetValidatorsDelta(DatatypeBridge bridge,
+			Notification notification) {
+		return ValidatorByConfigFactory.internalGetValidatorsDelta(this,
+				bridge, notification);
+	}
+
+	/**
+	 * Collects all validators.
+	 *
+	 * @return the validator delta
+	 */
+	protected ValidatorDelta internalGetAllValidators() {
+		return ValidatorByConfigFactory.getAllValidators(this);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart#addBridge(org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeBridge)
+	 */
+	@Override
+	public void addBridge(DatatypeBridge bridge) {
+		bridges.add(bridge);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart#removeBridge(org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeBridge)
+	 */
+	@Override
+	public void removeBridge(DatatypeBridge bridge) {
+		if (bridges == null) {
+			return;
+		}
+		bridges.remove(bridge);
+	}
+
+	/**
+	 * Returns the validator editparts for the given bridge.
+	 *
+	 * @param bridge
+	 *            the bridge
+	 * @return the validators for bridge
+	 */
+	protected List<IValidatorEditpart> getValidatorsForBridge(
+			DatatypeBridge bridge) {
+		List<IValidatorEditpart> result = bridge.getDatatypeValidators();
+		return result != null ? result : Collections
+				.<IValidatorEditpart> emptyList();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#notifyChanged(org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		super.notifyChanged(notification);
+
+		if (notification.getEventType() != Notification.REMOVING_ADAPTER) {
+			// forward the notification to the listeners elements
+			for (DatatypeBridge bridge : bridges
+					.toArray(new DatatypeBridge[bridges.size()])) {
+
+				ValidatorDelta delta = internalGetValidatorsDelta(bridge,
+						notification);
+				DatatypeChangeEvent event = new DatatypeChangeEvent(this,
+						notification, delta.getToAdd(), delta.getToRemove());
+				bridge.notifyDatatypeChanged(event);
+			}
+		}
+	}
+
+	/**
+	 * Default implementation for all subclasses that implement
+	 * {@link IValidationConfig}.
+	 *
+	 * @return the validation settings
+	 */
+	public Object getValidationSettings() {
+		return getModel();
+	}
+
+	/**
+	 * Returns an unmodifiable collection of bridges.
+	 *
+	 * @return the bridges
+	 */
+	protected Set<DatatypeBridge> getBridges() {
+		checkDisposed();
+
+		return Collections.unmodifiableSet(bridges);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+
+			if (bridges.size() > 0) {
+				logger.error("Attention: The DatatypeEditpart is disposed! "
+						+ "All connections from consuming elements like UI fields are interrupted. "
+						+ "And they can not be installed anymore without resetting the datatype feature again.");
+			}
+
+			// remove all validators and all settings from the observing
+			// listeners
+			for (DatatypeBridge bridge : bridges
+					.toArray(new DatatypeBridge[bridges.size()])) {
+				DatatypeChangeEvent event = new DatatypeChangeEvent(true, this, null,
+						null, new ArrayList<>(bridge.getDatatypeValidators()));
+				bridge.notifyDatatypeChanged(event);
+			}
+
+			bridges = null;
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/**
+	 * A container for validators to be added and removed.
+	 */
+	public static class ValidatorDelta {
+
+		/** The to add. */
+		private final List<IValidatorEditpart> toAdd;
+		
+		/** The to remove. */
+		private final List<IValidatorEditpart> toRemove;
+
+		/**
+		 * Instantiates a new validator delta.
+		 *
+		 * @param toAdd
+		 *            the to add
+		 * @param toRemove
+		 *            the to remove
+		 */
+		public ValidatorDelta(List<IValidatorEditpart> toAdd,
+				List<IValidatorEditpart> toRemove) {
+			super();
+			this.toAdd = toAdd;
+			this.toRemove = toRemove;
+		}
+
+		/**
+		 * Gets the to add.
+		 *
+		 * @return the to add
+		 */
+		public List<IValidatorEditpart> getToAdd() {
+			return toAdd;
+		}
+
+		/**
+		 * Gets the to remove.
+		 *
+		 * @return the to remove
+		 */
+		public List<IValidatorEditpart> getToRemove() {
+			return toRemove;
+		}
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/datatypes/ValidatorByConfigFactory.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/datatypes/ValidatorByConfigFactory.java
new file mode 100644
index 0000000..91b5cf1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/datatypes/ValidatorByConfigFactory.java
@@ -0,0 +1,309 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeBridge;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.RegexpValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IBeanValidationValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IMaxLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IMinLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IRegexpValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A temporary factory. It should be replaced by OSGi services later.
+ */
+public class ValidatorByConfigFactory {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ValidatorByConfigFactory.class);
+
+	/**
+	 * Creates a new minLengthValidator.
+	 *
+	 * @param config
+	 *            the config
+	 * @return the i min length validator editpart
+	 */
+	public static IMinLengthValidatorEditpart createMinLengthValidator(
+			IValidationConfig config) {
+		YMinLengthValidationConfig yValidationConfig = (YMinLengthValidationConfig) config
+				.getValidationSettings();
+		IMinLengthValidatorEditpart editpart = null;
+		int minlength = yValidationConfig.getMinLength();
+		if (minlength > 0) {
+			YMinLengthValidator yValidator = ValidationFactory.eINSTANCE
+					.createYMinLengthValidator();
+			yValidator.setMinLength(minlength);
+			editpart = ElementEditpart.getEditpart(config.getContext(), yValidator);
+			editpart.setConfig(config);
+		}
+		return editpart;
+	}
+
+	/**
+	 * Creates a new maxLengthValidator.
+	 *
+	 * @param config
+	 *            the config
+	 * @return the i max length validator editpart
+	 */
+	public static IMaxLengthValidatorEditpart createMaxLengthValidator(
+			IValidationConfig config) {
+		YMaxLengthValidationConfig yValidationConfig = (YMaxLengthValidationConfig) config
+				.getValidationSettings();
+		IMaxLengthValidatorEditpart editpart = null;
+		int maxlength = yValidationConfig.getMaxLength();
+		if (maxlength > 0) {
+			YMaxLengthValidator yValidator = ValidationFactory.eINSTANCE
+					.createYMaxLengthValidator();
+			yValidator.setMaxLength(maxlength);
+			editpart = getEditpart(config.getContext(), yValidator);
+			editpart.setConfig(config);
+		}
+		return editpart;
+	}
+
+	/**
+	 * Creates a new regExpressionValidator.
+	 *
+	 * @param config
+	 *            the config
+	 * @return the i regexp validator editpart
+	 */
+	public static IRegexpValidatorEditpart createRegExpressionValidator(
+			IValidationConfig config) {
+		YRegexpValidationConfig yValidationConfig = (YRegexpValidationConfig) config
+				.getValidationSettings();
+		IRegexpValidatorEditpart editpart = null;
+		String regexp = yValidationConfig.getRegExpression();
+		if (RegexpValidatorEditpart.isValidRegExpression(regexp)) {
+			YRegexpValidator yValidator = ValidationFactory.eINSTANCE
+					.createYRegexpValidator();
+			yValidator.setRegExpression(regexp);
+			editpart = getEditpart(config.getContext(), yValidator);
+			editpart.setConfig(config);
+		}
+		return editpart;
+	}
+
+	/**
+	 * Creates a new beanValidationValidator.
+	 *
+	 * @param config
+	 *            the config
+	 * @return the i bean validation validator editpart
+	 */
+	public static IBeanValidationValidatorEditpart createBeanValidationValidator(
+			IValidationConfig config) {
+		YBeanValidationValidatorConfig yValidationConfig = (YBeanValidationValidatorConfig) config
+				.getValidationSettings();
+		IBeanValidationValidatorEditpart editpart = null;
+		Class<?> bvalClass = yValidationConfig.getBvalClass();
+		String bvalClassName = yValidationConfig
+				.getBvalClassFullyQualifiedName();
+		if (bvalClass != null || bvalClassName != null) {
+			YBeanValidationValidator yValidator = ValidationFactory.eINSTANCE
+					.createYBeanValidationValidator();
+			yValidator.setBvalClass(bvalClass);
+			yValidator.setBvalClassFullyQualifiedName(bvalClassName);
+			yValidator.setBvalProperty(yValidationConfig.getBvalProperty());
+			editpart = getEditpart(config.getContext(), yValidator);
+			editpart.setConfig(config);
+		}
+		return editpart;
+	}
+
+	/**
+	 * See {@link ElementEditpart#getEditpart(viewContext, YElement)}.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param yValidator
+	 *            the y validator
+	 * @return the editpart
+	 */
+	private static <A extends IValidatorEditpart> A getEditpart(IViewContext context,
+			YElement yValidator) {
+		return ElementEditpart.getEditpart(context, yValidator);
+	}
+
+	/**
+	 * Internal get validators delta.
+	 *
+	 * @param config
+	 *            the config
+	 * @param bridge
+	 *            the bridge
+	 * @param notification
+	 *            the notification
+	 * @return the datatype editpart. validator delta
+	 */
+	public static DatatypeEditpart.ValidatorDelta internalGetValidatorsDelta(
+			IValidationConfig config, DatatypeBridge bridge,
+			Notification notification) {
+
+		List<IValidatorEditpart> toAdd = new ArrayList<IValidatorEditpart>();
+		List<IValidatorEditpart> toRemove = new ArrayList<IValidatorEditpart>();
+
+		List<IValidatorEditpart> activeValidators = bridge
+				.getDatatypeValidators();
+		if (notification.getFeature() == ValidationPackage.Literals.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH) {
+			int oldValue = notification.getOldIntValue();
+			int newValue = notification.getNewIntValue();
+
+			if (oldValue <= 0 && newValue > 0) {
+				toAdd.add(createMaxLengthValidator(config));
+			} else if (oldValue > 0 && newValue <= 0) {
+				toRemove.addAll(findToRemoveValidators(activeValidators,
+						YMaxLengthValidator.class));
+			} else {
+				// nothing to do -> Other changes of attributes are handled by
+				// the ValidationConfigToValidatorBridge
+			}
+		} else if (notification.getFeature() == ValidationPackage.Literals.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH) {
+			int oldValue = notification.getOldIntValue();
+			int newValue = notification.getNewIntValue();
+
+			if (oldValue <= 0 && newValue > 0) {
+				toAdd.add(createMinLengthValidator(config));
+			} else if (oldValue > 0 && newValue <= 0) {
+				toRemove.addAll(findToRemoveValidators(activeValidators,
+						YMinLengthValidator.class));
+			} else {
+				// nothing to do -> Other changes of attributes are handled by
+				// the ValidationConfigToValidatorBridge
+			}
+		} else if (notification.getFeature() == ValidationPackage.Literals.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION) {
+			String oldValue = notification.getOldStringValue();
+			String newValue = notification.getNewStringValue();
+
+			if (!RegexpValidatorEditpart.isValidRegExpression(oldValue)
+					&& RegexpValidatorEditpart.isValidRegExpression(newValue)) {
+				toAdd.add(createRegExpressionValidator(config));
+			} else if (RegexpValidatorEditpart.isValidRegExpression(oldValue)
+					&& !RegexpValidatorEditpart.isValidRegExpression(newValue)) {
+				toRemove.addAll(findToRemoveValidators(activeValidators,
+						YRegexpValidator.class));
+			} else {
+				// nothing to do -> Other changes of attributes are handled by
+				// the ValidationConfigToValidatorBridge
+			}
+		} else if (notification.getFeature() == ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS
+				|| notification.getFeature() == ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME
+				|| notification.getFeature() == ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY) {
+			LOGGER.error("Implement adding and removing BeanValidationValidators!");
+		}
+
+		return new DatatypeEditpart.ValidatorDelta(toAdd, toRemove);
+	}
+
+	/**
+	 * Tries to find all validators of the given type. Each validator of the
+	 * same type will then be removed.
+	 * <p>
+	 * Note: If we need detailed control of the validators to remove (for
+	 * instance only validators that have been created by this instance of
+	 * datatype editpart), then we have to add a "marker adapter" to the
+	 * prepared {@link YValidator}. This marker adapter will keep a reference to
+	 * this datatype editpart, and then we can separate validators that have
+	 * been added by different editparts. For now, there is no need for it.
+	 *
+	 * @param activeValidators
+	 *            the active validators
+	 * @param clazz
+	 *            the clazz
+	 * @return the list
+	 */
+	protected static List<IValidatorEditpart> findToRemoveValidators(
+			List<IValidatorEditpart> activeValidators,
+			Class<? extends YValidator> clazz) {
+		List<IValidatorEditpart> toRemove = new ArrayList<IValidatorEditpart>();
+		for (IValidatorEditpart editpart : activeValidators) {
+			if (clazz.isAssignableFrom(editpart.getModel().getClass())) {
+				toRemove.add(editpart);
+			}
+		}
+		return toRemove;
+	}
+
+	/**
+	 * Collects all validators.
+	 *
+	 * @param config
+	 *            the config
+	 * @return the all validators
+	 */
+	public static DatatypeEditpart.ValidatorDelta getAllValidators(
+			IValidationConfig config) {
+
+		List<IValidatorEditpart> toAdd = new ArrayList<IValidatorEditpart>();
+		if (!(config.getValidationSettings() instanceof YValidationConfig)) {
+			return new DatatypeEditpart.ValidatorDelta(toAdd, null);
+		}
+
+		YValidationConfig yValidationConfig = (YValidationConfig) config
+				.getValidationSettings();
+		if (yValidationConfig instanceof YMinLengthValidationConfig) {
+			IMinLengthValidatorEditpart minLength = createMinLengthValidator(config);
+			if (minLength != null) {
+				toAdd.add(minLength);
+			}
+		}
+
+		if (yValidationConfig instanceof YMaxLengthValidationConfig) {
+			IMaxLengthValidatorEditpart maxLength = createMaxLengthValidator(config);
+			if (maxLength != null) {
+				toAdd.add(maxLength);
+			}
+		}
+
+		if (yValidationConfig instanceof YRegexpValidationConfig) {
+			IRegexpValidatorEditpart regexp = createRegExpressionValidator(config);
+			if (regexp != null) {
+				toAdd.add(regexp);
+			}
+		}
+
+		if (yValidationConfig instanceof YBeanValidationValidatorConfig) {
+			IBeanValidationValidatorEditpart beanVal = createBeanValidationValidator(config);
+			if (beanVal != null) {
+				toAdd.add(beanVal);
+			}
+		}
+
+		return new DatatypeEditpart.ValidatorDelta(toAdd, null);
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/internal/OrphanViewsResource.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/internal/OrphanViewsResource.java
new file mode 100644
index 0000000..8bde674
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/internal/OrphanViewsResource.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.internal;
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
+
+/**
+ * A special resource used for orphan views.
+ */
+public class OrphanViewsResource extends ResourceImpl {
+
+	/**
+	 * The constructor.
+	 * 
+	 * @param uri The URI used to initialize the resource.
+	 */
+	public OrphanViewsResource(URI uri) {
+		super(uri);
+	}
+
+	@Override
+	public void load(Map<?, ?> options) throws IOException {
+		// ignore
+	}
+
+	/**
+	 * A resource factory for {@link OrphanViewsResource}.
+	 */
+	public static class OrphanViewsResourceFactory implements Resource.Factory {
+		@Override
+		public Resource createResource(URI uri) {
+			return new OrphanViewsResource(uri);
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/BeanValidationValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/BeanValidationValidatorEditpart.java
new file mode 100644
index 0000000..79ee072
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/BeanValidationValidatorEditpart.java
@@ -0,0 +1,112 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.validation.ValidatorFactory;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator.BeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IBeanValidationValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class BeanValidationValidatorEditpart extends
+		ValidatorEditpart<YBeanValidationValidator> implements
+		IBeanValidationValidatorEditpart {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(BeanValidationValidatorEditpart.class);
+
+	private ValidationConfigToValidatorBridge bridgeObserver;
+
+	public BeanValidationValidatorEditpart() {
+		super(
+				ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS,
+				ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME,
+				ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY);
+	}
+
+	@Override
+	protected IValidator createValidator() {
+		YBeanValidationValidator yModel = getModel();
+
+		ValidatorFactory jsr303ValidatorFactory = (ValidatorFactory) getViewContext(
+				yModel).getService(ValidatorFactory.class.getName());
+		if (jsr303ValidatorFactory == null) {
+			LOGGER.error("JSR303ValidatorFactory not available.");
+			return null;
+		}
+
+		Class<?> beanClass = yModel.getBvalClass();
+		if (beanClass == null) {
+			ITypeProviderService service = getViewContext(getModel())
+					.getService(ITypeProviderService.class.getName());
+			beanClass = service.forName(null, getModel()
+					.getBvalClassFullyQualifiedName());
+		}
+
+		YField yField = (YField) yModel.eContainer();
+		BeanValidationValidator validator = new BeanValidationValidator(
+				beanClass, yModel.getBvalProperty(), jsr303ValidatorFactory,
+				yField.getId(), yField.getLabelI18nKey());
+		IViewContext context = getViewContext(getModel());
+		validator.setI18nService((II18nService) context
+				.getService(II18nService.class.getName()));
+		validator.setLocale(context.getLocale());
+		return validator;
+	}
+
+	@Override
+	public void setConfig(IValidationConfig config) {
+		YMaxLengthValidationConfig validatable = (YMaxLengthValidationConfig) config
+				.getValidationSettings();
+		// create an observer that transfers the changes at the validatable to
+		// the validator
+		Map<EStructuralFeature, EStructuralFeature> mapping = new HashMap<EStructuralFeature, EStructuralFeature>();
+		mapping.put(
+				ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS,
+				ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS);
+		mapping.put(
+				ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME,
+				ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME);
+		mapping.put(
+				ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY,
+				ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY);
+
+		bridgeObserver = new ValidationConfigToValidatorBridge(validatable,
+				getModel(), mapping);
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+			if (bridgeObserver != null) {
+				bridgeObserver.dispose();
+				bridgeObserver = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/ClassDelegateValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/ClassDelegateValidatorEditpart.java
new file mode 100644
index 0000000..0fa1292
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/ClassDelegateValidatorEditpart.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator.ClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IClassDelegateValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+
+public class ClassDelegateValidatorEditpart extends
+		ValidatorEditpart<YClassDelegateValidator> implements
+		IClassDelegateValidatorEditpart {
+
+	private ValidationConfigToValidatorBridge bridgeObserver;
+
+	public ClassDelegateValidatorEditpart() {
+		super(
+				ValidationPackage.Literals.YCLASS_DELEGATE_VALIDATION_CONFIG__CLASS_NAME);
+	}
+
+	@Override
+	protected IValidator createValidator() {
+		IViewContext context = getViewContext(getModel());
+
+		YField yField = (YField) getModel().eContainer();
+
+		return new ClassDelegateValidator(getModel(), context, yField.getId(),
+				yField.getLabelI18nKey());
+	}
+
+	@Override
+	public void setConfig(IValidationConfig config) {
+		YClassDelegateValidator validatable = (YClassDelegateValidator) config
+				.getValidationSettings();
+		// create an observer that transfers the changes at the validatable to
+		// the validator
+		bridgeObserver = ValidationConfigToValidatorBridge
+				.createObserver(
+						validatable,
+						ValidationPackage.Literals.YCLASS_DELEGATE_VALIDATION_CONFIG__CLASS_NAME,
+						getModel(),
+						ValidationPackage.Literals.YCLASS_DELEGATE_VALIDATION_CONFIG__CLASS_NAME);
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+			if (bridgeObserver != null) {
+				bridgeObserver.dispose();
+				bridgeObserver = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/MaxLengthValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/MaxLengthValidatorEditpart.java
new file mode 100644
index 0000000..f9ea44b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/MaxLengthValidatorEditpart.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator.MaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IMaxLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class MaxLengthValidatorEditpart.
+ */
+public class MaxLengthValidatorEditpart extends
+		ValidatorEditpart<YMaxLengthValidator> implements
+		IMaxLengthValidatorEditpart {
+
+	/** The bridge observer. */
+	private ValidationConfigToValidatorBridge bridgeObserver;
+
+	/**
+	 * Instantiates a new max length validator editpart.
+	 */
+	public MaxLengthValidatorEditpart() {
+		super(
+				ValidationPackage.Literals.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.validation.ValidatorEditpart#createValidator()
+	 */
+	@Override
+	protected IValidator createValidator() {
+		MaxLengthValidator validator = new MaxLengthValidator(getModel());
+		IViewContext context = getViewContext(getModel());
+		validator.setI18nService((II18nService) context
+				.getService(II18nService.class.getName()));
+		validator.setLocale(context.getLocale());
+		return validator;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart#setConfig(org.eclipse.osbp.ecview.core.common.validation.IValidationConfig)
+	 */
+	@Override
+	public void setConfig(IValidationConfig config) {
+		YMaxLengthValidationConfig validatable = (YMaxLengthValidationConfig) config
+				.getValidationSettings();
+		// create an observer that transfers the changes at the validatable to
+		// the validator
+		bridgeObserver = ValidationConfigToValidatorBridge
+				.createObserver(
+						validatable,
+						ValidationPackage.Literals.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH,
+						getModel(),
+						ValidationPackage.Literals.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.validation.ValidatorEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (bridgeObserver != null) {
+				bridgeObserver.dispose();
+				bridgeObserver = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/MinLengthValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/MinLengthValidatorEditpart.java
new file mode 100644
index 0000000..6faf654
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/MinLengthValidatorEditpart.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator.MinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IMinLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class MinLengthValidatorEditpart.
+ */
+public class MinLengthValidatorEditpart extends
+		ValidatorEditpart<YMinLengthValidator> implements
+		IMinLengthValidatorEditpart {
+
+	/** The bridge observer. */
+	private ValidationConfigToValidatorBridge bridgeObserver;
+
+	/**
+	 * Instantiates a new min length validator editpart.
+	 */
+	public MinLengthValidatorEditpart() {
+		super(
+				ValidationPackage.Literals.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.validation.ValidatorEditpart#createValidator()
+	 */
+	@Override
+	protected IValidator createValidator() {
+		checkDisposed();
+
+		MinLengthValidator validator = new MinLengthValidator(getModel());
+		IViewContext context = getViewContext(getModel());
+		validator.setI18nService((II18nService) context
+				.getService(II18nService.class.getName()));
+		validator.setLocale(context.getLocale());
+		return validator;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart#setConfig(org.eclipse.osbp.ecview.core.common.validation.IValidationConfig)
+	 */
+	@Override
+	public void setConfig(IValidationConfig config) {
+		checkDisposed();
+
+		YMinLengthValidationConfig validatable = (YMinLengthValidationConfig) config
+				.getValidationSettings();
+
+		// create an observer that transfers the changes at the validatable to
+		// the validator
+		bridgeObserver = ValidationConfigToValidatorBridge
+				.createObserver(
+						validatable,
+						ValidationPackage.Literals.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH,
+						getModel(),
+						ValidationPackage.Literals.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.validation.ValidatorEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (bridgeObserver != null) {
+				bridgeObserver.dispose();
+				bridgeObserver = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/RegexpValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/RegexpValidatorEditpart.java
new file mode 100644
index 0000000..9fececf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/RegexpValidatorEditpart.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator.RegexValidator;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IRegexpValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class RegexpValidatorEditpart.
+ */
+public class RegexpValidatorEditpart extends
+		ValidatorEditpart<YRegexpValidator> implements IRegexpValidatorEditpart {
+
+	/** The bridge observer. */
+	private ValidationConfigToValidatorBridge bridgeObserver;
+
+	/**
+	 * Checks if is valid reg expression.
+	 *
+	 * @param regexp
+	 *            the regexp
+	 * @return true, if is valid reg expression
+	 */
+	public static boolean isValidRegExpression(String regexp) {
+		return regexp != null && !regexp.equals("");
+	}
+
+	/**
+	 * Instantiates a new regexp validator editpart.
+	 */
+	public RegexpValidatorEditpart() {
+		super(
+				ValidationPackage.Literals.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.validation.ValidatorEditpart#createValidator()
+	 */
+	@Override
+	protected IValidator createValidator() {
+		RegexValidator validator = new RegexValidator(getModel());
+		IViewContext context = getViewContext(getModel());
+		validator.setI18nService((II18nService) context
+				.getService(II18nService.class.getName()));
+		validator.setLocale(context.getLocale());
+		return validator;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart#setConfig(org.eclipse.osbp.ecview.core.common.validation.IValidationConfig)
+	 */
+	@Override
+	public void setConfig(IValidationConfig config) {
+		YRegexpValidationConfig validatable = (YRegexpValidationConfig) config
+				.getValidationSettings();
+		// create an observer that transfers the changes at the validatable to
+		// the validator
+		bridgeObserver = ValidationConfigToValidatorBridge
+				.createObserver(
+						validatable,
+						ValidationPackage.Literals.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION,
+						getModel(),
+						ValidationPackage.Literals.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.validation.ValidatorEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (bridgeObserver != null) {
+				bridgeObserver.dispose();
+				bridgeObserver = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/ValidationConfigToValidatorBridge.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/ValidationConfigToValidatorBridge.java
new file mode 100644
index 0000000..9445378
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/ValidationConfigToValidatorBridge.java
@@ -0,0 +1,123 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This class is responsible to observe changes at a validatable and to forward
+ * the changes to the validator.
+ */
+public class ValidationConfigToValidatorBridge extends AdapterImpl {
+
+	/** The source validatable. */
+	private final EObject sourceValidatable;
+	
+	/** The target validator. */
+	private final EObject targetValidator;
+
+	/** The mapping. */
+	private final Map<EStructuralFeature, EStructuralFeature> mapping;
+	
+	/** The disposed. */
+	private boolean disposed;
+	
+	/** The called after dispose. */
+	private boolean calledAfterDispose;
+
+	/**
+	 * Creates an instance for the given values.
+	 *
+	 * @param sourceValidatable
+	 *            the source validatable
+	 * @param sourceFeature
+	 *            the source feature
+	 * @param targetValidator
+	 *            the target validator
+	 * @param targetFeature
+	 *            the target feature
+	 * @return the validation config to validator bridge
+	 */
+	public static ValidationConfigToValidatorBridge createObserver(
+			EObject sourceValidatable, EStructuralFeature sourceFeature,
+			EObject targetValidator, EStructuralFeature targetFeature) {
+
+		return new ValidationConfigToValidatorBridge(sourceValidatable,
+				targetValidator, Collections.singletonMap(sourceFeature,
+						targetFeature));
+	}
+
+	/**
+	 * Instantiates a new validation config to validator bridge.
+	 *
+	 * @param sourceValidatable
+	 *            the source validatable
+	 * @param targetValidator
+	 *            the target validator
+	 * @param mapping
+	 *            the mapping
+	 */
+	public ValidationConfigToValidatorBridge(EObject sourceValidatable,
+			EObject targetValidator,
+			Map<EStructuralFeature, EStructuralFeature> mapping) {
+		super();
+		this.sourceValidatable = sourceValidatable;
+		this.targetValidator = targetValidator;
+		this.mapping = mapping;
+
+		sourceValidatable.eAdapters().add(this);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		if (calledAfterDispose) {
+			throw new IllegalStateException("Observer is disposed!");
+		}
+
+		// this method is called after disposal once, since the eObjects are
+		// nested. So one call after dispose is fine.
+		if (disposed) {
+			calledAfterDispose = true;
+		}
+
+		EStructuralFeature sourceFeature = (EStructuralFeature) notification
+				.getFeature();
+
+		// if there is a mapping available, then set the value from
+		// source#sourceFeature to target#targetFeature
+		if (mapping.containsKey(sourceFeature)) {
+			EStructuralFeature targetFeature = mapping.get(sourceFeature);
+			targetValidator.eSet(targetFeature, notification.getNewValue());
+		}
+	}
+
+	/**
+	 * Dispose.
+	 */
+	public void dispose() {
+		try {
+			sourceValidatable.eAdapters().remove(this);
+		} finally {
+			disposed = true;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/ValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/ValidatorEditpart.java
new file mode 100644
index 0000000..5c2cabc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/ValidatorEditpart.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementation of {@link IValidatorEditpart}.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public abstract class ValidatorEditpart<M extends YValidator> extends
+		ElementEditpart<M> implements IValidatorEditpart {
+
+	/** The Constant LOGGER. */
+	@SuppressWarnings("unused")
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ValidatorEditpart.class);
+
+	/** The validator. */
+	private IValidator validator;
+	
+	/** The change features. */
+	private Set<EStructuralFeature> changeFeatures;
+
+	/**
+	 * A default constructor.
+	 *
+	 * @param changeFeatures
+	 *            the change features
+	 */
+	public ValidatorEditpart(EStructuralFeature... changeFeatures) {
+		if (changeFeatures != null) {
+			this.changeFeatures = new HashSet<>();
+			this.changeFeatures.addAll(Arrays.asList(changeFeatures));
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (validator != null) {
+				validator.dispose();
+			}
+			validator = null;
+			changeFeatures = null;
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart#getValidator()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends IValidator> A getValidator() {
+		checkDisposed();
+
+		if (this.validator == null) {
+			this.validator = createValidator();
+		}
+		return (A) this.validator;
+	}
+
+	/**
+	 * Returns a new instance of the validator to use.
+	 *
+	 * @return the i validator
+	 */
+	protected abstract IValidator createValidator();
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#handleModelSet(int, org.eclipse.emf.common.notify.Notification)
+	 */
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		// if the notification is for a registered feature, then update the
+		// validator
+		if (changeFeatures != null
+				&& changeFeatures.contains(notification.getFeature())) {
+			if (validator != null) {
+				validator.updateParameter(notification.getNotifier());
+			}
+		}
+		super.handleModelSet(featureId, notification);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/BeanValidationValidator.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/BeanValidationValidator.java
new file mode 100644
index 0000000..6fdb3c6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/BeanValidationValidator.java
@@ -0,0 +1,317 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ * 
+ * Contribution:
+ * Florian Pirchner - OSGi support
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator;
+
+import java.beans.PropertyDescriptor;
+import java.io.Serializable;
+import java.util.Locale;
+import java.util.Set;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.MessageInterpolator.Context;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
+import javax.validation.metadata.ConstraintDescriptor;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.eclipse.osbp.ecview.core.common.validation.AbstractCollectingValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+import org.eclipse.osbp.runtime.common.validation.Status;
+import org.eclipse.osbp.runtime.jsr303.validation.common.ValidationUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class BeanValidationValidator.
+ */
+public class BeanValidationValidator extends AbstractCollectingValidator
+		implements IValidator {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(BeanValidationValidator.class);
+
+	/** The bean class. */
+	private final Class<?> beanClass;
+	
+	/** The property name. */
+	private final String propertyName;
+	
+	/** The property class. */
+	private final Class<?> propertyClass;
+	
+	/** The locale. */
+	private Locale locale;
+
+	/** The i18n service. */
+	@SuppressWarnings("unused")
+	private II18nService i18nService;
+	
+	/** The javax bean validator factory. */
+	@SuppressWarnings("unused")
+	private final ValidatorFactory javaxBeanValidatorFactory;
+	
+	/** The javax bean validator. */
+	private final Validator javaxBeanValidator;
+	
+	/** The field id. */
+	private final String fieldId;
+	
+	/** The field i18n key. */
+	private final String fieldI18nKey;
+
+	/**
+	 * Instantiates a new bean validation validator.
+	 *
+	 * @param beanClass
+	 *            the bean class
+	 * @param propertyName
+	 *            the property name
+	 * @param jsr303ValidatorFactory
+	 *            the jsr303 validator factory
+	 * @param fieldId
+	 *            the field id
+	 * @param fieldI18nKey
+	 *            the field i18n key
+	 */
+	public BeanValidationValidator(Class<?> beanClass, String propertyName,
+			ValidatorFactory jsr303ValidatorFactory, String fieldId,
+			String fieldI18nKey) {
+		this.javaxBeanValidatorFactory = jsr303ValidatorFactory;
+		this.javaxBeanValidator = jsr303ValidatorFactory.getValidator();
+		this.beanClass = beanClass;
+		this.propertyClass = getPropertyType(beanClass, propertyName);
+		this.propertyName = propertyName;
+		locale = Locale.getDefault();
+		this.fieldId = fieldId;
+		this.fieldI18nKey = fieldI18nKey;
+	}
+
+	/**
+	 * Gets the property type.
+	 *
+	 * @param beanClass
+	 *            the bean class
+	 * @param propertyName
+	 *            the property name
+	 * @return the property type
+	 */
+	protected Class<?> getPropertyType(Class<?> beanClass, String propertyName) {
+		for (PropertyDescriptor desc : PropertyUtils
+				.getPropertyDescriptors(beanClass)) {
+			if (desc.getName().equals(propertyName)) {
+				return desc.getPropertyType();
+			}
+		}
+		throw new IllegalStateException("Property " + propertyName
+				+ " not available in class " + beanClass.getName());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#getType()
+	 */
+	@Override
+	public Class<?> getType() {
+		return propertyClass;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#isCheckValidType()
+	 */
+	@Override
+	public boolean isCheckValidType() {
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#validateValue(java.lang.Object)
+	 */
+	@SuppressWarnings("rawtypes")
+	@Override
+	public IStatus validateValue(Object value) {
+		if (javaxBeanValidator == null) {
+			return Status.createStatus("", BeanValidationValidator.class,
+					IStatus.Severity.ERROR,
+					"Error occured: javaxBeanValidator was null.");
+		}
+		Set<?> violations = null;
+		try {
+			Object convertedValue = value;
+			if (value != null && value instanceof Number
+					&& !propertyClass.isAssignableFrom(value.getClass())) {
+				convertedValue = convertNumber((Number) value);
+			}
+
+			violations = javaxBeanValidator.validateValue(beanClass,
+					propertyName, convertedValue);
+		} catch (Exception e) {
+			IStatus status = Status.createErrorStatus(e);
+			resetCurrentStatus();
+			addCurrentStatus(status);
+			return status;
+		}
+
+		if (violations.isEmpty()) {
+			resetCurrentStatus();
+			return IStatus.OK;
+		}
+
+		@SuppressWarnings("unchecked")
+		Set<IStatus> status = ValidationUtil.getStatus(getClass(),
+				(Set<ConstraintViolation>) violations);
+
+		// fix the field id
+		for (IStatus s : status) {
+			s.putProperty(IStatus.PROP_FIELD_ID, fieldId);
+			s.putProperty(IStatus.PROP_FIELD_I18N_KEY, fieldI18nKey);
+		}
+
+		resetCurrentStatus();
+		addCurrentStatus(status);
+
+		return status.size() > 0 ? status.iterator().next() : IStatus.OK;
+	}
+
+	/**
+	 * Convert number.
+	 *
+	 * @param value
+	 *            the value
+	 * @return the object
+	 */
+	private Object convertNumber(Number value) {
+		if (propertyClass == Byte.class || propertyClass == Byte.TYPE) {
+			return value.byteValue();
+		} else if (propertyClass == Short.class || propertyClass == Short.TYPE) {
+			return value.shortValue();
+		} else if (propertyClass == Integer.class
+				|| propertyClass == Integer.TYPE) {
+			return value.intValue();
+		} else if (propertyClass == Double.class
+				|| propertyClass == Double.TYPE) {
+			return value.doubleValue();
+		} else if (propertyClass == Float.class || propertyClass == Float.TYPE) {
+			return value.floatValue();
+		} else if (propertyClass == Long.class || propertyClass == Long.TYPE) {
+			return value.longValue();
+		}
+
+		return null;
+	}
+
+	/**
+	 * Sets the locale used for validation error messages.
+	 * 
+	 * Revalidation is not automatically triggered by setting the locale.
+	 *
+	 * @param locale
+	 *            the new locale
+	 */
+	public void setLocale(Locale locale) {
+		this.locale = locale;
+	}
+
+	/**
+	 * Gets the locale used for validation error messages.
+	 * 
+	 * @return locale used for validation
+	 */
+	public Locale getLocale() {
+		return locale;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#updateParameter(java.lang.Object)
+	 */
+	@Override
+	public void updateParameter(Object model) {
+		// not supported yet
+		LOGGER.error("Update parameter for BeanValidationValidator not allowed yet!");
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.AbstractCollectingValidator#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#setI18nService(org.eclipse.osbp.runtime.common.i18n.II18nService)
+	 */
+	@Override
+	public void setI18nService(II18nService i18nService) {
+		this.i18nService = i18nService;
+	};
+
+	/**
+	 * Simple implementation of a message interpolator context that returns
+	 * fixed values.
+	 */
+	@SuppressWarnings("serial")
+	protected static class SimpleContext implements Context, Serializable {
+
+		/** The value. */
+		private final Object value;
+		
+		/** The descriptor. */
+		private final ConstraintDescriptor<?> descriptor;
+
+		/**
+		 * Create a simple immutable message interpolator context.
+		 * 
+		 * @param value
+		 *            value being validated
+		 * @param descriptor
+		 *            ConstraintDescriptor corresponding to the constraint being
+		 *            validated
+		 */
+		public SimpleContext(Object value, ConstraintDescriptor<?> descriptor) {
+			this.value = value;
+			this.descriptor = descriptor;
+		}
+
+		/* (non-Javadoc)
+		 * @see javax.validation.MessageInterpolator.Context#getConstraintDescriptor()
+		 */
+		@Override
+		public ConstraintDescriptor<?> getConstraintDescriptor() {
+			return descriptor;
+		}
+
+		/* (non-Javadoc)
+		 * @see javax.validation.MessageInterpolator.Context#getValidatedValue()
+		 */
+		@Override
+		public Object getValidatedValue() {
+			return value;
+		}
+
+		/* (non-Javadoc)
+		 * @see javax.validation.MessageInterpolator.Context#unwrap(java.lang.Class)
+		 */
+		public <T> T unwrap(Class<T> arg0) {
+			return null;
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/ClassDelegateValidator.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/ClassDelegateValidator.java
new file mode 100644
index 0000000..9f0362c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/ClassDelegateValidator.java
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator;
+
+import java.util.Locale;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.validation.AbstractCollectingValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+import org.eclipse.osbp.runtime.common.validation.Status;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ClassDelegateValidator extends AbstractCollectingValidator
+		implements IValidator {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ClassDelegateValidator.class);
+
+	private ITypeProviderService service;
+	private IValidator delegate;
+
+	private Locale locale;
+	private II18nService i18nService;
+
+	private String fieldId;
+	private String fieldI18nKey;
+
+	public ClassDelegateValidator(YClassDelegateValidator yValidator,
+			IViewContext context, String fieldId, String fieldI18nKey) {
+		service = context.getService(ITypeProviderService.class.getName());
+		i18nService = context.getService(II18nService.class.getName());
+		locale = context.getLocale();
+		this.fieldId = fieldId;
+		this.fieldI18nKey = fieldI18nKey;
+
+		updateParameter(yValidator);
+	}
+
+	@Override
+	public Class<?> getType() {
+		return delegate.getType();
+	}
+
+	@Override
+	public IStatus validateValue(Object value) {
+		if (delegate == null) {
+			return Status.createStatus("", ClassDelegateValidator.class,
+					IStatus.Severity.ERROR,
+					"Error occured: Delegate class was null.");
+		}
+		IStatus result = delegate.validateValue(value);
+
+		result.putProperty(IStatus.PROP_FIELD_ID, fieldId);
+		result.putProperty(IStatus.PROP_FIELD_I18N_KEY, fieldI18nKey);
+
+		resetCurrentStatus();
+		addCurrentStatus(result);
+		return result;
+	}
+
+	@Override
+	public void updateParameter(Object model) {
+		YClassDelegateValidationConfig yValidator = (YClassDelegateValidationConfig) model;
+		Class<?> delegateClass = service.forName(
+				ValidationPackage.Literals.YCLASS_DELEGATE_VALIDATOR,
+				yValidator.getClassName());
+		try {
+			if (delegateClass != null) {
+				delegate = (IValidator) delegateClass.newInstance();
+				delegate.setI18nService(i18nService);
+				delegate.setLocale(locale);
+			} else {
+				LOGGER.error("The class {} could not be loaded!",
+						yValidator.getClassName());
+			}
+
+		} catch (InstantiationException e) {
+			LOGGER.error(e.toString());
+		} catch (IllegalAccessException e) {
+			LOGGER.error(e.toString());
+		}
+	}
+
+	@Override
+	protected void internalDispose() {
+
+	}
+
+	@Override
+	public void setLocale(Locale locale) {
+		this.locale = locale;
+		if (delegate != null) {
+			delegate.setLocale(locale);
+		}
+	}
+
+	@Override
+	public void setI18nService(II18nService i18nService) {
+		this.i18nService = i18nService;
+		if (delegate != null) {
+			delegate.setI18nService(i18nService);
+		}
+	}
+
+	@Override
+	public boolean isCheckValidType() {
+		return delegate.isCheckValidType();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/MaxLengthValidator.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/MaxLengthValidator.java
new file mode 100644
index 0000000..5d6d55f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/MaxLengthValidator.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.StringValidator;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+import org.eclipse.osbp.runtime.common.validation.Status;
+ 
+public class MaxLengthValidator extends StringValidator {
+
+	public static final String DEFAULT_ERROR_CODE = "org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator.MaxLengthValidator";
+	private static final String DEF_MESSAGE = "Maximum length is ${maxLength}. Length of \"${value}\" is ${currentLength}!";
+	private String defaultMessage = DEF_MESSAGE;
+	
+	private int maxLength;
+
+	public MaxLengthValidator(YMaxLengthValidationConfig yValidator) {
+		super(yValidator.getErrorCode());
+		if (isStringValid(yValidator.getDefaultErrorMessage())) {
+			defaultMessage = yValidator.getDefaultErrorMessage();
+		}
+
+		updateParameter(yValidator);
+	}
+ 
+	@Override
+	public IStatus doValidate(String value) {
+		if (value.trim().length() > maxLength) {
+			return Status.createStatus(errorCode, getClass(),
+					IStatus.Severity.ERROR, createMessage(value));
+		}
+		return IStatus.OK;
+	}
+
+	/**
+	 * Creates the message.
+	 * 
+	 * @param value
+	 * @return
+	 */
+	protected String createMessage(String value) {
+		String message = getMessage();
+		if (!isStringValid(message)) {
+			return "Error message missing!";
+		}
+		message = message.replaceAll("\\$\\{maxLength\\}",
+				Integer.toString(maxLength));
+		message = message.replaceAll("\\$\\{currentLength\\}",
+				Integer.toString(value.trim().length()));
+		message = message.replaceAll("\\$\\{value\\}", value);
+		return message;
+	}
+
+	/**
+	 * Creates the default message in english.
+	 * 
+	 * @return
+	 */
+	protected String getDefaultMessage() {
+		return defaultMessage;
+	}
+
+	@Override
+	public void updateParameter(Object model) {
+		YMaxLengthValidationConfig yValidator = (YMaxLengthValidationConfig) model;
+		this.maxLength = yValidator.getMaxLength();
+	}
+
+	@Override
+	protected String getDefaultErrorCode() {
+		return DEFAULT_ERROR_CODE;
+	};
+
+	@Override
+	protected void internalDispose() {
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/MinLengthValidator.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/MinLengthValidator.java
new file mode 100644
index 0000000..c10e4a4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/MinLengthValidator.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.StringValidator;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+import org.eclipse.osbp.runtime.common.validation.Status;
+
+public class MinLengthValidator extends StringValidator {
+
+	public static final String DEFAULT_ERROR_CODE = "org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator.MinLengthValidator";
+	private static final String DEF_MESSAGE = "Minimum length is ${minLength}. Length of \"${value}\" is ${currentLength}!";
+
+	private String defaultMessage = DEF_MESSAGE;
+	private int minLength;
+
+	public MinLengthValidator(YMinLengthValidationConfig yValidator) {
+		super(yValidator.getErrorCode());
+		if (isStringValid(yValidator.getDefaultErrorMessage())) {
+			defaultMessage = yValidator.getDefaultErrorMessage();
+		}
+
+		updateParameter(yValidator);
+	}
+ 
+	@Override
+	public IStatus doValidate(String value) {
+		if (value.trim().length() < minLength) {
+			return Status.createStatus(errorCode, getClass(),
+					IStatus.Severity.ERROR, createMessage(value));
+		}
+
+		return IStatus.OK;
+	}
+
+	/**
+	 * Creates the message.
+	 * 
+	 * @param value
+	 * @return
+	 */
+	protected String createMessage(String value) {
+		String message = getMessage();
+		if (!isStringValid(message)) {
+			return "Error message missing!";
+		}
+		message = message.replaceAll("\\$\\{minLength\\}",
+				Integer.toString(minLength));
+		message = message.replaceAll("\\$\\{currentLength\\}",
+				Integer.toString(value.trim().length()));
+		message = message.replaceAll("\\$\\{value\\}", value);
+		return message;
+	}
+
+	/**
+	 * Creates the default message in english.
+	 * 
+	 * @return
+	 */
+	protected String getDefaultMessage() {
+		return defaultMessage;
+	}
+
+	@Override
+	public void updateParameter(Object model) {
+		YMinLengthValidationConfig yValidator = (YMinLengthValidationConfig) model;
+		this.minLength = yValidator.getMinLength();
+	}
+
+	@Override
+	protected String getDefaultErrorCode() {
+		return DEFAULT_ERROR_CODE;
+	};
+
+	@Override
+	protected void internalDispose() {
+
+	};
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/RegexValidator.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/RegexValidator.java
new file mode 100644
index 0000000..8dea347
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/validation/validator/RegexValidator.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.StringValidator;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+import org.eclipse.osbp.runtime.common.validation.Status;
+
+/**
+ * Validates the string value if it matches the given regular expression.
+ */
+public class RegexValidator extends StringValidator {
+
+	public static final String DEFAULT_ERROR_CODE = "org.eclipse.osbp.ecview.core.common.editpart.emf.validation.validator.RegexValidator";
+	private static final String DEF_MESSAGE = "Value ${value} does not match the required pattern ${regex}!";
+	private String defaultMessage = DEF_MESSAGE;
+
+	private Pattern pattern;
+	private Matcher matcher = null;
+	private String regexp;
+
+	public RegexValidator(YRegexpValidationConfig yValidator) {
+		super(yValidator.getErrorCode());
+		if (isStringValid(yValidator.getDefaultErrorMessage())) {
+			defaultMessage = yValidator.getDefaultErrorMessage();
+		}
+		updateParameter(yValidator);
+	}
+
+	/**
+	 * Get a new or reused matcher for the pattern
+	 * 
+	 * @param value
+	 *            the string to find matches in
+	 * @return Matcher for the string
+	 */
+	private Matcher getMatcher(String value) {
+		if (matcher == null) {
+			matcher = pattern.matcher(value);
+		} else {
+			matcher.reset(value);
+		}
+		return matcher;
+	}
+
+	@Override
+	public IStatus doValidate(String value) {
+		if (value == null || value.isEmpty()) {
+			return IStatus.OK;
+		}
+
+		if (!getMatcher(value).matches()) {
+			return Status.createStatus(errorCode, getClass(),
+					IStatus.Severity.ERROR, createMessage(value));
+		}
+		return IStatus.OK;
+	}
+
+	/**
+	 * Creates the message.
+	 * 
+	 * @param value
+	 * @return
+	 */
+	protected String createMessage(String value) {
+		String message = getMessage();
+		if (!isStringValid(message)) {
+			return "Error message missing!";
+		}
+		message = message.replaceAll("\\$\\{value\\}", value);
+		message = message.replaceAll("\\$\\{regex\\}", regexp);
+		return message;
+	}
+
+	/**
+	 * Creates the default message in english.
+	 * 
+	 * @return
+	 */
+	protected String getDefaultMessage() {
+		return defaultMessage;
+	}
+
+	@Override
+	public void updateParameter(Object model) {
+		YRegexpValidationConfig yValidator = (YRegexpValidationConfig) model;
+		this.regexp = yValidator.getRegExpression();
+		this.pattern = Pattern.compile(regexp != null ? regexp : "");
+		this.matcher = null;
+	}
+
+	@Override
+	protected String getDefaultErrorCode() {
+		return DEFAULT_ERROR_CODE;
+	};
+
+	@Override
+	protected void internalDispose() {
+
+	};
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/visibility/VisibilityProcessorEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/visibility/VisibilityProcessorEditpart.java
new file mode 100644
index 0000000..97a2a2d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/visibility/VisibilityProcessorEditpart.java
@@ -0,0 +1,363 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.visibility;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IVisibilityProcessorValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityProcessor;
+import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class VisibilityProcessorEditpart.
+ *
+ * @param <M>
+ *            the generic type
+ */
+public class VisibilityProcessorEditpart<M extends YVisibilityProcessor>
+		extends ElementEditpart<M> implements IVisibilityProcessorEditpart {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(VisibilityProcessorEditpart.class);
+
+	/** The data used. */
+	private ArrayList<IBindingEditpart<?>> dataUsed;
+	
+	/** The triggers on. */
+	private ArrayList<IBindingEditpart<?>> triggersOn;
+
+	/** The processor. */
+	protected IVisibilityProcessor processor;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessorEditpart#activate()
+	 */
+	@Override
+	public void activate() {
+		processor = loadProcessor();
+		if (processor == null) {
+			LOGGER.error("Could not load class "
+					+ getModel().getDelegateQualifiedName());
+			return;
+		}
+
+		IViewContext context = getViewContext(getModel());
+		// initializes the visibility processor
+		processor.init(context.getVisibilityManager());
+		for (IBindingEditpart<?> editpart : getDataUsed()) {
+			bindEditpart(processor, editpart);
+		}
+		for (IBindingEditpart<?> editpart : getTriggersOn()) {
+			bindEditpart(processor, editpart);
+		}
+	}
+
+	/**
+	 * Binds the editpart.
+	 *
+	 * @param processor
+	 *            the processor
+	 * @param editpart
+	 *            the editpart
+	 */
+	protected void bindEditpart(IVisibilityProcessor processor,
+			IBindingEditpart<?> editpart) {
+		IBindingEditpart<?> bindingEditpart = (IBindingEditpart<?>) editpart;
+		IBindableEndpointEditpart tempTargetEP = bindingEditpart
+				.getTargetEndpoint();
+		if (!(tempTargetEP instanceof IVisibilityProcessorValueBindingEndpointEditpart)) {
+			LOGGER.error("Target endpoint MUST be of type IVisibilityProcessorValueBindingEndpointEditpart. Binding "
+					+ bindingEditpart + " skipped");
+			return;
+		}
+
+		// Set the visibility processor that should be bound
+		IVisibilityProcessorValueBindingEndpointEditpart targetEP = (IVisibilityProcessorValueBindingEndpointEditpart) tempTargetEP;
+		targetEP.setVisibilityProcessor(processor);
+
+		bindingEditpart.bind();
+	}
+
+	/**
+	 * Tries to load the processor.
+	 *
+	 * @return the i visibility processor
+	 */
+	protected IVisibilityProcessor loadProcessor() {
+		if (processor != null) {
+			return processor;
+		}
+
+		Class<?> processorClass = getDelegateClass();
+		IVisibilityProcessor processor = null;
+		if (processorClass != null) {
+			try {
+				processor = (IVisibilityProcessor) processorClass.newInstance();
+			} catch (InstantiationException e) {
+			} catch (IllegalAccessException e) {
+			}
+		}
+
+		if (processor == null) {
+			ITypeProviderService service = getViewContext(getModel())
+					.getService(ITypeProviderService.class.getName());
+			if (service != null) {
+				processorClass = service.forName(
+						VisibilityPackage.Literals.YVISIBILITY_PROCESSOR,
+						getModel().getDelegateQualifiedName());
+				try {
+					if (processorClass != null) {
+						processor = (IVisibilityProcessor) processorClass
+								.newInstance();
+					}
+				} catch (InstantiationException e) {
+				} catch (IllegalAccessException e) {
+				}
+			} else {
+				LOGGER.warn(
+						"Could not load visibility processor for class {}!",
+						getModel().getDelegateQualifiedName());
+			}
+		}
+
+		return processor;
+	}
+
+	/**
+	 * Gets the delegate class.
+	 *
+	 * @return the delegate class
+	 */
+	protected Class<?> getDelegateClass() {
+		return getModel().getDelegate();
+	}
+
+	/**
+	 * Gets the data used.
+	 *
+	 * @return the data used
+	 */
+	public List<IBindingEditpart<?>> getDataUsed() {
+		checkDisposed();
+
+		if (dataUsed == null) {
+			internalLoadDataUsed();
+		}
+		return Collections.unmodifiableList(dataUsed);
+	}
+
+	/**
+	 * Loads the rule.
+	 */
+	protected void internalLoadDataUsed() {
+		checkDisposed();
+
+		if (dataUsed == null) {
+			dataUsed = new ArrayList<IBindingEditpart<?>>();
+
+			for (YBinding yEp : getModel().getDataUsed()) {
+				internalAddDataUsed((IBindingEditpart<?>) getEditpart(viewContext, yEp));
+			}
+		}
+	}
+
+	/**
+	 * Internal add data used.
+	 *
+	 * @param editpart
+	 *            the editpart
+	 */
+	protected void internalAddDataUsed(IBindingEditpart<?> editpart) {
+		checkDisposed();
+
+		if (dataUsed == null) {
+			internalLoadDataUsed();
+		}
+		if (!dataUsed.contains(editpart)) {
+			dataUsed.add(editpart);
+			bindEditpart(loadProcessor(), editpart);
+		}
+	}
+
+	/**
+	 * Internal remove data used.
+	 *
+	 * @param editpart
+	 *            the editpart
+	 */
+	protected void internalRemoveDataUsed(IBindingEditpart<?> editpart) {
+		checkDisposed();
+
+		if (dataUsed != null && editpart != null) {
+			editpart.dispose();
+			dataUsed.remove(editpart);
+		}
+	}
+
+	/**
+	 * Gets the triggers on.
+	 *
+	 * @return the triggers on
+	 */
+	public List<IBindingEditpart<?>> getTriggersOn() {
+		checkDisposed();
+
+		if (triggersOn == null) {
+			internalLoadTriggersOn();
+		}
+		return Collections.unmodifiableList(triggersOn);
+	}
+
+	/**
+	 * Loads the rule.
+	 */
+	protected void internalLoadTriggersOn() {
+		checkDisposed();
+
+		if (triggersOn == null) {
+			triggersOn = new ArrayList<IBindingEditpart<?>>();
+
+			for (YBinding yEp : getModel().getTriggersOn()) {
+				internalAddTriggersOn((IBindingEditpart<?>) getEditpart(viewContext, yEp));
+			}
+		}
+	}
+
+	/**
+	 * Internal add triggers on.
+	 *
+	 * @param editpart
+	 *            the editpart
+	 */
+	protected void internalAddTriggersOn(IBindingEditpart<?> editpart) {
+		checkDisposed();
+
+		if (triggersOn == null) {
+			internalLoadDataUsed();
+		}
+		if (!triggersOn.contains(editpart)) {
+			triggersOn.add(editpart);
+			bindEditpart(loadProcessor(), editpart);
+		}
+	}
+
+	/**
+	 * Internal remove triggers on.
+	 *
+	 * @param editpart
+	 *            the editpart
+	 */
+	protected void internalRemoveTriggersOn(IBindingEditpart<?> editpart) {
+		checkDisposed();
+
+		if (triggersOn != null && editpart != null) {
+			editpart.dispose();
+			triggersOn.remove(editpart);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	protected void handleModelAdd(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case VisibilityPackage.YVISIBILITY_PROCESSOR__DATA_USED:
+			YBinding yElement = (YBinding) notification.getNewValue();
+
+			IBindingEditpart<?> editPart = (IBindingEditpart<?>) getEditpart(viewContext, yElement);
+			internalAddDataUsed(editPart);
+			break;
+		case VisibilityPackage.YVISIBILITY_PROCESSOR__TRIGGERS_ON:
+			yElement = (YBinding) notification.getNewValue();
+
+			editPart = (IBindingEditpart<?>) getEditpart(viewContext, yElement);
+			internalAddTriggersOn(editPart);
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	protected void handleModelRemove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case VisibilityPackage.YVISIBILITY_PROCESSOR__DATA_USED:
+			YBinding yElement = (YBinding) notification.getNewValue();
+
+			IBindingEditpart<?> editPart = (IBindingEditpart<?>) getEditpart(viewContext, yElement);
+			internalRemoveDataUsed(editPart);
+			break;
+		case VisibilityPackage.YVISIBILITY_PROCESSOR__TRIGGERS_ON:
+			yElement = (YBinding) notification.getNewValue();
+
+			editPart = (IBindingEditpart<?>) getEditpart(viewContext, yElement);
+			internalRemoveTriggersOn(editPart);
+			break;
+		default:
+			break;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart#internalDispose()
+	 */
+	protected void internalDispose() {
+		try {
+			if (dataUsed != null) {
+				for (IBindingEditpart<?> editpart : dataUsed) {
+					editpart.dispose();
+				}
+				dataUsed = null;
+			}
+
+			if (triggersOn != null) {
+				for (IBindingEditpart<?> editpart : triggersOn) {
+					editpart.dispose();
+				}
+				triggersOn = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessorEditpart#fire()
+	 */
+	@Override
+	public void fire() {
+		if (processor != null) {
+			processor.fire();
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/visibility/VisibilityPropertiesEditpart.java b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/visibility/VisibilityPropertiesEditpart.java
new file mode 100644
index 0000000..12d71a8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.editparts.emf/src/org/eclipse/osbp/ecview/core/common/editpart/emf/visibility/VisibilityPropertiesEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.emf.visibility;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityPropertiesEditpart;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties;
+
+public class VisibilityPropertiesEditpart extends
+		ElementEditpart<YVisibilityProperties> implements
+		IVisibilityPropertiesEditpart {
+
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/.project b/org.eclipse.osbp.ecview.core.common.model.edit/.project
new file mode 100644
index 0000000..3e38597
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.common.model.edit</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/LICENSE.txt b/org.eclipse.osbp.ecview.core.common.model.edit/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.common.model.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f1a3a99
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.common.model.edit
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.common.model.edit;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin$Implementation
+Bundle-Vendor: Eclipse OSBP
+ Germany)
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.osbp.ecview.core.common.model.binding.provider,
+ org.eclipse.osbp.ecview.core.common.model.core.authorization.provider,
+ org.eclipse.osbp.ecview.core.common.model.core.provider,
+ org.eclipse.osbp.ecview.core.common.model.datatypes.provider,
+ org.eclipse.osbp.ecview.core.common.model.validation.provider,
+ org.eclipse.osbp.ecview.core.common.model.visibility.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.osbp.ecview.core.common.model;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/META-INF/MANIFEST.MF_old b/org.eclipse.osbp.ecview.core.common.model.edit/META-INF/MANIFEST.MF_old
new file mode 100644
index 0000000..193893e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/META-INF/MANIFEST.MF_old
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.common.model.edit;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin$Implementation
+Bundle-Vendor: Loetz GmbH&Co.KG - 69115 Heidelberg - Germany
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.osbp.ecview.core.common.model.binding.provider;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.core.authorization.provider,
+ org.eclipse.osbp.ecview.core.common.model.core.provider;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.datatypes.provider;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.validation.provider;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.visibility.provider;version="0.9.0"
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="2.10.1";visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/about.html b/org.eclipse.osbp.ecview.core.common.model.edit/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/about.ini b/org.eclipse.osbp.ecview.core.common.model.edit/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/about.mappings b/org.eclipse.osbp.ecview.core.common.model.edit/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/about.properties b/org.eclipse.osbp.ecview.core.common.model.edit/about.properties
new file mode 100644
index 0000000..8a2dd33
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.common.model.edit
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/build.properties b/org.eclipse.osbp.ecview.core.common.model.edit/build.properties
new file mode 100644
index 0000000..f8b6959
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/build.properties
@@ -0,0 +1,14 @@
+#
+
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  .,\
+               icons/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               LICENSE.txt,\
+               license.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYAuthorizationStore_authorizations_YFieldAuthorization.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYAuthorizationStore_authorizations_YFieldAuthorization.gif
new file mode 100644
index 0000000..9cb21a6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYAuthorizationStore_authorizations_YFieldAuthorization.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYBindingSet_bindings_YListBinding.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYBindingSet_bindings_YListBinding.gif
new file mode 100644
index 0000000..813b6e1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYBindingSet_bindings_YListBinding.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYBindingSet_bindings_YValueBinding.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYBindingSet_bindings_YValueBinding.gif
new file mode 100644
index 0000000..3dc8f80
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYBindingSet_bindings_YValueBinding.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YOpenDialogCommand.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YOpenDialogCommand.gif
new file mode 100644
index 0000000..8e0ea4d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YOpenDialogCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YSendEventCommand.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YSendEventCommand.gif
new file mode 100644
index 0000000..e44bf16
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YSendEventCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YActivatedEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YActivatedEndpoint.gif
new file mode 100644
index 0000000..9fa11c0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YActivatedEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YBeanSlotValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YBeanSlotValueBindingEndpoint.gif
new file mode 100644
index 0000000..0db3a10
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YBeanSlotValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YBeanValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YBeanValueBindingEndpoint.gif
new file mode 100644
index 0000000..8764fa2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YBeanValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YContextValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YContextValueBindingEndpoint.gif
new file mode 100644
index 0000000..6844bf8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YContextValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YDetailValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YDetailValueBindingEndpoint.gif
new file mode 100644
index 0000000..95a7dfd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YDetailValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YECViewModelValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YECViewModelValueBindingEndpoint.gif
new file mode 100644
index 0000000..f3ab440
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YECViewModelValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YEmbeddableSelectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YEmbeddableSelectionEndpoint.gif
new file mode 100644
index 0000000..19b38ab
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YEmbeddableSelectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YEmbeddableValueEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YEmbeddableValueEndpoint.gif
new file mode 100644
index 0000000..bdb6bd5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YEmbeddableValueEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YNoOpValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YNoOpValueBindingEndpoint.gif
new file mode 100644
index 0000000..79caa88
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YNoOpValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YVisibilityProcessorValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YVisibilityProcessorValueBindingEndpoint.gif
new file mode 100644
index 0000000..4ae0144
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDetailValueBindingEndpoint_masterObservable_YVisibilityProcessorValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YAction.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YAction.gif
new file mode 100644
index 0000000..619a36c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YAction.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YField.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YField.gif
new file mode 100644
index 0000000..78daa8e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YHelperLayout.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YHelperLayout.gif
new file mode 100644
index 0000000..73b29f9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YHelperLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YLayout.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YLayout.gif
new file mode 100644
index 0000000..78daa8e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_content_YLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_datadescription_YDatadescription.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_datadescription_YDatadescription.gif
new file mode 100644
index 0000000..968035a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYDialog_datadescription_YDatadescription.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatadescriptions_YDatadescription.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatadescriptions_YDatadescription.gif
new file mode 100644
index 0000000..abda755
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatadescriptions_YDatadescription.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YDtWrapper.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YDtWrapper.gif
new file mode 100644
index 0000000..37ddf24
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YDtWrapper.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_converter_YDelegateConverter.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_converter_YDelegateConverter.gif
new file mode 100644
index 0000000..22caf47
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_converter_YDelegateConverter.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YBeanValidationValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YBeanValidationValidator.gif
new file mode 100644
index 0000000..97d3985
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YBeanValidationValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YClassDelegateValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YClassDelegateValidator.gif
new file mode 100644
index 0000000..7d4073e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YClassDelegateValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YMaxLengthValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YMaxLengthValidator.gif
new file mode 100644
index 0000000..eb2a33b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YMaxLengthValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YMinLengthValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YMinLengthValidator.gif
new file mode 100644
index 0000000..6e87a23
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YMinLengthValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YRegexpValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YRegexpValidator.gif
new file mode 100644
index 0000000..90f4828
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_internalValidators_YRegexpValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YBeanValidationValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YBeanValidationValidator.gif
new file mode 100644
index 0000000..97d3985
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YBeanValidationValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YClassDelegateValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YClassDelegateValidator.gif
new file mode 100644
index 0000000..7d4073e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YClassDelegateValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YMaxLengthValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YMaxLengthValidator.gif
new file mode 100644
index 0000000..eb2a33b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YMaxLengthValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YMinLengthValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YMinLengthValidator.gif
new file mode 100644
index 0000000..6e87a23
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YMinLengthValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YRegexpValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YRegexpValidator.gif
new file mode 100644
index 0000000..90f4828
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYField_validators_YRegexpValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YAction.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YAction.gif
new file mode 100644
index 0000000..ffbeece
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YAction.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YField.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YField.gif
new file mode 100644
index 0000000..cbd1b19
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YHelperLayout.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YHelperLayout.gif
new file mode 100644
index 0000000..cd91b67
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YHelperLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YLayout.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YLayout.gif
new file mode 100644
index 0000000..cbd1b19
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYLayout_elements_YLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YBeanSlotListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YBeanSlotListBindingEndpoint.gif
new file mode 100644
index 0000000..59d3029
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YBeanSlotListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YECViewModelListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YECViewModelListBindingEndpoint.gif
new file mode 100644
index 0000000..4303550
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YECViewModelListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YEmbeddableCollectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YEmbeddableCollectionEndpoint.gif
new file mode 100644
index 0000000..b689e7a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YEmbeddableCollectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YEmbeddableMultiSelectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YEmbeddableMultiSelectionEndpoint.gif
new file mode 100644
index 0000000..bad30bb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YEmbeddableMultiSelectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YEnumListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YEnumListBindingEndpoint.gif
new file mode 100644
index 0000000..7cb2132
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YEnumListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YNoOpListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YNoOpListBindingEndpoint.gif
new file mode 100644
index 0000000..b689e7a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_modelEndpoint_YNoOpListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YBeanSlotListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YBeanSlotListBindingEndpoint.gif
new file mode 100644
index 0000000..59d3029
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YBeanSlotListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YECViewModelListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YECViewModelListBindingEndpoint.gif
new file mode 100644
index 0000000..4303550
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YECViewModelListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YEmbeddableCollectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YEmbeddableCollectionEndpoint.gif
new file mode 100644
index 0000000..b689e7a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YEmbeddableCollectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YEmbeddableMultiSelectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YEmbeddableMultiSelectionEndpoint.gif
new file mode 100644
index 0000000..bad30bb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YEmbeddableMultiSelectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YEnumListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YEnumListBindingEndpoint.gif
new file mode 100644
index 0000000..7cb2132
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YEnumListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YNoOpListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YNoOpListBindingEndpoint.gif
new file mode 100644
index 0000000..b689e7a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYListBinding_targetEndpoint_YNoOpListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YActivatedEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YActivatedEndpoint.gif
new file mode 100644
index 0000000..40ce635
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YActivatedEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YBeanSlotValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YBeanSlotValueBindingEndpoint.gif
new file mode 100644
index 0000000..776368e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YBeanSlotValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YBeanValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YBeanValueBindingEndpoint.gif
new file mode 100644
index 0000000..1a18575
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YBeanValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YContextValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YContextValueBindingEndpoint.gif
new file mode 100644
index 0000000..32f857f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YContextValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YDetailValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YDetailValueBindingEndpoint.gif
new file mode 100644
index 0000000..1a30bfd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YDetailValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YECViewModelValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YECViewModelValueBindingEndpoint.gif
new file mode 100644
index 0000000..b82fff7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YECViewModelValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YEmbeddableSelectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YEmbeddableSelectionEndpoint.gif
new file mode 100644
index 0000000..ae214b9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YEmbeddableSelectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YEmbeddableValueEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YEmbeddableValueEndpoint.gif
new file mode 100644
index 0000000..247671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YEmbeddableValueEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YNoOpValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YNoOpValueBindingEndpoint.gif
new file mode 100644
index 0000000..d7b26a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YNoOpValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YVisibilityProcessorValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YVisibilityProcessorValueBindingEndpoint.gif
new file mode 100644
index 0000000..72eb6e6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_modelEndpoint_YVisibilityProcessorValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YActivatedEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YActivatedEndpoint.gif
new file mode 100644
index 0000000..40ce635
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YActivatedEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YBeanSlotValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YBeanSlotValueBindingEndpoint.gif
new file mode 100644
index 0000000..776368e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YBeanSlotValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YBeanValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YBeanValueBindingEndpoint.gif
new file mode 100644
index 0000000..1a18575
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YBeanValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YContextValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YContextValueBindingEndpoint.gif
new file mode 100644
index 0000000..32f857f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YContextValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YDetailValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YDetailValueBindingEndpoint.gif
new file mode 100644
index 0000000..1a30bfd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YDetailValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YECViewModelValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YECViewModelValueBindingEndpoint.gif
new file mode 100644
index 0000000..b82fff7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YECViewModelValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YEmbeddableSelectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YEmbeddableSelectionEndpoint.gif
new file mode 100644
index 0000000..ae214b9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YEmbeddableSelectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YEmbeddableValueEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YEmbeddableValueEndpoint.gif
new file mode 100644
index 0000000..247671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YEmbeddableValueEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YNoOpValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YNoOpValueBindingEndpoint.gif
new file mode 100644
index 0000000..d7b26a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YNoOpValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YVisibilityProcessorValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YVisibilityProcessorValueBindingEndpoint.gif
new file mode 100644
index 0000000..72eb6e6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYValueBinding_targetEndpoint_YVisibilityProcessorValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYViewSet_beanSlots_YBeanSlot.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYViewSet_beanSlots_YBeanSlot.gif
new file mode 100644
index 0000000..ec56659
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYViewSet_beanSlots_YBeanSlot.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYViewSet_beanSlots_YDetailBeanSlot.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYViewSet_beanSlots_YDetailBeanSlot.gif
new file mode 100644
index 0000000..8a87700
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYViewSet_beanSlots_YDetailBeanSlot.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYViewSet_views_YView.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYViewSet_views_YView.gif
new file mode 100644
index 0000000..380314b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYViewSet_views_YView.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_authorizationStore_YAuthorizationStore.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_authorizationStore_YAuthorizationStore.gif
new file mode 100644
index 0000000..92d407e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_authorizationStore_YAuthorizationStore.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_beanSlots_YBeanSlot.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_beanSlots_YBeanSlot.gif
new file mode 100644
index 0000000..9fcf2c7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_beanSlots_YBeanSlot.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_beanSlots_YDetailBeanSlot.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_beanSlots_YDetailBeanSlot.gif
new file mode 100644
index 0000000..8b6df37
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_beanSlots_YDetailBeanSlot.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_bindingSet_YBindingSet.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_bindingSet_YBindingSet.gif
new file mode 100644
index 0000000..dd977db
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_bindingSet_YBindingSet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_commandSet_YCommandSet.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_commandSet_YCommandSet.gif
new file mode 100644
index 0000000..e0a4541
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_commandSet_YCommandSet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YAction.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YAction.gif
new file mode 100644
index 0000000..9fcf2c7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YAction.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YField.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YField.gif
new file mode 100644
index 0000000..dd8ab8d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YHelperLayout.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YHelperLayout.gif
new file mode 100644
index 0000000..dd977db
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YHelperLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YLayout.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YLayout.gif
new file mode 100644
index 0000000..dd8ab8d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_content_YLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_dialogs_YDialog.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_dialogs_YDialog.gif
new file mode 100644
index 0000000..b981977
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_dialogs_YDialog.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_exposedActions_YExposedAction.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_exposedActions_YExposedAction.gif
new file mode 100644
index 0000000..28de654
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_exposedActions_YExposedAction.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_visibilityProcessors_YVisibilityProcessor.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_visibilityProcessors_YVisibilityProcessor.gif
new file mode 100644
index 0000000..5ced28c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYView_visibilityProcessors_YVisibilityProcessor.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_dataUsed_YListBinding.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_dataUsed_YListBinding.gif
new file mode 100644
index 0000000..676eb1d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_dataUsed_YListBinding.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_dataUsed_YValueBinding.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_dataUsed_YValueBinding.gif
new file mode 100644
index 0000000..99bb5cf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_dataUsed_YValueBinding.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_triggersOn_YListBinding.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_triggersOn_YListBinding.gif
new file mode 100644
index 0000000..676eb1d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_triggersOn_YListBinding.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_triggersOn_YValueBinding.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_triggersOn_YValueBinding.gif
new file mode 100644
index 0000000..99bb5cf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/ctool16/CreateYVisibilityProcessor_triggersOn_YValueBinding.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YAction.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YAction.gif
new file mode 100644
index 0000000..45731fe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YAction.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YActivatedEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YActivatedEndpoint.gif
new file mode 100644
index 0000000..48e3cf2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YActivatedEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YAuthorizationStore.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YAuthorizationStore.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YAuthorizationStore.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanSlot.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanSlot.gif
new file mode 100644
index 0000000..45731fe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanSlot.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanSlotListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanSlotListBindingEndpoint.gif
new file mode 100644
index 0000000..a17dc7d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanSlotListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanSlotValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanSlotValueBindingEndpoint.gif
new file mode 100644
index 0000000..c4a8af4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanSlotValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanValidationValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanValidationValidator.gif
new file mode 100644
index 0000000..33854e9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanValidationValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanValueBindingEndpoint.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBeanValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBinding.png b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBinding.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBinding.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBindingEndpoint.png b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBindingEndpoint.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBindingEndpoint.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBindingSet.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBindingSet.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBindingSet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBindingSet.png b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBindingSet.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YBindingSet.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YClassDelegateValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YClassDelegateValidator.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YClassDelegateValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YCommandSet.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YCommandSet.gif
new file mode 100644
index 0000000..d92f34c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YCommandSet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YContextValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YContextValueBindingEndpoint.gif
new file mode 100644
index 0000000..c3370c7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YContextValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDatadescription.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDatadescription.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDatadescription.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDelegateConverter.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDelegateConverter.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDelegateConverter.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDetailBeanSlot.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDetailBeanSlot.gif
new file mode 100644
index 0000000..e4bc22d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDetailBeanSlot.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDetailValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDetailValueBindingEndpoint.gif
new file mode 100644
index 0000000..a3908bc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDetailValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDialog.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDialog.gif
new file mode 100644
index 0000000..be22463
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDialog.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDtWrapper.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDtWrapper.gif
new file mode 100644
index 0000000..8a5c70c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YDtWrapper.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YECViewModelListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YECViewModelListBindingEndpoint.gif
new file mode 100644
index 0000000..498364f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YECViewModelListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YECViewModelValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YECViewModelValueBindingEndpoint.gif
new file mode 100644
index 0000000..7bac4fd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YECViewModelValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableCollectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableCollectionEndpoint.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableCollectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableMultiSelectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableMultiSelectionEndpoint.gif
new file mode 100644
index 0000000..420eee1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableMultiSelectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableSelectionEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableSelectionEndpoint.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableSelectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableValueEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableValueEndpoint.gif
new file mode 100644
index 0000000..05dc74a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEmbeddableValueEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEnumListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEnumListBindingEndpoint.gif
new file mode 100644
index 0000000..c3370c7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YEnumListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YExposedAction.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YExposedAction.gif
new file mode 100644
index 0000000..90d10f9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YExposedAction.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YField.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YField.gif
new file mode 100644
index 0000000..7bac4fd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YFieldAuthorization.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YFieldAuthorization.gif
new file mode 100644
index 0000000..98b351f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YFieldAuthorization.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YHelperLayout.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YHelperLayout.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YHelperLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YKeyStrokeDefinition.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YKeyStrokeDefinition.gif
new file mode 100644
index 0000000..d92f34c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YKeyStrokeDefinition.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YLayout.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YLayout.gif
new file mode 100644
index 0000000..7bac4fd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YListBinding.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YListBinding.gif
new file mode 100644
index 0000000..c3370c7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YListBinding.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YMaxLengthValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YMaxLengthValidator.gif
new file mode 100644
index 0000000..a17dc7d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YMaxLengthValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YMinLengthValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YMinLengthValidator.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YMinLengthValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YNoOpListBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YNoOpListBindingEndpoint.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YNoOpListBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YNoOpValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YNoOpValueBindingEndpoint.gif
new file mode 100644
index 0000000..f8041d2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YNoOpValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YOpenDialogCommand.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YOpenDialogCommand.gif
new file mode 100644
index 0000000..134551b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YOpenDialogCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YRegexpValidator.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YRegexpValidator.gif
new file mode 100644
index 0000000..33a997a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YRegexpValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YSendEventCommand.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YSendEventCommand.gif
new file mode 100644
index 0000000..05dc74a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YSendEventCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YStringToStringMap.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YStringToStringMap.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YStringToStringMap.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YValueBinding.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YValueBinding.gif
new file mode 100644
index 0000000..1e5345f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YValueBinding.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YView.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YView.gif
new file mode 100644
index 0000000..338fb8d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YView.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YViewSet.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YViewSet.gif
new file mode 100644
index 0000000..c414fe9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YViewSet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YVisibilityProcessorValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YVisibilityProcessorValueBindingEndpoint.gif
new file mode 100644
index 0000000..c673a52
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YVisibilityProcessorValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YVisibilityProperties.gif b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YVisibilityProperties.gif
new file mode 100644
index 0000000..caf2804
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/icons/full/obj16/YVisibilityProperties.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/license.html b/org.eclipse.osbp.ecview.core.common.model.edit/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/plugin.properties b/org.eclipse.osbp.ecview.core.common.model.edit/plugin.properties
new file mode 100644
index 0000000..770562d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/plugin.properties
@@ -0,0 +1,398 @@
+#
+
+pluginName = ECViewCore Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_YBindingSet_type = YBinding Set
+_UI_YBindingEndpoint_type = YBinding Endpoint
+_UI_YValueBindingEndpoint_type = YValue Binding Endpoint
+_UI_YBeanValueBindingEndpoint_type = YBean Value Binding Endpoint
+_UI_YDetailValueBindingEndpoint_type = YDetail Value Binding Endpoint
+_UI_YListBindingEndpoint_type = YList Binding Endpoint
+_UI_YBinding_type = YBinding
+_UI_YValueBinding_type = YValue Binding
+_UI_YListBinding_type = YList Binding
+_UI_YEnumListBindingEndpoint_type = YEnum List Binding Endpoint
+_UI_YECViewModelValueBindingEndpoint_type = YEC View Model Value Binding Endpoint
+_UI_YECViewModelListBindingEndpoint_type = YEC View Model List Binding Endpoint
+_UI_YVisibilityProcessorValueBindingEndpoint_type = YVisibility Processor Value Binding Endpoint
+_UI_YElement_type = YElement
+_UI_YStringToStringMap_type = YString To String Map
+_UI_YLayout_type = YLayout
+_UI_YField_type = YField
+_UI_YView_type = YView
+_UI_YViewSet_type = YView Set
+_UI_YBeanSlot_type = YBean Slot
+_UI_YEmbeddable_type = YEmbeddable
+_UI_YDialog_type = YDialog
+_UI_YCssAble_type = YCss Able
+_UI_YMarginable_type = YMarginable
+_UI_YSpacingable_type = YSpacingable
+_UI_YHeightable_type = YHeightable
+_UI_YWidthable_type = YWidthable
+_UI_YActivateable_type = YActivateable
+_UI_YVisibleable_type = YVisibleable
+_UI_YEditable_type = YEditable
+_UI_YEnable_type = YEnable
+_UI_YFocusable_type = YFocusable
+_UI_YAction_type = YAction
+_UI_YBindable_type = YBindable
+_UI_YValueBindable_type = YValue Bindable
+_UI_YSelectionBindable_type = YSelection Bindable
+_UI_YMultiSelectionBindable_type = YMulti Selection Bindable
+_UI_YCollectionBindable_type = YCollection Bindable
+_UI_YContextValueBindingEndpoint_type = YContext Value Binding Endpoint
+_UI_YBeanSlotValueBindingEndpoint_type = YBean Slot Value Binding Endpoint
+_UI_YBeanSlotListBindingEndpoint_type = YBean Slot List Binding Endpoint
+_UI_YEmbeddableBindingEndpoint_type = YEmbeddable Binding Endpoint
+_UI_YEmbeddableValueEndpoint_type = YEmbeddable Value Endpoint
+_UI_YEmbeddableSelectionEndpoint_type = YEmbeddable Selection Endpoint
+_UI_YEmbeddableMultiSelectionEndpoint_type = YEmbeddable Multi Selection Endpoint
+_UI_YEmbeddableCollectionEndpoint_type = YEmbeddable Collection Endpoint
+_UI_YActivatedEndpoint_type = YActivated Endpoint
+_UI_YDtWrapper_type = YDt Wrapper
+_UI_YCommand_type = YCommand
+_UI_YCommandSet_type = YCommand Set
+_UI_YOpenDialogCommand_type = YOpen Dialog Command
+_UI_YExposedAction_type = YExposed Action
+_UI_YSendEventCommand_type = YSend Event Command
+_UI_YKeyStrokeDefinition_type = YKey Stroke Definition
+_UI_YConverter_type = YConverter
+_UI_YDelegateConverter_type = YDelegate Converter
+_UI_YMemento_type = YMemento
+_UI_YValidator_type = YValidator
+_UI_YMinLengthValidator_type = YMin Length Validator
+_UI_YMaxLengthValidator_type = YMax Length Validator
+_UI_YRegexpValidator_type = YRegexp Validator
+_UI_YClassDelegateValidator_type = YClass Delegate Validator
+_UI_YBeanValidationValidator_type = YBean Validation Validator
+_UI_YValidationConfig_type = YValidation Config
+_UI_YMinLengthValidationConfig_type = YMin Length Validation Config
+_UI_YMaxLengthValidationConfig_type = YMax Length Validation Config
+_UI_YRegexpValidationConfig_type = YRegexp Validation Config
+_UI_YClassDelegateValidationConfig_type = YClass Delegate Validation Config
+_UI_YBeanValidationValidatorConfig_type = YBean Validation Validator Config
+_UI_YDtBase_type = YDt Base
+_UI_YDatatype_type = YDatatype
+_UI_YDatadescription_type = YDatadescription
+_UI_YVisibilityProcessor_type = YVisibility Processor
+_UI_YVisibilityProperties_type = YVisibility Properties
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_YBindingSet_bindings_feature = Bindings
+_UI_YBindingSet_transientBindings_feature = Transient Bindings
+_UI_YBeanValueBindingEndpoint_bean_feature = Bean
+_UI_YBeanValueBindingEndpoint_propertyPath_feature = Property Path
+_UI_YDetailValueBindingEndpoint_masterObservable_feature = Master Observable
+_UI_YDetailValueBindingEndpoint_features_feature = Features
+_UI_YDetailValueBindingEndpoint_propertyPath_feature = Property Path
+_UI_YDetailValueBindingEndpoint_type_feature = Type
+_UI_YBinding_modelToTargetStrategy_feature = Model To Target Strategy
+_UI_YBinding_targetToModelStrategy_feature = Target To Model Strategy
+_UI_YValueBinding_targetEndpoint_feature = Target Endpoint
+_UI_YValueBinding_modelEndpoint_feature = Model Endpoint
+_UI_YListBinding_targetEndpoint_feature = Target Endpoint
+_UI_YListBinding_modelEndpoint_feature = Model Endpoint
+_UI_YEnumListBindingEndpoint_enum_feature = Enum
+_UI_YECViewModelValueBindingEndpoint_element_feature = Element
+_UI_YECViewModelValueBindingEndpoint_features_feature = Features
+_UI_YECViewModelValueBindingEndpoint_propertyPath_feature = Property Path
+_UI_YECViewModelValueBindingEndpoint_type_feature = Type
+_UI_YECViewModelValueBindingEndpoint_typeQualifiedName_feature = Type Qualified Name
+_UI_YECViewModelValueBindingEndpoint_emfNsURI_feature = Emf Ns URI
+_UI_YECViewModelListBindingEndpoint_element_feature = Element
+_UI_YECViewModelListBindingEndpoint_features_feature = Features
+_UI_YECViewModelListBindingEndpoint_propertyPath_feature = Property Path
+_UI_YECViewModelListBindingEndpoint_type_feature = Type
+_UI_YECViewModelListBindingEndpoint_typeQualifiedName_feature = Type Qualified Name
+_UI_YECViewModelListBindingEndpoint_emfNsURI_feature = Emf Ns URI
+_UI_YVisibilityProcessorValueBindingEndpoint_processorInstance_feature = Processor Instance
+_UI_YVisibilityProcessorValueBindingEndpoint_property_feature = Property
+_UI_YElement_id_feature = Id
+_UI_YElement_name_feature = Name
+_UI_YElement_tags_feature = Tags
+_UI_YElement_properties_feature = Properties
+_UI_YStringToStringMap_key_feature = Key
+_UI_YStringToStringMap_value_feature = Value
+_UI_YLayout_elements_feature = Elements
+_UI_YField_validators_feature = Validators
+_UI_YField_internalValidators_feature = Internal Validators
+_UI_YField_converter_feature = Converter
+_UI_YView_root_feature = Root
+_UI_YView_viewName_feature = View Name
+_UI_YView_content_feature = Content
+_UI_YView_bindingSet_feature = Binding Set
+_UI_YView_beanSlots_feature = Bean Slots
+_UI_YView_commandSet_feature = Command Set
+_UI_YView_dialogs_feature = Dialogs
+_UI_YView_deviceType_feature = Device Type
+_UI_YView_contentAlignment_feature = Content Alignment
+_UI_YView_visibilityProcessors_feature = Visibility Processors
+_UI_YView_transientVisibilityProcessors_feature = Transient Visibility Processors
+_UI_YView_exposedActions_feature = Exposed Actions
+_UI_YView_sharedStateGroup_feature = Shared State Group
+_UI_YView_category_feature = Category
+_UI_YView_initialFocus_feature = Initial Focus
+_UI_YView_currentFocus_feature = Current Focus
+_UI_YViewSet_views_feature = Views
+_UI_YViewSet_beanSlots_feature = Bean Slots
+_UI_YBeanSlot_name_feature = Name
+_UI_YBeanSlot_valueType_feature = Value Type
+_UI_YBeanSlot_valueTypeQualifiedName_feature = Value Type Qualified Name
+_UI_YBeanSlot_eventTopic_feature = Event Topic
+_UI_YBeanSlot_redirectEvents_feature = Redirect Events
+_UI_YEmbeddable_orphanDatatypes_feature = Orphan Datatypes
+_UI_YEmbeddable_orphanDatadescriptions_feature = Orphan Datadescriptions
+_UI_YEmbeddable_mementoEnabled_feature = Memento Enabled
+_UI_YEmbeddable_mementoId_feature = Memento Id
+_UI_YDialog_content_feature = Content
+_UI_YDialog_modal_feature = Modal
+_UI_YDialog_resizeable_feature = Resizeable
+_UI_YDialog_draggable_feature = Draggable
+_UI_YDialog_closable_feature = Closable
+_UI_YDialog_value_feature = Value
+_UI_YDialog_type_feature = Type
+_UI_YDialog_emfNsURI_feature = Emf Ns URI
+_UI_YDialog_typeQualifiedName_feature = Type Qualified Name
+_UI_YDialog_datadescription_feature = Datadescription
+_UI_YCssAble_cssClass_feature = Css Class
+_UI_YCssAble_cssID_feature = Css ID
+_UI_YMarginable_margin_feature = Margin
+_UI_YSpacingable_spacing_feature = Spacing
+_UI_YHeightable_height_feature = Height
+_UI_YHeightable_heightUnit_feature = Height Unit
+_UI_YWidthable_width_feature = Width
+_UI_YWidthable_widthUnit_feature = Width Unit
+_UI_YActivateable_initialActivated_feature = Initial Activated
+_UI_YActivateable_activated_feature = Activated
+_UI_YVisibleable_initialVisible_feature = Initial Visible
+_UI_YVisibleable_visible_feature = Visible
+_UI_YEditable_initialEditable_feature = Initial Editable
+_UI_YEditable_editable_feature = Editable
+_UI_YEnable_initialEnabled_feature = Initial Enabled
+_UI_YEnable_enabled_feature = Enabled
+_UI_YFocusable_tabIndex_feature = Tab Index
+_UI_YValueBindable_valueBindingEndpoint_feature = Value Binding Endpoint
+_UI_YSelectionBindable_selectionBindingEndpoint_feature = Selection Binding Endpoint
+_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature = Multi Selection Binding Endpoint
+_UI_YCollectionBindable_collectionBindingEndpoint_feature = Collection Binding Endpoint
+_UI_YContextValueBindingEndpoint_urlString_feature = Url String
+_UI_YBeanSlotValueBindingEndpoint_attributePath_feature = Attribute Path
+_UI_YBeanSlotValueBindingEndpoint_beanSlot_feature = Bean Slot
+_UI_YBeanSlotListBindingEndpoint_attributePath_feature = Attribute Path
+_UI_YBeanSlotListBindingEndpoint_beanSlot_feature = Bean Slot
+_UI_YBeanSlotListBindingEndpoint_collectionType_feature = Collection Type
+_UI_YBeanSlotListBindingEndpoint_collectionTypeQualifiedName_feature = Collection Type Qualified Name
+_UI_YEmbeddableValueEndpoint_element_feature = Element
+_UI_YEmbeddableSelectionEndpoint_element_feature = Element
+_UI_YEmbeddableSelectionEndpoint_attributePath_feature = Attribute Path
+_UI_YEmbeddableMultiSelectionEndpoint_element_feature = Element
+_UI_YEmbeddableCollectionEndpoint_element_feature = Element
+_UI_YActivatedEndpoint_element_feature = Element
+_UI_YCommandSet_commands_feature = Commands
+_UI_YCommandSet_transientCommands_feature = Transient Commands
+_UI_YOpenDialogCommand_dialog_feature = Dialog
+_UI_YOpenDialogCommand_trigger_feature = Trigger
+_UI_YExposedAction_icon_feature = Icon
+_UI_YExposedAction_label_feature = Label
+_UI_YExposedAction_labelI18nKey_feature = Label I1 8n Key
+_UI_YExposedAction_externalClickTime_feature = External Click Time
+_UI_YExposedAction_internalClickTime_feature = Internal Click Time
+_UI_YExposedAction_executedNotificationTime_feature = Executed Notification Time
+_UI_YExposedAction_canceledNotificationTime_feature = Canceled Notification Time
+_UI_YExposedAction_checkDirty_feature = Check Dirty
+_UI_YExposedAction_externalCommandId_feature = External Command Id
+_UI_YSendEventCommand_eventTopic_feature = Event Topic
+_UI_YSendEventCommand_message_feature = Message
+_UI_YSendEventCommand_trigger_feature = Trigger
+_UI_YSendEventCommand_autoTrigger_feature = Auto Trigger
+_UI_YKeyStrokeDefinition_keyCode_feature = Key Code
+_UI_YKeyStrokeDefinition_modifierKeys_feature = Modifier Keys
+_UI_YDelegateConverter_converterId_feature = Converter Id
+_UI_YValidator_type_feature = Type
+_UI_YValidationConfig_errorCode_feature = Error Code
+_UI_YValidationConfig_defaultErrorMessage_feature = Default Error Message
+_UI_YMinLengthValidationConfig_minLength_feature = Min Length
+_UI_YMaxLengthValidationConfig_maxLength_feature = Max Length
+_UI_YRegexpValidationConfig_regExpression_feature = Reg Expression
+_UI_YClassDelegateValidationConfig_className_feature = Class Name
+_UI_YBeanValidationValidatorConfig_bvalClass_feature = Bval Class
+_UI_YBeanValidationValidatorConfig_bvalClassFullyQualifiedName_feature = Bval Class Fully Qualified Name
+_UI_YBeanValidationValidatorConfig_bvalProperty_feature = Bval Property
+_UI_YDtBase_description_feature = Description
+_UI_YDatatype_validators_feature = Validators
+_UI_YDatadescription_label_feature = Label
+_UI_YDatadescription_labelI18nKey_feature = Label I1 8n Key
+_UI_YVisibilityProcessor_dataUsed_feature = Data Used
+_UI_YVisibilityProcessor_triggersOn_feature = Triggers On
+_UI_YVisibilityProcessor_delegate_feature = Delegate
+_UI_YVisibilityProcessor_delegateQualifiedName_feature = Delegate Qualified Name
+_UI_YVisibilityProperties_visible_feature = Visible
+_UI_YVisibilityProperties_editable_feature = Editable
+_UI_YVisibilityProperties_enabled_feature = Enabled
+_UI_YVisibilityProperties_border_feature = Border
+_UI_YVisibilityProperties_bold_feature = Bold
+_UI_YVisibilityProperties_italic_feature = Italic
+_UI_YVisibilityProperties_strikethrough_feature = Strikethrough
+_UI_YVisibilityProperties_underline_feature = Underline
+_UI_YVisibilityProperties_backgroundColor_feature = Background Color
+_UI_YVisibilityProperties_foregroundColor_feature = Foreground Color
+_UI_YVisibilityProperties_backgroundColorCode_feature = Background Color Code
+_UI_YVisibilityProperties_foregroundColorCode_feature = Foreground Color Code
+_UI_YVisibilityProperties_cssClass_feature = Css Class
+_UI_YVisibilityProperties_cssId_feature = Css Id
+_UI_Unknown_feature = Unspecified
+
+_UI_YBindingUpdateStrategy_UPDATE_literal = UPDATE
+_UI_YBindingUpdateStrategy_ON_REQUEST_literal = ON_REQUEST
+_UI_YBindingUpdateStrategy_NEVER_literal = NEVER
+_UI_YDeviceType_IDE_literal = IDE
+_UI_YDeviceType_MOBILE_literal = MOBILE
+_UI_YAlignment_BOTTOM_LEFT_literal = BOTTOM_LEFT
+_UI_YAlignment_BOTTOM_CENTER_literal = BOTTOM_CENTER
+_UI_YAlignment_BOTTOM_RIGHT_literal = BOTTOM_RIGHT
+_UI_YAlignment_BOTTOM_FILL_literal = BOTTOM_FILL
+_UI_YAlignment_MIDDLE_LEFT_literal = MIDDLE_LEFT
+_UI_YAlignment_MIDDLE_CENTER_literal = MIDDLE_CENTER
+_UI_YAlignment_MIDDLE_RIGHT_literal = MIDDLE_RIGHT
+_UI_YAlignment_MIDDLE_FILL_literal = MIDDLE_FILL
+_UI_YAlignment_TOP_LEFT_literal = TOP_LEFT
+_UI_YAlignment_TOP_CENTER_literal = TOP_CENTER
+_UI_YAlignment_TOP_RIGHT_literal = TOP_RIGHT
+_UI_YAlignment_TOP_FILL_literal = TOP_FILL
+_UI_YAlignment_FILL_FILL_literal = FILL_FILL
+_UI_YAlignment_FILL_LEFT_literal = FILL_LEFT
+_UI_YAlignment_FILL_CENTER_literal = FILL_CENTER
+_UI_YAlignment_FILL_RIGHT_literal = FILL_RIGHT
+_UI_YAlignment_UNDEFINED_literal = UNDEFINED
+_UI_YFlatAlignment_LEFT_literal = LEFT
+_UI_YFlatAlignment_CENTER_literal = CENTER
+_UI_YFlatAlignment_RIGHT_literal = RIGHT
+_UI_YUnit_Pixel_literal = PIXEL
+_UI_YUnit_Em_literal = EM
+_UI_YKeyCode_ENTER_literal = ENTER
+_UI_YKeyCode_ESCAPE_literal = ESCAPE
+_UI_YKeyCode_PAGE_UP_literal = PAGE_UP
+_UI_YKeyCode_PAGE_DOWN_literal = PAGE_DOWN
+_UI_YKeyCode_TAB_literal = TAB
+_UI_YKeyCode_ARROW_LEFT_literal = ARROW_LEFT
+_UI_YKeyCode_ARROW_UP_literal = ARROW_UP
+_UI_YKeyCode_ARROW_RIGHT_literal = ARROW_RIGHT
+_UI_YKeyCode_ARROW_DOWN_literal = ARROW_DOWN
+_UI_YKeyCode_BACKSPACE_literal = BACKSPACE
+_UI_YKeyCode_DELETE_literal = DELETE
+_UI_YKeyCode_INSERT_literal = INSERT
+_UI_YKeyCode_END_literal = END
+_UI_YKeyCode_HOME_literal = HOME
+_UI_YKeyCode_F1_literal = F1
+_UI_YKeyCode_F2_literal = F2
+_UI_YKeyCode_F3_literal = F3
+_UI_YKeyCode_F4_literal = F4
+_UI_YKeyCode_F5_literal = F5
+_UI_YKeyCode_F6_literal = F6
+_UI_YKeyCode_F7_literal = F7
+_UI_YKeyCode_F8_literal = F8
+_UI_YKeyCode_F9_literal = F9
+_UI_YKeyCode_F10_literal = F10
+_UI_YKeyCode_F11_literal = F11
+_UI_YKeyCode_F12_literal = F12
+_UI_YKeyCode_A_literal = A
+_UI_YKeyCode_B_literal = B
+_UI_YKeyCode_C_literal = C
+_UI_YKeyCode_D_literal = D
+_UI_YKeyCode_E_literal = E
+_UI_YKeyCode_F_literal = F
+_UI_YKeyCode_G_literal = G
+_UI_YKeyCode_H_literal = H
+_UI_YKeyCode_I_literal = I
+_UI_YKeyCode_J_literal = J
+_UI_YKeyCode_K_literal = K
+_UI_YKeyCode_L_literal = L
+_UI_YKeyCode_M_literal = M
+_UI_YKeyCode_N_literal = N
+_UI_YKeyCode_O_literal = O
+_UI_YKeyCode_P_literal = P
+_UI_YKeyCode_Q_literal = Q
+_UI_YKeyCode_R_literal = R
+_UI_YKeyCode_S_literal = S
+_UI_YKeyCode_T_literal = T
+_UI_YKeyCode_U_literal = U
+_UI_YKeyCode_V_literal = V
+_UI_YKeyCode_W_literal = W
+_UI_YKeyCode_X_literal = X
+_UI_YKeyCode_Y_literal = Y
+_UI_YKeyCode_Z_literal = Z
+_UI_YKeyCode_NUM0_literal = NUM0
+_UI_YKeyCode_NUM1_literal = NUM1
+_UI_YKeyCode_NUM2_literal = NUM2
+_UI_YKeyCode_NUM3_literal = NUM3
+_UI_YKeyCode_NUM4_literal = NUM4
+_UI_YKeyCode_NUM5_literal = NUM5
+_UI_YKeyCode_NUM6_literal = NUM6
+_UI_YKeyCode_NUM7_literal = NUM7
+_UI_YKeyCode_NUM8_literal = NUM8
+_UI_YKeyCode_NUM9_literal = NUM9
+_UI_YKeyCode_SPACEBAR_literal = SPACEBAR
+_UI_YModifierKey_SHIFT_literal = SHIFT
+_UI_YModifierKey_CTRL_literal = CTRL
+_UI_YModifierKey_ALT_literal = ALT
+_UI_YModifierKey_META_literal = META
+_UI_YOrientation_HORIZONTAL_literal = HORIZONTAL
+_UI_YOrientation_VERTICAL_literal = VERTICAL
+_UI_YCompare_Equal_literal = EQ
+_UI_YCompare_GreaterThan_literal = GT
+_UI_YCompare_GreaterEqual_literal = GE
+_UI_YCompare_LowerThan_literal = LT
+_UI_YCompare_LowerEqual_literal = LE
+_UI_YCompare_NotEqual_literal = NEQ
+_UI_YColor_UNDEFINED_literal = UNDEFINED
+_UI_YColor_GREEN_literal = green
+_UI_YColor_BLUE_literal = blue
+_UI_YColor_YELLOW_literal = yellow
+_UI_YColor_RED_literal = red
+_UI_YColor_BLACK_literal = black
+_UI_YColor_WHITE_literal = white
+_UI_YColor_GRAY_literal = gray
+_UI_YColor_LIGHT_GRAY_literal = light-gray
+_UI_YColor_DARK_GRAY_literal = dark-gray
+_UI_YHelperLayoutProvider_type = YHelper Layout Provider
+_UI_YHelperLayout_type = YHelper Layout
+_UI_YAuthorizationable_type = YAuthorizationable
+_UI_YHelperLayout_virtualElements_feature = Virtual Elements
+_UI_YAuthorizationable_authorizationGroup_feature = Authorization Group
+_UI_YAuthorizationable_authorizationId_feature = Authorization Id
+_UI_YNoOpValueBindingEndpoint_type = YNo Op Value Binding Endpoint
+_UI_YNoOpListBindingEndpoint_type = YNo Op List Binding Endpoint
+_UI_YNoOpValueBindingEndpoint_element_feature = Element
+_UI_YNoOpListBindingEndpoint_element_feature = Element
+_UI_YAuthorizationStore_type = YAuthorization Store
+_UI_YAuthorization_type = YAuthorization
+_UI_YFieldAuthorization_type = YField Authorization
+_UI_YView_disabledElements_feature = Disabled Elements
+_UI_YView_authorizationStore_feature = Authorization Store
+_UI_YAuthorizationStore_authorizations_feature = Authorizations
+_UI_YFieldAuthorization_target_feature = Target
+_UI_YFieldAuthorization_blacklist_feature = Blacklist
+_UI_YFieldAuthorization_roles_feature = Roles
+_UI_YFieldAuthorization_actions_feature = Actions
+_UI_YAlignmentContainer_type = YAlignment Container
+_UI_YView_version_feature = Version
+_UI_YBeanSlot_tags_feature = Tags
+_UI_YTaggable_type = YTaggable
+_UI_YTaggable_tags_feature = Tags
+_UI_YDetailBeanSlot_type = YDetail Bean Slot
+_UI_YDetailBeanSlot_masterBeanSlot_feature = Master Bean Slot
+_UI_YDetailBeanSlot_propertyPath_feature = Property Path
+_UI_YEmbeddable_label_feature = Label
+_UI_YEmbeddable_labelI18nKey_feature = Label I1 8n Key
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/plugin.xml b/org.eclipse.osbp.ecview.core.common.model.edit/plugin.xml
new file mode 100644
index 0000000..1e43124
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/plugin.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/binding"
+            class="org.eclipse.osbp.ecview.core.common.model.binding.provider.BindingItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/view"
+            class="org.eclipse.osbp.ecview.core.common.model.core.provider.CoreModelItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/view/authorization"
+            class="org.eclipse.osbp.ecview.core.common.model.core.authorization.provider.AuthorizationItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/validation"
+            class="org.eclipse.osbp.ecview.core.common.model.validation.provider.ValidationItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/datatypes"
+            class="org.eclipse.osbp.ecview.core.common.model.datatypes.provider.DatatypesItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/visibility"
+            class="org.eclipse.osbp.ecview.core.common.model.visibility.provider.VisibilityItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/plugin.xml_old b/org.eclipse.osbp.ecview.core.common.model.edit/plugin.xml_old
new file mode 100644
index 0000000..dd8f2a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/plugin.xml_old
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/binding"
+            class="org.eclipse.osbp.ecview.core.common.model.binding.provider.BindingItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/view"
+            class="org.eclipse.osbp.ecview.core.common.model.core.provider.CoreModelItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource
+               org.eclipse.osbp.ecview.core.common.model.binding.util.IBoundElementItemProvider
+               org.eclipse.osbp.ecview.core.common.model.core.util.IBindableFeaturesItemProvider"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/view/authorization"
+            class="org.eclipse.osbp.ecview.core.common.model.core.authorization.provider.AuthorizationItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/validation"
+            class="org.eclipse.osbp.ecview.core.common.model.validation.provider.ValidationItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/datatypes"
+            class="org.eclipse.osbp.ecview.core.common.model.datatypes.provider.DatatypesItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated core -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/core/visibility"
+            class="org.eclipse.osbp.ecview.core.common.model.visibility.provider.VisibilityItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/pom.xml b/org.eclipse.osbp.ecview.core.common.model.edit/pom.xml
new file mode 100644
index 0000000..a060b9d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.common.model.edit</artifactId>
+  <description>Contains the core ECView-Model</description>
+  <packaging>eclipse-plugin</packaging>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	 <version>0.9.0-SNAPSHOT</version>
+  </parent>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/BindingItemProviderAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/BindingItemProviderAdapterFactory.java
new file mode 100644
index 0000000..2b067d2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/BindingItemProviderAdapterFactory.java
@@ -0,0 +1,489 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import java.util.List;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.util.BindingAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BindingItemProviderAdapterFactory extends BindingAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This helps manage the child creation extenders.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(ECViewCoreEditPlugin.INSTANCE, BindingPackage.eNS_URI);
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BindingItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBindingSetItemProvider yBindingSetItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBindingSetAdapter() {
+		if (yBindingSetItemProvider == null) {
+			yBindingSetItemProvider = new YBindingSetItemProvider(this);
+		}
+
+		return yBindingSetItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanValueBindingEndpointItemProvider yBeanValueBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBeanValueBindingEndpointAdapter() {
+		if (yBeanValueBindingEndpointItemProvider == null) {
+			yBeanValueBindingEndpointItemProvider = new YBeanValueBindingEndpointItemProvider(this);
+		}
+
+		return yBeanValueBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDetailValueBindingEndpointItemProvider yDetailValueBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDetailValueBindingEndpointAdapter() {
+		if (yDetailValueBindingEndpointItemProvider == null) {
+			yDetailValueBindingEndpointItemProvider = new YDetailValueBindingEndpointItemProvider(this);
+		}
+
+		return yDetailValueBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YValueBindingItemProvider yValueBindingItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYValueBindingAdapter() {
+		if (yValueBindingItemProvider == null) {
+			yValueBindingItemProvider = new YValueBindingItemProvider(this);
+		}
+
+		return yValueBindingItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YListBindingItemProvider yListBindingItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYListBindingAdapter() {
+		if (yListBindingItemProvider == null) {
+			yListBindingItemProvider = new YListBindingItemProvider(this);
+		}
+
+		return yListBindingItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEnumListBindingEndpointItemProvider yEnumListBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYEnumListBindingEndpointAdapter() {
+		if (yEnumListBindingEndpointItemProvider == null) {
+			yEnumListBindingEndpointItemProvider = new YEnumListBindingEndpointItemProvider(this);
+		}
+
+		return yEnumListBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YECViewModelValueBindingEndpointItemProvider yecViewModelValueBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYECViewModelValueBindingEndpointAdapter() {
+		if (yecViewModelValueBindingEndpointItemProvider == null) {
+			yecViewModelValueBindingEndpointItemProvider = new YECViewModelValueBindingEndpointItemProvider(this);
+		}
+
+		return yecViewModelValueBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YECViewModelListBindingEndpointItemProvider yecViewModelListBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYECViewModelListBindingEndpointAdapter() {
+		if (yecViewModelListBindingEndpointItemProvider == null) {
+			yecViewModelListBindingEndpointItemProvider = new YECViewModelListBindingEndpointItemProvider(this);
+		}
+
+		return yecViewModelListBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YVisibilityProcessorValueBindingEndpointItemProvider yVisibilityProcessorValueBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYVisibilityProcessorValueBindingEndpointAdapter() {
+		if (yVisibilityProcessorValueBindingEndpointItemProvider == null) {
+			yVisibilityProcessorValueBindingEndpointItemProvider = new YVisibilityProcessorValueBindingEndpointItemProvider(this);
+		}
+
+		return yVisibilityProcessorValueBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YNoOpValueBindingEndpointItemProvider yNoOpValueBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYNoOpValueBindingEndpointAdapter() {
+		if (yNoOpValueBindingEndpointItemProvider == null) {
+			yNoOpValueBindingEndpointItemProvider = new YNoOpValueBindingEndpointItemProvider(this);
+		}
+
+		return yNoOpValueBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YNoOpListBindingEndpointItemProvider yNoOpListBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYNoOpListBindingEndpointAdapter() {
+		if (yNoOpListBindingEndpointItemProvider == null) {
+			yNoOpListBindingEndpointItemProvider = new YNoOpListBindingEndpointItemProvider(this);
+		}
+
+		return yNoOpListBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<IChildCreationExtender> getChildCreationExtenders() {
+		return childCreationExtenderManager.getChildCreationExtenders();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+		return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return childCreationExtenderManager;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (yBindingSetItemProvider != null) yBindingSetItemProvider.dispose();
+		if (yBeanValueBindingEndpointItemProvider != null) yBeanValueBindingEndpointItemProvider.dispose();
+		if (yDetailValueBindingEndpointItemProvider != null) yDetailValueBindingEndpointItemProvider.dispose();
+		if (yValueBindingItemProvider != null) yValueBindingItemProvider.dispose();
+		if (yListBindingItemProvider != null) yListBindingItemProvider.dispose();
+		if (yEnumListBindingEndpointItemProvider != null) yEnumListBindingEndpointItemProvider.dispose();
+		if (yecViewModelValueBindingEndpointItemProvider != null) yecViewModelValueBindingEndpointItemProvider.dispose();
+		if (yecViewModelListBindingEndpointItemProvider != null) yecViewModelListBindingEndpointItemProvider.dispose();
+		if (yVisibilityProcessorValueBindingEndpointItemProvider != null) yVisibilityProcessorValueBindingEndpointItemProvider.dispose();
+		if (yNoOpValueBindingEndpointItemProvider != null) yNoOpValueBindingEndpointItemProvider.dispose();
+		if (yNoOpListBindingEndpointItemProvider != null) yNoOpListBindingEndpointItemProvider.dispose();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/ECViewCoreEditPlugin.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/ECViewCoreEditPlugin.java
new file mode 100644
index 0000000..2401aee
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/ECViewCoreEditPlugin.java
@@ -0,0 +1,100 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+
+
+/**
+ * This is the central singleton for the ECViewCore edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ECViewCoreEditPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final ECViewCoreEditPlugin INSTANCE = new ECViewCoreEditPlugin();
+
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ECViewCoreEditPlugin() {
+		super
+		  (new ResourceLocator [] {
+		   });
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipsePlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBeanValueBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBeanValueBindingEndpointItemProvider.java
new file mode 100644
index 0000000..e3bfffb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBeanValueBindingEndpointItemProvider.java
@@ -0,0 +1,171 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBeanValueBindingEndpointItemProvider extends YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanValueBindingEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addBeanPropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Bean feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBeanPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanValueBindingEndpoint_bean_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanValueBindingEndpoint_bean_feature", "_UI_YBeanValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YBEAN_VALUE_BINDING_ENDPOINT__BEAN,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanValueBindingEndpoint_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanValueBindingEndpoint_propertyPath_feature", "_UI_YBeanValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YBeanValueBindingEndpoint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBeanValueBindingEndpoint)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBeanValueBindingEndpoint_type") :
+			getString("_UI_YBeanValueBindingEndpoint_type") + " " + label;
+	}
+	
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		return null;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBeanValueBindingEndpoint.class)) {
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__BEAN:
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBindingEndpointItemProvider.java
new file mode 100644
index 0000000..2ce952b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBindingEndpointItemProvider.java
@@ -0,0 +1,279 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.util.IBoundElementItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * This is the item provider adapter for a
+ * {@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint}
+ * object. <!-- begin-user-doc --> <!-- end-user-doc -->
+ * 
+ * @generated NOT
+ */
+public class YBindingEndpointItemProvider extends ItemProviderAdapter implements
+		IEditingDomainItemProvider, IStructuredItemContentProvider,
+		ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource,
+		IBoundElementItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YBindingEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addTagsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add(createItemPropertyDescriptor(
+				((ComposeableAdapterFactory) adapterFactory)
+						.getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_YElement_id_feature"),
+				getString("_UI_PropertyDescriptor_description",
+						"_UI_YElement_id_feature", "_UI_YElement_type"),
+				CoreModelPackage.Literals.YELEMENT__ID, true, false, false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add(createItemPropertyDescriptor(
+				((ComposeableAdapterFactory) adapterFactory)
+						.getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_YElement_name_feature"),
+				getString("_UI_PropertyDescriptor_description",
+						"_UI_YElement_name_feature", "_UI_YElement_type"),
+				CoreModelPackage.Literals.YELEMENT__NAME, true, false, false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add(createItemPropertyDescriptor(
+				((ComposeableAdapterFactory) adapterFactory)
+						.getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_YElement_tags_feature"),
+				getString("_UI_PropertyDescriptor_description",
+						"_UI_YElement_tags_feature", "_UI_YElement_type"),
+				CoreModelPackage.Literals.YTAGGABLE__TAGS, true, false, false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to
+	 * deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand},
+	 * {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in
+	 * {@link #createCommand}. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(
+			Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures
+					.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper
+		// feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBindingEndpoint) object).getName();
+		return label == null || label.length() == 0 ? getString("_UI_YBindingEndpoint_type")
+				: getString("_UI_YBindingEndpoint_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to
+	 * update any cached children and by creating a viewer notification, which
+	 * it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBindingEndpoint.class)) {
+		case BindingPackage.YBINDING_ENDPOINT__ID:
+		case BindingPackage.YBINDING_ENDPOINT__NAME:
+		case BindingPackage.YBINDING_ENDPOINT__TAGS:
+			fireNotifyChanged(new ViewerNotification(notification,
+					notification.getNotifier(), false, true));
+			return;
+		case BindingPackage.YBINDING_ENDPOINT__PROPERTIES:
+			fireNotifyChanged(new ViewerNotification(notification,
+					notification.getNotifier(), true, false));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors
+				.add(createChildParameter(
+						CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+						CoreModelFactory.eINSTANCE
+								.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ECViewCoreEditPlugin.INSTANCE;
+	}
+
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		return null;
+	}
+
+	@Override
+	public EStructuralFeature getFirstBoundFeature(YBindingEndpoint object) {
+		return null;
+	}
+
+	@Override
+	public List<EStructuralFeature> getBoundFeatureList(YBindingEndpoint object) {
+		return Collections.emptyList();
+	}
+
+	/**
+	 * Resolves nested features separated by a doted property path. Eg
+	 * "person.name".
+	 * 
+	 * @param currentEClass
+	 * @param propertyPath
+	 * @return
+	 */
+	protected List<EStructuralFeature> resolveFeatureChain(
+			EClass currentEClass, String propertyPath) {
+		if (propertyPath == null || propertyPath.equals("")) {
+			return Collections.emptyList();
+		}
+		List<EStructuralFeature> result = new ArrayList<EStructuralFeature>();
+		String[] tokens = propertyPath.split("\\.");
+		for (String token : tokens) {
+			EStructuralFeature currentFeature = currentEClass
+					.getEStructuralFeature(token);
+			result.add(currentFeature);
+			currentEClass = (EClass) currentFeature.getEType();
+		}
+		return result;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBindingItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBindingItemProvider.java
new file mode 100644
index 0000000..7b1ccdd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBindingItemProvider.java
@@ -0,0 +1,293 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBindingItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addModelToTargetStrategyPropertyDescriptor(object);
+			addTargetToModelStrategyPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Model To Target Strategy feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addModelToTargetStrategyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBinding_modelToTargetStrategy_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBinding_modelToTargetStrategy_feature", "_UI_YBinding_type"),
+				 BindingPackage.Literals.YBINDING__MODEL_TO_TARGET_STRATEGY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Target To Model Strategy feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTargetToModelStrategyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBinding_targetToModelStrategy_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBinding_targetToModelStrategy_feature", "_UI_YBinding_type"),
+				 BindingPackage.Literals.YBINDING__TARGET_TO_MODEL_STRATEGY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBinding)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBinding_type") :
+			getString("_UI_YBinding_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBinding.class)) {
+			case BindingPackage.YBINDING__TAGS:
+			case BindingPackage.YBINDING__ID:
+			case BindingPackage.YBINDING__NAME:
+			case BindingPackage.YBINDING__MODEL_TO_TARGET_STRATEGY:
+			case BindingPackage.YBINDING__TARGET_TO_MODEL_STRATEGY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case BindingPackage.YBINDING__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBindingSetItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBindingSetItemProvider.java
new file mode 100644
index 0000000..c50f904
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YBindingSetItemProvider.java
@@ -0,0 +1,291 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBindingSetItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingSetItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addTransientBindingsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Transient Bindings feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTransientBindingsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBindingSet_transientBindings_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBindingSet_transientBindings_feature", "_UI_YBindingSet_type"),
+				 BindingPackage.Literals.YBINDING_SET__TRANSIENT_BINDINGS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(BindingPackage.Literals.YBINDING_SET__BINDINGS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YBindingSet.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBindingSet.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBindingSet)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBindingSet_type") :
+			getString("_UI_YBindingSet_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBindingSet.class)) {
+			case BindingPackage.YBINDING_SET__TAGS:
+			case BindingPackage.YBINDING_SET__ID:
+			case BindingPackage.YBINDING_SET__NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case BindingPackage.YBINDING_SET__PROPERTIES:
+			case BindingPackage.YBINDING_SET__BINDINGS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YBINDING_SET__BINDINGS,
+				 BindingFactory.eINSTANCE.createYValueBinding()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YBINDING_SET__BINDINGS,
+				 BindingFactory.eINSTANCE.createYListBinding()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YDetailValueBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YDetailValueBindingEndpointItemProvider.java
new file mode 100644
index 0000000..4d52763
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YDetailValueBindingEndpointItemProvider.java
@@ -0,0 +1,292 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.util.IBoundElementItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YDetailValueBindingEndpointItemProvider extends
+		YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YDetailValueBindingEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addFeaturesPropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Features feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addFeaturesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDetailValueBindingEndpoint_features_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDetailValueBindingEndpoint_features_feature", "_UI_YDetailValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__FEATURES,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDetailValueBindingEndpoint_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDetailValueBindingEndpoint_propertyPath_feature", "_UI_YDetailValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDetailValueBindingEndpoint_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDetailValueBindingEndpoint_type_feature", "_UI_YDetailValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(
+			Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YDetailValueBindingEndpoint.gif. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YDetailValueBindingEndpoint ep = (YDetailValueBindingEndpoint) object;
+		YValueBindingEndpoint masterEP = ep.getMasterObservable();
+
+		BindingItemProviderAdapterFactory adapterFactory = (BindingItemProviderAdapterFactory) getAdapterFactory();
+		IItemLabelProvider masterLabelProvider = (IItemLabelProvider) adapterFactory
+				.getRootAdapterFactory().adapt(masterEP,
+						IItemLabelProvider.class);
+		return masterLabelProvider.getText(masterEP) + "#"
+				+ ep.getPropertyPath() + getTextPrefix((YValueBindingEndpoint) object);
+	}
+	
+	@Override
+	public EObject getBoundElement(YBindingEndpoint object) {
+		YDetailValueBindingEndpoint ep = (YDetailValueBindingEndpoint) object;
+		YValueBindingEndpoint masterEP = ep.getMasterObservable();
+		
+		BindingItemProviderAdapterFactory adapterFactory = (BindingItemProviderAdapterFactory) getAdapterFactory();
+		IBoundElementItemProvider masterLabelProvider = (IBoundElementItemProvider) adapterFactory
+				.getRootAdapterFactory().adapt(masterEP,
+						IBoundElementItemProvider.class);
+		return masterLabelProvider.getBoundElement(masterEP);
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDetailValueBindingEndpoint.class)) {
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 BindingFactory.eINSTANCE.createYBeanValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 BindingFactory.eINSTANCE.createYDetailValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 BindingFactory.eINSTANCE.createYECViewModelValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 BindingFactory.eINSTANCE.createYVisibilityProcessorValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 BindingFactory.eINSTANCE.createYNoOpValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 CoreModelFactory.eINSTANCE.createYContextValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 CoreModelFactory.eINSTANCE.createYBeanSlotValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableValueEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableSelectionEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE,
+				 CoreModelFactory.eINSTANCE.createYActivatedEndpoint()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YECViewModelListBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YECViewModelListBindingEndpointItemProvider.java
new file mode 100644
index 0000000..1fb5916
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YECViewModelListBindingEndpointItemProvider.java
@@ -0,0 +1,303 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YECViewModelListBindingEndpointItemProvider extends
+		YListBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YECViewModelListBindingEndpointItemProvider(
+			AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addElementPropertyDescriptor(object);
+			addFeaturesPropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Element feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addElementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelListBindingEndpoint_element_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelListBindingEndpoint_element_feature", "_UI_YECViewModelListBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Features feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addFeaturesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelListBindingEndpoint_features_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelListBindingEndpoint_features_feature", "_UI_YECViewModelListBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__FEATURES,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelListBindingEndpoint_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelListBindingEndpoint_propertyPath_feature", "_UI_YECViewModelListBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelListBindingEndpoint_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelListBindingEndpoint_type_feature", "_UI_YECViewModelListBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelListBindingEndpoint_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelListBindingEndpoint_typeQualifiedName_feature", "_UI_YECViewModelListBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelListBindingEndpoint_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelListBindingEndpoint_emfNsURI_feature", "_UI_YECViewModelListBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YECViewModelListBindingEndpoint.gif. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YECViewModelListBindingEndpoint ep = (YECViewModelListBindingEndpoint) object;
+		IItemLabelProvider rootProvider = (IItemLabelProvider) getRootAdapterFactory()
+				.adapt(ep.getElement(), IItemLabelProvider.class);
+		return rootProvider.getText(ep.getElement()) + "#"
+				+ ep.getPropertyPath()
+				+ getTextPrefix((YListBindingEndpoint) object);
+	}
+
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		YECViewModelListBindingEndpoint temp = (YECViewModelListBindingEndpoint) ep;
+		return temp.getElement();
+	}
+
+	@Override
+	public EStructuralFeature getFirstBoundFeature(YBindingEndpoint object) {
+		YECViewModelListBindingEndpoint ep = (YECViewModelListBindingEndpoint) object;
+		if (!ep.getFeatures().isEmpty()) {
+			return ep.getFeatures().get(0);
+		}
+		if (ep.getPropertyPath() != null && !ep.getPropertyPath().equals("")) {
+			YElement element = (YElement) getBoundElement(object);
+			if (element != null) {
+				String[] tokens = ep.getPropertyPath().split("\\.");
+				if (tokens.length > 0) {
+					return element.eClass().getEStructuralFeature(tokens[0]);
+				}
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public List<EStructuralFeature> getBoundFeatureList(YBindingEndpoint object) {
+		YECViewModelListBindingEndpoint ep = (YECViewModelListBindingEndpoint) object;
+		if (!ep.getFeatures().isEmpty()) {
+			return Collections.unmodifiableList(ep.getFeatures());
+		}
+		YElement element = (YElement) getBoundElement(object);
+		if (element != null) {
+			return resolveFeatureChain(element.eClass(), ep.getPropertyPath());
+		}
+		return Collections.emptyList();
+	}
+	
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YECViewModelListBindingEndpoint.class)) {
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH:
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE:
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YECViewModelValueBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YECViewModelValueBindingEndpointItemProvider.java
new file mode 100644
index 0000000..042e815
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YECViewModelValueBindingEndpointItemProvider.java
@@ -0,0 +1,303 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YECViewModelValueBindingEndpointItemProvider extends
+		YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YECViewModelValueBindingEndpointItemProvider(
+			AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addElementPropertyDescriptor(object);
+			addFeaturesPropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Element feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addElementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelValueBindingEndpoint_element_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelValueBindingEndpoint_element_feature", "_UI_YECViewModelValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Features feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addFeaturesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelValueBindingEndpoint_features_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelValueBindingEndpoint_features_feature", "_UI_YECViewModelValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__FEATURES,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelValueBindingEndpoint_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelValueBindingEndpoint_propertyPath_feature", "_UI_YECViewModelValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelValueBindingEndpoint_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelValueBindingEndpoint_type_feature", "_UI_YECViewModelValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelValueBindingEndpoint_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelValueBindingEndpoint_typeQualifiedName_feature", "_UI_YECViewModelValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YECViewModelValueBindingEndpoint_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YECViewModelValueBindingEndpoint_emfNsURI_feature", "_UI_YECViewModelValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YECViewModelValueBindingEndpoint.gif. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YECViewModelValueBindingEndpoint ep = (YECViewModelValueBindingEndpoint) object;
+		IItemLabelProvider rootProvider = (IItemLabelProvider) getRootAdapterFactory()
+				.adapt(ep.getElement(), IItemLabelProvider.class);
+		return rootProvider.getText(ep.getElement()) + "#"
+				+ ep.getPropertyPath()
+				+ getTextPrefix((YValueBindingEndpoint) object);
+	}
+
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		YECViewModelValueBindingEndpoint temp = (YECViewModelValueBindingEndpoint) ep;
+		return temp.getElement();
+	}
+
+	@Override
+	public EStructuralFeature getFirstBoundFeature(YBindingEndpoint object) {
+		YECViewModelValueBindingEndpoint ep = (YECViewModelValueBindingEndpoint) object;
+		if (!ep.getFeatures().isEmpty()) {
+			return ep.getFeatures().get(0);
+		}
+		if (ep.getPropertyPath() != null && !ep.getPropertyPath().equals("")) {
+			YElement element = (YElement) getBoundElement(object);
+			if (element != null) {
+				String[] tokens = ep.getPropertyPath().split("\\.");
+				if (tokens.length > 0) {
+					return element.eClass().getEStructuralFeature(tokens[0]);
+				}
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public List<EStructuralFeature> getBoundFeatureList(YBindingEndpoint object) {
+		YECViewModelValueBindingEndpoint ep = (YECViewModelValueBindingEndpoint) object;
+		if (!ep.getFeatures().isEmpty()) {
+			return Collections.unmodifiableList(ep.getFeatures());
+		}
+		YElement element = (YElement) getBoundElement(object);
+		if (element != null) {
+			return resolveFeatureChain(element.eClass(), ep.getPropertyPath());
+		}
+		return Collections.emptyList();
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YECViewModelValueBindingEndpoint.class)) {
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE:
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YEnumListBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YEnumListBindingEndpointItemProvider.java
new file mode 100644
index 0000000..4a8f312
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YEnumListBindingEndpointItemProvider.java
@@ -0,0 +1,147 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YEnumListBindingEndpointItemProvider extends
+		YListBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YEnumListBindingEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addEnumPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Enum feature.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEnumPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumListBindingEndpoint_enum_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumListBindingEndpoint_enum_feature", "_UI_YEnumListBindingEndpoint_type"),
+				 BindingPackage.Literals.YENUM_LIST_BINDING_ENDPOINT__ENUM,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YEnumListBindingEndpoint.gif. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YEnumListBindingEndpoint) object).getName();
+		return label == null || label.length() == 0 ? getString("_UI_YEnumListBindingEndpoint_type")
+				+ getTextPrefix((YListBindingEndpoint) object)
+				: getString("_UI_YEnumListBindingEndpoint_type") + " " + label
+						+ getTextPrefix((YListBindingEndpoint) object);
+	}
+
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		return null;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YEnumListBindingEndpoint.class)) {
+			case BindingPackage.YENUM_LIST_BINDING_ENDPOINT__ENUM:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YListBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YListBindingEndpointItemProvider.java
new file mode 100644
index 0000000..3001499
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YListBindingEndpointItemProvider.java
@@ -0,0 +1,106 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YListBindingEndpointItemProvider extends
+		YBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YListBindingEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YListBindingEndpoint)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YListBindingEndpoint_type") :
+			getString("_UI_YListBindingEndpoint_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	protected String getTextPrefix(YListBindingEndpoint ep) {
+		EStructuralFeature feature = ep.eContainingFeature();
+		String type = " : target";
+		if (feature == BindingPackage.Literals.YLIST_BINDING__MODEL_ENDPOINT) {
+			type = " : model";
+		}
+		return type;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YListBindingItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YListBindingItemProvider.java
new file mode 100644
index 0000000..3568c13
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YListBindingItemProvider.java
@@ -0,0 +1,230 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YListBindingItemProvider extends YBindingItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YListBindingItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(
+			Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(BindingPackage.Literals.YLIST_BINDING__TARGET_ENDPOINT);
+			childrenFeatures.add(BindingPackage.Literals.YLIST_BINDING__MODEL_ENDPOINT);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YListBinding.gif. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YListBinding"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YListBinding binding = (YListBinding) object;
+		return "target: " + binding.getModelToTargetStrategy()
+				+ " | model: " + binding.getTargetToModelStrategy();
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YListBinding.class)) {
+			case BindingPackage.YLIST_BINDING__TARGET_ENDPOINT:
+			case BindingPackage.YLIST_BINDING__MODEL_ENDPOINT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__TARGET_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYEnumListBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__TARGET_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYECViewModelListBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__TARGET_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYNoOpListBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__TARGET_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYBeanSlotListBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__TARGET_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableMultiSelectionEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__TARGET_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableCollectionEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__MODEL_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYEnumListBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__MODEL_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYECViewModelListBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__MODEL_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYNoOpListBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__MODEL_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYBeanSlotListBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__MODEL_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableMultiSelectionEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YLIST_BINDING__MODEL_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableCollectionEndpoint()));
+	}
+
+	/**
+	 * This returns the label text for
+	 * {@link org.eclipse.emf.edit.command.CreateChildCommand}. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature,
+			Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == BindingPackage.Literals.YLIST_BINDING__TARGET_ENDPOINT ||
+			childFeature == BindingPackage.Literals.YLIST_BINDING__MODEL_ENDPOINT;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YNoOpListBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YNoOpListBindingEndpointItemProvider.java
new file mode 100644
index 0000000..7955ce0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YNoOpListBindingEndpointItemProvider.java
@@ -0,0 +1,133 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YNoOpListBindingEndpointItemProvider extends
+		YListBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YNoOpListBindingEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addElementPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Element feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addElementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNoOpListBindingEndpoint_element_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNoOpListBindingEndpoint_element_feature", "_UI_YNoOpListBindingEndpoint_type"),
+				 BindingPackage.Literals.YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YNoOpListBindingEndpoint.gif.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YNoOpListBindingEndpoint"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		return "#template" + getTextPrefix((YListBindingEndpoint) object);
+	}
+	
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		return null;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YNoOpValueBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YNoOpValueBindingEndpointItemProvider.java
new file mode 100644
index 0000000..97362dc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YNoOpValueBindingEndpointItemProvider.java
@@ -0,0 +1,134 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YNoOpValueBindingEndpointItemProvider extends
+		YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YNoOpValueBindingEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addElementPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Element feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addElementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNoOpValueBindingEndpoint_element_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNoOpValueBindingEndpoint_element_feature", "_UI_YNoOpValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YNoOpValueBindingEndpoint.gif.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YNoOpValueBindingEndpoint"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		return "#template"
+				+ getTextPrefix((YValueBindingEndpoint) object);
+	}
+	
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		return null;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YValueBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YValueBindingEndpointItemProvider.java
new file mode 100644
index 0000000..6d1f98d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YValueBindingEndpointItemProvider.java
@@ -0,0 +1,107 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YValueBindingEndpointItemProvider extends YBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YValueBindingEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YValueBindingEndpoint)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YValueBindingEndpoint_type") :
+			getString("_UI_YValueBindingEndpoint_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+	
+	protected String getTextPrefix(YValueBindingEndpoint ep) {
+		EStructuralFeature feature = ep.eContainingFeature();
+		String type = " : target";
+		if (feature == BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT) {
+			type = " : model";
+		}
+		return type;
+	}
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YValueBindingItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YValueBindingItemProvider.java
new file mode 100644
index 0000000..a05c620
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YValueBindingItemProvider.java
@@ -0,0 +1,271 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YValueBindingItemProvider extends YBindingItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YValueBindingItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(
+			Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT);
+			childrenFeatures.add(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YValueBinding.gif. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YValueBinding"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YValueBinding binding = (YValueBinding) object;
+		return "target: " + binding.getModelToTargetStrategy()
+				+ " | model: " + binding.getTargetToModelStrategy();
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YValueBinding.class)) {
+			case BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT:
+			case BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYBeanValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYDetailValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYECViewModelValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYVisibilityProcessorValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYNoOpValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYContextValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYBeanSlotValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableValueEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableSelectionEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYActivatedEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYBeanValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYDetailValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYECViewModelValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYVisibilityProcessorValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 BindingFactory.eINSTANCE.createYNoOpValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYContextValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYBeanSlotValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableValueEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableSelectionEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT,
+				 CoreModelFactory.eINSTANCE.createYActivatedEndpoint()));
+	}
+
+	/**
+	 * This returns the label text for
+	 * {@link org.eclipse.emf.edit.command.CreateChildCommand}. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature,
+			Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == BindingPackage.Literals.YVALUE_BINDING__TARGET_ENDPOINT ||
+			childFeature == BindingPackage.Literals.YVALUE_BINDING__MODEL_ENDPOINT;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YVisibilityProcessorValueBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YVisibilityProcessorValueBindingEndpointItemProvider.java
new file mode 100644
index 0000000..a4f796e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/binding/provider/YVisibilityProcessorValueBindingEndpointItemProvider.java
@@ -0,0 +1,176 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YVisibilityProcessorValueBindingEndpointItemProvider extends
+		YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YVisibilityProcessorValueBindingEndpointItemProvider(
+			AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addProcessorInstancePropertyDescriptor(object);
+			addPropertyPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Processor Instance feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addProcessorInstancePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProcessorValueBindingEndpoint_processorInstance_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProcessorValueBindingEndpoint_processorInstance_feature", "_UI_YVisibilityProcessorValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProcessorValueBindingEndpoint_property_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProcessorValueBindingEndpoint_property_feature", "_UI_YVisibilityProcessorValueBindingEndpoint_type"),
+				 BindingPackage.Literals.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YVisibilityProcessorValueBindingEndpoint.gif. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YVisibilityProcessorValueBindingEndpoint) object)
+				.getName();
+		return label == null || label.length() == 0 ? getString("_UI_YVisibilityProcessorValueBindingEndpoint_type")
+				+ getTextPrefix((YValueBindingEndpoint) object)
+				: getString("_UI_YVisibilityProcessorValueBindingEndpoint_type")
+						+ " "
+						+ label
+						+ getTextPrefix((YValueBindingEndpoint) object);
+	}
+
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		return null;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YVisibilityProcessorValueBindingEndpoint.class)) {
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE:
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/provider/AuthorizationItemProviderAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/provider/AuthorizationItemProviderAdapterFactory.java
new file mode 100644
index 0000000..c005ad5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/provider/AuthorizationItemProviderAdapterFactory.java
@@ -0,0 +1,234 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.util.AuthorizationAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AuthorizationItemProviderAdapterFactory extends AuthorizationAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YAuthorizationStoreItemProvider yAuthorizationStoreItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYAuthorizationStoreAdapter() {
+		if (yAuthorizationStoreItemProvider == null) {
+			yAuthorizationStoreItemProvider = new YAuthorizationStoreItemProvider(this);
+		}
+
+		return yAuthorizationStoreItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YFieldAuthorizationItemProvider yFieldAuthorizationItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYFieldAuthorizationAdapter() {
+		if (yFieldAuthorizationItemProvider == null) {
+			yFieldAuthorizationItemProvider = new YFieldAuthorizationItemProvider(this);
+		}
+
+		return yFieldAuthorizationItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (yAuthorizationStoreItemProvider != null) yAuthorizationStoreItemProvider.dispose();
+		if (yFieldAuthorizationItemProvider != null) yFieldAuthorizationItemProvider.dispose();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/provider/YAuthorizationStoreItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/provider/YAuthorizationStoreItemProvider.java
new file mode 100644
index 0000000..25a3eae
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/provider/YAuthorizationStoreItemProvider.java
@@ -0,0 +1,181 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YAuthorizationStoreItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YAuthorizationStoreItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(AuthorizationPackage.Literals.YAUTHORIZATION_STORE__AUTHORIZATIONS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YAuthorizationStore.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YAuthorizationStore"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_YAuthorizationStore_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YAuthorizationStore.class)) {
+			case AuthorizationPackage.YAUTHORIZATION_STORE__AUTHORIZATIONS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(AuthorizationPackage.Literals.YAUTHORIZATION_STORE__AUTHORIZATIONS,
+				 AuthorizationFactory.eINSTANCE.createYFieldAuthorization()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ECViewCoreEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/provider/YFieldAuthorizationItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/provider/YFieldAuthorizationItemProvider.java
new file mode 100644
index 0000000..10d66a1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/provider/YFieldAuthorizationItemProvider.java
@@ -0,0 +1,215 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YFieldAuthorizationItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFieldAuthorizationItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTargetPropertyDescriptor(object);
+			addRolesPropertyDescriptor(object);
+			addActionsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Target feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTargetPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFieldAuthorization_target_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFieldAuthorization_target_feature", "_UI_YFieldAuthorization_type"),
+				 AuthorizationPackage.Literals.YFIELD_AUTHORIZATION__TARGET,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Roles feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRolesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFieldAuthorization_roles_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFieldAuthorization_roles_feature", "_UI_YFieldAuthorization_type"),
+				 AuthorizationPackage.Literals.YFIELD_AUTHORIZATION__ROLES,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Actions feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addActionsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFieldAuthorization_actions_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFieldAuthorization_actions_feature", "_UI_YFieldAuthorization_type"),
+				 AuthorizationPackage.Literals.YFIELD_AUTHORIZATION__ACTIONS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YFieldAuthorization.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YFieldAuthorization"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_YFieldAuthorization_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YFieldAuthorization.class)) {
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ROLES:
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ACTIONS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ECViewCoreEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/CoreModelItemProviderAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/CoreModelItemProviderAdapterFactory.java
new file mode 100644
index 0000000..26c4e98
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/CoreModelItemProviderAdapterFactory.java
@@ -0,0 +1,826 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import java.util.List;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.util.CoreModelAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CoreModelItemProviderAdapterFactory extends CoreModelAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This helps manage the child creation extenders.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(ECViewCoreEditPlugin.INSTANCE, CoreModelPackage.eNS_URI);
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CoreModelItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link java.util.Map.Entry} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YStringToStringMapItemProvider yStringToStringMapItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link java.util.Map.Entry}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYStringToStringMapAdapter() {
+		if (yStringToStringMapItemProvider == null) {
+			yStringToStringMapItemProvider = new YStringToStringMapItemProvider(this);
+		}
+
+		return yStringToStringMapItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YLayout} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YLayoutItemProvider yLayoutItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YLayout}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYLayoutAdapter() {
+		if (yLayoutItemProvider == null) {
+			yLayoutItemProvider = new YLayoutItemProvider(this);
+		}
+
+		return yLayoutItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YHelperLayoutItemProvider yHelperLayoutItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYHelperLayoutAdapter() {
+		if (yHelperLayoutItemProvider == null) {
+			yHelperLayoutItemProvider = new YHelperLayoutItemProvider(this);
+		}
+
+		return yHelperLayoutItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YFieldItemProvider yFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYFieldAdapter() {
+		if (yFieldItemProvider == null) {
+			yFieldItemProvider = new YFieldItemProvider(this);
+		}
+
+		return yFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YView} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YViewItemProvider yViewItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YView}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYViewAdapter() {
+		if (yViewItemProvider == null) {
+			yViewItemProvider = new YViewItemProvider(this);
+		}
+
+		return yViewItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YViewSetItemProvider yViewSetItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYViewSetAdapter() {
+		if (yViewSetItemProvider == null) {
+			yViewSetItemProvider = new YViewSetItemProvider(this);
+		}
+
+		return yViewSetItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanSlotItemProvider yBeanSlotItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBeanSlotAdapter() {
+		if (yBeanSlotItemProvider == null) {
+			yBeanSlotItemProvider = new YBeanSlotItemProvider(this);
+		}
+
+		return yBeanSlotItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDetailBeanSlotItemProvider yDetailBeanSlotItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDetailBeanSlotAdapter() {
+		if (yDetailBeanSlotItemProvider == null) {
+			yDetailBeanSlotItemProvider = new YDetailBeanSlotItemProvider(this);
+		}
+
+		return yDetailBeanSlotItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YDialog} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDialogItemProvider yDialogItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YDialog}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDialogAdapter() {
+		if (yDialogItemProvider == null) {
+			yDialogItemProvider = new YDialogItemProvider(this);
+		}
+
+		return yDialogItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YAction} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YActionItemProvider yActionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYActionAdapter() {
+		if (yActionItemProvider == null) {
+			yActionItemProvider = new YActionItemProvider(this);
+		}
+
+		return yActionItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YContextValueBindingEndpointItemProvider yContextValueBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYContextValueBindingEndpointAdapter() {
+		if (yContextValueBindingEndpointItemProvider == null) {
+			yContextValueBindingEndpointItemProvider = new YContextValueBindingEndpointItemProvider(this);
+		}
+
+		return yContextValueBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanSlotValueBindingEndpointItemProvider yBeanSlotValueBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBeanSlotValueBindingEndpointAdapter() {
+		if (yBeanSlotValueBindingEndpointItemProvider == null) {
+			yBeanSlotValueBindingEndpointItemProvider = new YBeanSlotValueBindingEndpointItemProvider(this);
+		}
+
+		return yBeanSlotValueBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanSlotListBindingEndpointItemProvider yBeanSlotListBindingEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBeanSlotListBindingEndpointAdapter() {
+		if (yBeanSlotListBindingEndpointItemProvider == null) {
+			yBeanSlotListBindingEndpointItemProvider = new YBeanSlotListBindingEndpointItemProvider(this);
+		}
+
+		return yBeanSlotListBindingEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableValueEndpointItemProvider yEmbeddableValueEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYEmbeddableValueEndpointAdapter() {
+		if (yEmbeddableValueEndpointItemProvider == null) {
+			yEmbeddableValueEndpointItemProvider = new YEmbeddableValueEndpointItemProvider(this);
+		}
+
+		return yEmbeddableValueEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableSelectionEndpointItemProvider yEmbeddableSelectionEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYEmbeddableSelectionEndpointAdapter() {
+		if (yEmbeddableSelectionEndpointItemProvider == null) {
+			yEmbeddableSelectionEndpointItemProvider = new YEmbeddableSelectionEndpointItemProvider(this);
+		}
+
+		return yEmbeddableSelectionEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableMultiSelectionEndpointItemProvider yEmbeddableMultiSelectionEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYEmbeddableMultiSelectionEndpointAdapter() {
+		if (yEmbeddableMultiSelectionEndpointItemProvider == null) {
+			yEmbeddableMultiSelectionEndpointItemProvider = new YEmbeddableMultiSelectionEndpointItemProvider(this);
+		}
+
+		return yEmbeddableMultiSelectionEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableCollectionEndpointItemProvider yEmbeddableCollectionEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYEmbeddableCollectionEndpointAdapter() {
+		if (yEmbeddableCollectionEndpointItemProvider == null) {
+			yEmbeddableCollectionEndpointItemProvider = new YEmbeddableCollectionEndpointItemProvider(this);
+		}
+
+		return yEmbeddableCollectionEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YActivatedEndpointItemProvider yActivatedEndpointItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYActivatedEndpointAdapter() {
+		if (yActivatedEndpointItemProvider == null) {
+			yActivatedEndpointItemProvider = new YActivatedEndpointItemProvider(this);
+		}
+
+		return yActivatedEndpointItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDtWrapperItemProvider yDtWrapperItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDtWrapperAdapter() {
+		if (yDtWrapperItemProvider == null) {
+			yDtWrapperItemProvider = new YDtWrapperItemProvider(this);
+		}
+
+		return yDtWrapperItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YCommandSet} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YCommandSetItemProvider yCommandSetItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YCommandSet}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYCommandSetAdapter() {
+		if (yCommandSetItemProvider == null) {
+			yCommandSetItemProvider = new YCommandSetItemProvider(this);
+		}
+
+		return yCommandSetItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YOpenDialogCommandItemProvider yOpenDialogCommandItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYOpenDialogCommandAdapter() {
+		if (yOpenDialogCommandItemProvider == null) {
+			yOpenDialogCommandItemProvider = new YOpenDialogCommandItemProvider(this);
+		}
+
+		return yOpenDialogCommandItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YExposedActionItemProvider yExposedActionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYExposedActionAdapter() {
+		if (yExposedActionItemProvider == null) {
+			yExposedActionItemProvider = new YExposedActionItemProvider(this);
+		}
+
+		return yExposedActionItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSendEventCommandItemProvider ySendEventCommandItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYSendEventCommandAdapter() {
+		if (ySendEventCommandItemProvider == null) {
+			ySendEventCommandItemProvider = new YSendEventCommandItemProvider(this);
+		}
+
+		return ySendEventCommandItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YKeyStrokeDefinitionItemProvider yKeyStrokeDefinitionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYKeyStrokeDefinitionAdapter() {
+		if (yKeyStrokeDefinitionItemProvider == null) {
+			yKeyStrokeDefinitionItemProvider = new YKeyStrokeDefinitionItemProvider(this);
+		}
+
+		return yKeyStrokeDefinitionItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDelegateConverterItemProvider yDelegateConverterItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDelegateConverterAdapter() {
+		if (yDelegateConverterItemProvider == null) {
+			yDelegateConverterItemProvider = new YDelegateConverterItemProvider(this);
+		}
+
+		return yDelegateConverterItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<IChildCreationExtender> getChildCreationExtenders() {
+		return childCreationExtenderManager.getChildCreationExtenders();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+		return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return childCreationExtenderManager;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (yStringToStringMapItemProvider != null) yStringToStringMapItemProvider.dispose();
+		if (yLayoutItemProvider != null) yLayoutItemProvider.dispose();
+		if (yHelperLayoutItemProvider != null) yHelperLayoutItemProvider.dispose();
+		if (yFieldItemProvider != null) yFieldItemProvider.dispose();
+		if (yViewItemProvider != null) yViewItemProvider.dispose();
+		if (yViewSetItemProvider != null) yViewSetItemProvider.dispose();
+		if (yBeanSlotItemProvider != null) yBeanSlotItemProvider.dispose();
+		if (yDetailBeanSlotItemProvider != null) yDetailBeanSlotItemProvider.dispose();
+		if (yDialogItemProvider != null) yDialogItemProvider.dispose();
+		if (yActionItemProvider != null) yActionItemProvider.dispose();
+		if (yContextValueBindingEndpointItemProvider != null) yContextValueBindingEndpointItemProvider.dispose();
+		if (yBeanSlotValueBindingEndpointItemProvider != null) yBeanSlotValueBindingEndpointItemProvider.dispose();
+		if (yBeanSlotListBindingEndpointItemProvider != null) yBeanSlotListBindingEndpointItemProvider.dispose();
+		if (yEmbeddableValueEndpointItemProvider != null) yEmbeddableValueEndpointItemProvider.dispose();
+		if (yEmbeddableSelectionEndpointItemProvider != null) yEmbeddableSelectionEndpointItemProvider.dispose();
+		if (yEmbeddableMultiSelectionEndpointItemProvider != null) yEmbeddableMultiSelectionEndpointItemProvider.dispose();
+		if (yEmbeddableCollectionEndpointItemProvider != null) yEmbeddableCollectionEndpointItemProvider.dispose();
+		if (yActivatedEndpointItemProvider != null) yActivatedEndpointItemProvider.dispose();
+		if (yDtWrapperItemProvider != null) yDtWrapperItemProvider.dispose();
+		if (yCommandSetItemProvider != null) yCommandSetItemProvider.dispose();
+		if (yOpenDialogCommandItemProvider != null) yOpenDialogCommandItemProvider.dispose();
+		if (yExposedActionItemProvider != null) yExposedActionItemProvider.dispose();
+		if (ySendEventCommandItemProvider != null) ySendEventCommandItemProvider.dispose();
+		if (yKeyStrokeDefinitionItemProvider != null) yKeyStrokeDefinitionItemProvider.dispose();
+		if (yDelegateConverterItemProvider != null) yDelegateConverterItemProvider.dispose();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YActionItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YActionItemProvider.java
new file mode 100644
index 0000000..3e99b18
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YActionItemProvider.java
@@ -0,0 +1,165 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YAction} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YActionItemProvider extends YEmbeddableItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YActionItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addInitialEnabledPropertyDescriptor(object);
+			addEnabledPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitialEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnable_initialEnabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnable_initialEnabled_feature", "_UI_YEnable_type"),
+				 CoreModelPackage.Literals.YENABLE__INITIAL_ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnable_enabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnable_enabled_feature", "_UI_YEnable_type"),
+				 CoreModelPackage.Literals.YENABLE__ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YAction.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YAction"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YAction)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YAction_type") :
+			getString("_UI_YAction_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YAction.class)) {
+			case CoreModelPackage.YACTION__INITIAL_ENABLED:
+			case CoreModelPackage.YACTION__ENABLED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YActivatedEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YActivatedEndpointItemProvider.java
new file mode 100644
index 0000000..52832ae
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YActivatedEndpointItemProvider.java
@@ -0,0 +1,156 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.YValueBindingEndpointItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YActivatedEndpointItemProvider extends
+		YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YActivatedEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addElementPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Element feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addElementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YActivatedEndpoint_element_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YActivatedEndpoint_element_feature", "_UI_YActivatedEndpoint_type"),
+				 CoreModelPackage.Literals.YACTIVATED_ENDPOINT__ELEMENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YActivatedEndpoint.gif. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YActivatedEndpoint ep = (YActivatedEndpoint) object;
+		IItemLabelProvider rootProvider = (IItemLabelProvider) getRootAdapterFactory()
+				.adapt(ep.getElement(), IItemLabelProvider.class);
+		return rootProvider.getText(ep.getElement()) + "#activted"
+				+ getTextPrefix((YValueBindingEndpoint) object);
+	}
+
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		YActivatedEndpoint temp = (YActivatedEndpoint) ep;
+		return temp.getElement();
+	}
+
+	@Override
+	public EStructuralFeature getFirstBoundFeature(YBindingEndpoint object) {
+		YActivatedEndpoint ep = (YActivatedEndpoint) object;
+		EObject boundElement = getBoundElement(ep);
+		return boundElement.eClass().getEStructuralFeature("activated");
+	}
+
+	@Override
+	public List<EStructuralFeature> getBoundFeatureList(
+			YBindingEndpoint object) {
+		return Collections.singletonList(getFirstBoundFeature(object));
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YBeanSlotItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YBeanSlotItemProvider.java
new file mode 100644
index 0000000..44624e8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YBeanSlotItemProvider.java
@@ -0,0 +1,286 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBeanSlotItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanSlotItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addValueTypePropertyDescriptor(object);
+			addValueTypeQualifiedNamePropertyDescriptor(object);
+			addEventTopicPropertyDescriptor(object);
+			addRedirectEventsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlot_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlot_name_feature", "_UI_YBeanSlot_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlot_valueType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlot_valueType_feature", "_UI_YBeanSlot_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT__VALUE_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlot_valueTypeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlot_valueTypeQualifiedName_feature", "_UI_YBeanSlot_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Event Topic feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEventTopicPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlot_eventTopic_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlot_eventTopic_feature", "_UI_YBeanSlot_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT__EVENT_TOPIC,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Redirect Events feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRedirectEventsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlot_redirectEvents_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlot_redirectEvents_feature", "_UI_YBeanSlot_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT__REDIRECT_EVENTS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YBeanSlot.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBeanSlot"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBeanSlot)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBeanSlot_type") :
+			getString("_UI_YBeanSlot_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBeanSlot.class)) {
+			case CoreModelPackage.YBEAN_SLOT__TAGS:
+			case CoreModelPackage.YBEAN_SLOT__NAME:
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE:
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME:
+			case CoreModelPackage.YBEAN_SLOT__EVENT_TOPIC:
+			case CoreModelPackage.YBEAN_SLOT__REDIRECT_EVENTS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YBeanSlotListBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YBeanSlotListBindingEndpointItemProvider.java
new file mode 100644
index 0000000..092a174
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YBeanSlotListBindingEndpointItemProvider.java
@@ -0,0 +1,220 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.YListBindingEndpointItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YBeanSlotListBindingEndpointItemProvider extends
+		YListBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YBeanSlotListBindingEndpointItemProvider(
+			AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addAttributePathPropertyDescriptor(object);
+			addBeanSlotPropertyDescriptor(object);
+			addCollectionTypePropertyDescriptor(object);
+			addCollectionTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Attribute Path feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addAttributePathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlotListBindingEndpoint_attributePath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlotListBindingEndpoint_attributePath_feature", "_UI_YBeanSlotListBindingEndpoint_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Bean Slot feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addBeanSlotPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlotListBindingEndpoint_beanSlot_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlotListBindingEndpoint_beanSlot_feature", "_UI_YBeanSlotListBindingEndpoint_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Type feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addCollectionTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlotListBindingEndpoint_collectionType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlotListBindingEndpoint_collectionType_feature", "_UI_YBeanSlotListBindingEndpoint_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Type Qualified Name feature.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionTypeQualifiedNamePropertyDescriptor(
+			Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlotListBindingEndpoint_collectionTypeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlotListBindingEndpoint_collectionTypeQualifiedName_feature", "_UI_YBeanSlotListBindingEndpoint_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YBeanSlotListBindingEndpoint.gif. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(
+				object,
+				getResourceLocator().getImage(
+						"full/obj16/YBeanSlotListBindingEndpoint.gif"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YBeanSlotListBindingEndpoint ep = (YBeanSlotListBindingEndpoint) object;
+		return "slot: " + ep.getBeanSlot().getName() + "/"
+				+ ep.getAttributePath()
+				+ getTextPrefix((YListBindingEndpoint) object);
+	}
+	
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		YBeanSlotListBindingEndpoint temp = (YBeanSlotListBindingEndpoint) ep;
+		return temp.getBeanSlot();
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBeanSlotListBindingEndpoint.class)) {
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE:
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YBeanSlotValueBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YBeanSlotValueBindingEndpointItemProvider.java
new file mode 100644
index 0000000..5c74abc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YBeanSlotValueBindingEndpointItemProvider.java
@@ -0,0 +1,171 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.YValueBindingEndpointItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YBeanSlotValueBindingEndpointItemProvider extends
+		YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YBeanSlotValueBindingEndpointItemProvider(
+			AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addAttributePathPropertyDescriptor(object);
+			addBeanSlotPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Attribute Path feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addAttributePathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlotValueBindingEndpoint_attributePath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlotValueBindingEndpoint_attributePath_feature", "_UI_YBeanSlotValueBindingEndpoint_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Bean Slot feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addBeanSlotPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanSlotValueBindingEndpoint_beanSlot_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanSlotValueBindingEndpoint_beanSlot_feature", "_UI_YBeanSlotValueBindingEndpoint_type"),
+				 CoreModelPackage.Literals.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YBeanSlotValueBindingEndpoint.gif. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/YBeanSlotValueBindingEndpoint.gif"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 */
+	@Override
+	public String getText(Object object) {
+		YBeanSlotValueBindingEndpoint ep = (YBeanSlotValueBindingEndpoint) object;
+		return "slot: " + ep.getBeanSlot().getName() + "/"
+				+ ep.getAttributePath() + getTextPrefix((YValueBindingEndpoint) object);
+	}
+	
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		YBeanSlotValueBindingEndpoint temp = (YBeanSlotValueBindingEndpoint) ep;
+		return temp.getBeanSlot();
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBeanSlotValueBindingEndpoint.class)) {
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YCommandSetItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YCommandSetItemProvider.java
new file mode 100644
index 0000000..d47ebec
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YCommandSetItemProvider.java
@@ -0,0 +1,289 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YCommandSet} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YCommandSetItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YCommandSetItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addTransientCommandsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Transient Commands feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTransientCommandsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCommandSet_transientCommands_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCommandSet_transientCommands_feature", "_UI_YCommandSet_type"),
+				 CoreModelPackage.Literals.YCOMMAND_SET__TRANSIENT_COMMANDS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(CoreModelPackage.Literals.YCOMMAND_SET__COMMANDS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YCommandSet.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YCommandSet"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YCommandSet)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YCommandSet_type") :
+			getString("_UI_YCommandSet_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YCommandSet.class)) {
+			case CoreModelPackage.YCOMMAND_SET__TAGS:
+			case CoreModelPackage.YCOMMAND_SET__ID:
+			case CoreModelPackage.YCOMMAND_SET__NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YCOMMAND_SET__PROPERTIES:
+			case CoreModelPackage.YCOMMAND_SET__COMMANDS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YCOMMAND_SET__COMMANDS,
+				 CoreModelFactory.eINSTANCE.createYOpenDialogCommand()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YCOMMAND_SET__COMMANDS,
+				 CoreModelFactory.eINSTANCE.createYSendEventCommand()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YContextValueBindingEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YContextValueBindingEndpointItemProvider.java
new file mode 100644
index 0000000..964e0b2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YContextValueBindingEndpointItemProvider.java
@@ -0,0 +1,146 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.YValueBindingEndpointItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YContextValueBindingEndpointItemProvider extends YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YContextValueBindingEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addUrlStringPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Url String feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUrlStringPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YContextValueBindingEndpoint_urlString_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YContextValueBindingEndpoint_urlString_feature", "_UI_YContextValueBindingEndpoint_type"),
+				 CoreModelPackage.Literals.YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YContextValueBindingEndpoint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YContextValueBindingEndpoint)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YContextValueBindingEndpoint_type") :
+			getString("_UI_YContextValueBindingEndpoint_type") + " " + label;
+	}
+	
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		return null;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YContextValueBindingEndpoint.class)) {
+			case CoreModelPackage.YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDelegateConverterItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDelegateConverterItemProvider.java
new file mode 100644
index 0000000..8497419
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDelegateConverterItemProvider.java
@@ -0,0 +1,278 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YDelegateConverterItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDelegateConverterItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addConverterIdPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Converter Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addConverterIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDelegateConverter_converterId_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDelegateConverter_converterId_feature", "_UI_YDelegateConverter_type"),
+				 CoreModelPackage.Literals.YDELEGATE_CONVERTER__CONVERTER_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YDelegateConverter.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YDelegateConverter"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YDelegateConverter)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YDelegateConverter_type") :
+			getString("_UI_YDelegateConverter_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDelegateConverter.class)) {
+			case CoreModelPackage.YDELEGATE_CONVERTER__TAGS:
+			case CoreModelPackage.YDELEGATE_CONVERTER__ID:
+			case CoreModelPackage.YDELEGATE_CONVERTER__NAME:
+			case CoreModelPackage.YDELEGATE_CONVERTER__CONVERTER_ID:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YDELEGATE_CONVERTER__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDetailBeanSlotItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDetailBeanSlotItemProvider.java
new file mode 100644
index 0000000..b75b725
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDetailBeanSlotItemProvider.java
@@ -0,0 +1,166 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YDetailBeanSlotItemProvider extends YBeanSlotItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDetailBeanSlotItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addMasterBeanSlotPropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Master Bean Slot feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMasterBeanSlotPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDetailBeanSlot_masterBeanSlot_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDetailBeanSlot_masterBeanSlot_feature", "_UI_YDetailBeanSlot_type"),
+				 CoreModelPackage.Literals.YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDetailBeanSlot_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDetailBeanSlot_propertyPath_feature", "_UI_YDetailBeanSlot_type"),
+				 CoreModelPackage.Literals.YDETAIL_BEAN_SLOT__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YDetailBeanSlot.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YDetailBeanSlot"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YDetailBeanSlot)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YDetailBeanSlot_type") :
+			getString("_UI_YDetailBeanSlot_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDetailBeanSlot.class)) {
+			case CoreModelPackage.YDETAIL_BEAN_SLOT__PROPERTY_PATH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDialogItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDialogItemProvider.java
new file mode 100644
index 0000000..8794b0c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDialogItemProvider.java
@@ -0,0 +1,547 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YDialog} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YDialogItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDialogItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addValueBindingEndpointPropertyDescriptor(object);
+			addCssClassPropertyDescriptor(object);
+			addCssIDPropertyDescriptor(object);
+			addModalPropertyDescriptor(object);
+			addResizeablePropertyDescriptor(object);
+			addDraggablePropertyDescriptor(object);
+			addClosablePropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css Class feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCssClassPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssAble_cssClass_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssAble_cssClass_feature", "_UI_YCssAble_type"),
+				 CoreModelPackage.Literals.YCSS_ABLE__CSS_CLASS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css ID feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCssIDPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssAble_cssID_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssAble_cssID_feature", "_UI_YCssAble_type"),
+				 CoreModelPackage.Literals.YCSS_ABLE__CSS_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Modal feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addModalPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDialog_modal_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDialog_modal_feature", "_UI_YDialog_type"),
+				 CoreModelPackage.Literals.YDIALOG__MODAL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Resizeable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addResizeablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDialog_resizeable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDialog_resizeable_feature", "_UI_YDialog_type"),
+				 CoreModelPackage.Literals.YDIALOG__RESIZEABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Draggable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDraggablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDialog_draggable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDialog_draggable_feature", "_UI_YDialog_type"),
+				 CoreModelPackage.Literals.YDIALOG__DRAGGABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Closable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addClosablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDialog_closable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDialog_closable_feature", "_UI_YDialog_type"),
+				 CoreModelPackage.Literals.YDIALOG__CLOSABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDialog_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDialog_value_feature", "_UI_YDialog_type"),
+				 CoreModelPackage.Literals.YDIALOG__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDialog_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDialog_type_feature", "_UI_YDialog_type"),
+				 CoreModelPackage.Literals.YDIALOG__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDialog_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDialog_emfNsURI_feature", "_UI_YDialog_type"),
+				 CoreModelPackage.Literals.YDIALOG__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDialog_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDialog_typeQualifiedName_feature", "_UI_YDialog_type"),
+				 CoreModelPackage.Literals.YDIALOG__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(CoreModelPackage.Literals.YDIALOG__CONTENT);
+			childrenFeatures.add(CoreModelPackage.Literals.YDIALOG__DATADESCRIPTION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YDialog.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YDialog"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YDialog)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YDialog_type") :
+			getString("_UI_YDialog_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDialog.class)) {
+			case CoreModelPackage.YDIALOG__TAGS:
+			case CoreModelPackage.YDIALOG__ID:
+			case CoreModelPackage.YDIALOG__NAME:
+			case CoreModelPackage.YDIALOG__CSS_CLASS:
+			case CoreModelPackage.YDIALOG__CSS_ID:
+			case CoreModelPackage.YDIALOG__MODAL:
+			case CoreModelPackage.YDIALOG__RESIZEABLE:
+			case CoreModelPackage.YDIALOG__DRAGGABLE:
+			case CoreModelPackage.YDIALOG__CLOSABLE:
+			case CoreModelPackage.YDIALOG__VALUE:
+			case CoreModelPackage.YDIALOG__TYPE:
+			case CoreModelPackage.YDIALOG__EMF_NS_URI:
+			case CoreModelPackage.YDIALOG__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YDIALOG__PROPERTIES:
+			case CoreModelPackage.YDIALOG__CONTENT:
+			case CoreModelPackage.YDIALOG__DATADESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YDIALOG__CONTENT,
+				 CoreModelFactory.eINSTANCE.createYLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YDIALOG__CONTENT,
+				 CoreModelFactory.eINSTANCE.createYHelperLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YDIALOG__CONTENT,
+				 CoreModelFactory.eINSTANCE.createYField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YDIALOG__CONTENT,
+				 CoreModelFactory.eINSTANCE.createYAction()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YDIALOG__DATADESCRIPTION,
+				 DatatypesFactory.eINSTANCE.createYDatadescription()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDtWrapperItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDtWrapperItemProvider.java
new file mode 100644
index 0000000..8409c66
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YDtWrapperItemProvider.java
@@ -0,0 +1,302 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YDtWrapperItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDtWrapperItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YDtWrapper.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YDtWrapper"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YDtWrapper)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YDtWrapper_type") :
+			getString("_UI_YDtWrapper_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDtWrapper.class)) {
+			case CoreModelPackage.YDT_WRAPPER__TAGS:
+			case CoreModelPackage.YDT_WRAPPER__ID:
+			case CoreModelPackage.YDT_WRAPPER__NAME:
+			case CoreModelPackage.YDT_WRAPPER__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YDT_WRAPPER__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableCollectionEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableCollectionEndpointItemProvider.java
new file mode 100644
index 0000000..dd674a9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableCollectionEndpointItemProvider.java
@@ -0,0 +1,156 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.YListBindingEndpointItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YEmbeddableCollectionEndpointItemProvider extends
+		YListBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpointItemProvider(
+			AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addElementPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Element feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addElementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEmbeddableCollectionEndpoint_element_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEmbeddableCollectionEndpoint_element_feature", "_UI_YEmbeddableCollectionEndpoint_type"),
+				 CoreModelPackage.Literals.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YEmbeddableCollectionEndpoint.gif. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YEmbeddableCollectionEndpoint ep = (YEmbeddableCollectionEndpoint) object;
+		IItemLabelProvider rootProvider = (IItemLabelProvider) getRootAdapterFactory()
+				.adapt(ep.getElement(), IItemLabelProvider.class);
+		return rootProvider.getText(ep.getElement()) + "#collection"
+				+ getTextPrefix((YListBindingEndpoint) object);
+	}
+
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		YEmbeddableCollectionEndpoint temp = (YEmbeddableCollectionEndpoint) ep;
+		return temp.getElement();
+	}
+
+	@Override
+	public EStructuralFeature getFirstBoundFeature(YBindingEndpoint object) {
+		YEmbeddableCollectionEndpoint ep = (YEmbeddableCollectionEndpoint) object;
+		EObject boundElement = getBoundElement(ep);
+		return boundElement.eClass().getEStructuralFeature("collection");
+	}
+
+	@Override
+	public List<EStructuralFeature> getBoundFeatureList(YBindingEndpoint object) {
+		return Collections.singletonList(getFirstBoundFeature(object));
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableItemProvider.java
new file mode 100644
index 0000000..efebfa5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableItemProvider.java
@@ -0,0 +1,547 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.util.IBindableFeaturesItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+
+/**
+ * This is the item provider adapter for a
+ * {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable} object. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ */
+public class YEmbeddableItemProvider extends ItemProviderAdapter implements
+		IEditingDomainItemProvider, IStructuredItemContentProvider,
+		ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource,
+		IBindableFeaturesItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YEmbeddableItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addCssClassPropertyDescriptor(object);
+			addCssIDPropertyDescriptor(object);
+			addInitialVisiblePropertyDescriptor(object);
+			addVisiblePropertyDescriptor(object);
+			addAuthorizationGroupPropertyDescriptor(object);
+			addAuthorizationIdPropertyDescriptor(object);
+			addMementoEnabledPropertyDescriptor(object);
+			addMementoIdPropertyDescriptor(object);
+			addLabelPropertyDescriptor(object);
+			addLabelI18nKeyPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css Class feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addCssClassPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssAble_cssClass_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssAble_cssClass_feature", "_UI_YCssAble_type"),
+				 CoreModelPackage.Literals.YCSS_ABLE__CSS_CLASS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css ID feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addCssIDPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssAble_cssID_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssAble_cssID_feature", "_UI_YCssAble_type"),
+				 CoreModelPackage.Literals.YCSS_ABLE__CSS_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Visible feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addInitialVisiblePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibleable_initialVisible_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibleable_initialVisible_feature", "_UI_YVisibleable_type"),
+				 CoreModelPackage.Literals.YVISIBLEABLE__INITIAL_VISIBLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Visible feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addVisiblePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibleable_visible_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibleable_visible_feature", "_UI_YVisibleable_type"),
+				 CoreModelPackage.Literals.YVISIBLEABLE__VISIBLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Authorization Group feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAuthorizationGroupPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAuthorizationable_authorizationGroup_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAuthorizationable_authorizationGroup_feature", "_UI_YAuthorizationable_type"),
+				 CoreModelPackage.Literals.YAUTHORIZATIONABLE__AUTHORIZATION_GROUP,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Authorization Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAuthorizationIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAuthorizationable_authorizationId_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAuthorizationable_authorizationId_feature", "_UI_YAuthorizationable_type"),
+				 CoreModelPackage.Literals.YAUTHORIZATIONABLE__AUTHORIZATION_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Memento Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMementoEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEmbeddable_mementoEnabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEmbeddable_mementoEnabled_feature", "_UI_YEmbeddable_type"),
+				 CoreModelPackage.Literals.YEMBEDDABLE__MEMENTO_ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Memento Id feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addMementoIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEmbeddable_mementoId_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEmbeddable_mementoId_feature", "_UI_YEmbeddable_type"),
+				 CoreModelPackage.Literals.YEMBEDDABLE__MEMENTO_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Label feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLabelPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEmbeddable_label_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEmbeddable_label_feature", "_UI_YEmbeddable_type"),
+				 CoreModelPackage.Literals.YEMBEDDABLE__LABEL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Label I1 8n Key feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLabelI18nKeyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEmbeddable_labelI18nKey_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEmbeddable_labelI18nKey_feature", "_UI_YEmbeddable_type"),
+				 CoreModelPackage.Literals.YEMBEDDABLE__LABEL_I1_8N_KEY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(
+			Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES);
+			childrenFeatures.add(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YEmbeddable)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YEmbeddable_type") :
+			getString("_UI_YEmbeddable_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YEmbeddable.class)) {
+			case CoreModelPackage.YEMBEDDABLE__TAGS:
+			case CoreModelPackage.YEMBEDDABLE__ID:
+			case CoreModelPackage.YEMBEDDABLE__NAME:
+			case CoreModelPackage.YEMBEDDABLE__CSS_CLASS:
+			case CoreModelPackage.YEMBEDDABLE__CSS_ID:
+			case CoreModelPackage.YEMBEDDABLE__INITIAL_VISIBLE:
+			case CoreModelPackage.YEMBEDDABLE__VISIBLE:
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_GROUP:
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_ID:
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ENABLED:
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ID:
+			case CoreModelPackage.YEMBEDDABLE__LABEL:
+			case CoreModelPackage.YEMBEDDABLE__LABEL_I1_8N_KEY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YEMBEDDABLE__PROPERTIES:
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATATYPES:
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 CoreModelFactory.eINSTANCE.createYDtWrapper()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS,
+				 DatatypesFactory.eINSTANCE.createYDatadescription()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+	@Override
+	public List<EStructuralFeature> getBindableFeatures(YElement element) {
+		List<EStructuralFeature> features = doGetBindableFeatures(element);
+		return features;
+	}
+
+	/**
+	 * Returns all attributes and features ordered by their name.
+	 * 
+	 * @param element
+	 * @return
+	 */
+	protected List<EStructuralFeature> doGetBindableFeatures(YElement element) {
+		EClass eClass = element.eClass();
+		List<EStructuralFeature> features = new ArrayList<EStructuralFeature>();
+		features.addAll(eClass.getEAllAttributes());
+		features.addAll(eClass.getEAllReferences());
+
+		Collections.sort(features, new Comparator<EStructuralFeature>() {
+			@Override
+			public int compare(EStructuralFeature o1, EStructuralFeature o2) {
+				return o1.getName().compareTo(o2.getName());
+			}
+		});
+		return features;
+	}
+
+	@Override
+	public Class<?> getFeatureType(YElement element, EStructuralFeature feature) {
+		// a hardcoded default implementation
+		// override to change.
+		if (feature.getName().equals("selection")
+				|| feature.getName().equals("multiSelection")
+				|| feature.getName().equals("collection")) {
+			EClass eClass = element.eClass();
+			EStructuralFeature typeFeature = eClass
+					.getEStructuralFeature("type");
+			if (typeFeature != null) {
+				if (typeFeature instanceof EAttribute) {
+					EAttribute typeAttribute = (EAttribute) typeFeature;
+					if (typeAttribute.getEAttributeType() == EcorePackage.Literals.EJAVA_CLASS) {
+						return (Class<?>) element.eGet(typeFeature);
+					}
+				}
+			}
+		}
+		return feature.getEType().getInstanceClass();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableMultiSelectionEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableMultiSelectionEndpointItemProvider.java
new file mode 100644
index 0000000..c1cca72
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableMultiSelectionEndpointItemProvider.java
@@ -0,0 +1,155 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.YListBindingEndpointItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YEmbeddableMultiSelectionEndpointItemProvider extends YListBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addElementPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Element feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addElementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEmbeddableMultiSelectionEndpoint_element_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEmbeddableMultiSelectionEndpoint_element_feature", "_UI_YEmbeddableMultiSelectionEndpoint_type"),
+				 CoreModelPackage.Literals.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YEmbeddableMultiSelectionEndpoint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YEmbeddableMultiSelectionEndpoint ep = (YEmbeddableMultiSelectionEndpoint) object;
+		IItemLabelProvider rootProvider = (IItemLabelProvider) getRootAdapterFactory()
+				.adapt(ep.getElement(), IItemLabelProvider.class);
+		return rootProvider.getText(ep.getElement()) + "#multiSelection"
+				+ getTextPrefix((YListBindingEndpoint) object);
+	}
+	
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		YEmbeddableMultiSelectionEndpoint temp = (YEmbeddableMultiSelectionEndpoint) ep;
+		return temp.getElement();
+	}
+	
+	@Override
+	public EStructuralFeature getFirstBoundFeature(YBindingEndpoint object) {
+		YEmbeddableMultiSelectionEndpoint ep = (YEmbeddableMultiSelectionEndpoint) object;
+		EObject boundElement = getBoundElement(ep);
+		return boundElement.eClass().getEStructuralFeature("multiSelection");
+	}
+	
+	@Override
+	public List<EStructuralFeature> getBoundFeatureList(YBindingEndpoint object) {
+		return Collections.singletonList(getFirstBoundFeature(object));
+	}
+	
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableSelectionEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableSelectionEndpointItemProvider.java
new file mode 100644
index 0000000..3f75d53
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableSelectionEndpointItemProvider.java
@@ -0,0 +1,197 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.YValueBindingEndpointItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class YEmbeddableSelectionEndpointItemProvider extends
+		YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpointItemProvider(
+			AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addElementPropertyDescriptor(object);
+			addAttributePathPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Element feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addElementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEmbeddableSelectionEndpoint_element_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEmbeddableSelectionEndpoint_element_feature", "_UI_YEmbeddableSelectionEndpoint_type"),
+				 CoreModelPackage.Literals.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Attribute Path feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected void addAttributePathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEmbeddableSelectionEndpoint_attributePath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEmbeddableSelectionEndpoint_attributePath_feature", "_UI_YEmbeddableSelectionEndpoint_type"),
+				 CoreModelPackage.Literals.YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YEmbeddableSelectionEndpoint.gif. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YEmbeddableSelectionEndpoint ep = (YEmbeddableSelectionEndpoint) object;
+		IItemLabelProvider rootProvider = (IItemLabelProvider) getRootAdapterFactory()
+				.adapt(ep.getElement(), IItemLabelProvider.class);
+		return rootProvider.getText(ep.getElement()) + "#selection"
+				+ getTextPrefix((YValueBindingEndpoint) object);
+	}
+
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		YEmbeddableSelectionEndpoint temp = (YEmbeddableSelectionEndpoint) ep;
+		return temp.getElement();
+	}
+
+	@Override
+	public EStructuralFeature getFirstBoundFeature(YBindingEndpoint object) {
+		YEmbeddableSelectionEndpoint ep = (YEmbeddableSelectionEndpoint) object;
+		EObject boundElement = getBoundElement(ep);
+		return boundElement.eClass().getEStructuralFeature("selection");
+	}
+
+	@Override
+	public List<EStructuralFeature> getBoundFeatureList(YBindingEndpoint object) {
+		YEmbeddableSelectionEndpoint ep = (YEmbeddableSelectionEndpoint) object;
+		YElement boundElement = (YElement) getBoundElement(object);
+		if (boundElement != null) {
+			List<EStructuralFeature> temp = resolveFeatureChain(
+					boundElement.eClass(), ep.getAttributePath());
+			temp.add(0, boundElement.eClass()
+					.getEStructuralFeature("selection"));
+			return temp;
+		}
+		return Collections.emptyList();
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YEmbeddableSelectionEndpoint.class)) {
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing the children that can be created under this object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableValueEndpointItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableValueEndpointItemProvider.java
new file mode 100644
index 0000000..b616510
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YEmbeddableValueEndpointItemProvider.java
@@ -0,0 +1,155 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.YValueBindingEndpointItemProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YEmbeddableValueEndpointItemProvider extends YValueBindingEndpointItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEmbeddableValueEndpointItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addElementPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Element feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addElementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEmbeddableValueEndpoint_element_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEmbeddableValueEndpoint_element_feature", "_UI_YEmbeddableValueEndpoint_type"),
+				 CoreModelPackage.Literals.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YEmbeddableValueEndpoint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBindingEndpoint.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	@Override
+	public String getText(Object object) {
+		YEmbeddableValueEndpoint ep = (YEmbeddableValueEndpoint) object;
+		IItemLabelProvider rootProvider = (IItemLabelProvider) getRootAdapterFactory()
+				.adapt(ep.getElement(), IItemLabelProvider.class);
+		return rootProvider.getText(ep.getElement()) + "#value"
+				+ getTextPrefix((YValueBindingEndpoint) object);
+	}
+	
+	@Override
+	public EObject getBoundElement(YBindingEndpoint ep) {
+		YEmbeddableValueEndpoint temp = (YEmbeddableValueEndpoint) ep;
+		return temp.getElement();
+	}
+	
+	@Override
+	public EStructuralFeature getFirstBoundFeature(YBindingEndpoint object) {
+		YEmbeddableValueEndpoint ep = (YEmbeddableValueEndpoint) object;
+		EObject boundElement = getBoundElement(ep);
+		return boundElement.eClass().getEStructuralFeature("value");
+	}
+	
+	@Override
+	public List<EStructuralFeature> getBoundFeatureList(YBindingEndpoint object) {
+		return Collections.singletonList(getFirstBoundFeature(object));
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YExposedActionItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YExposedActionItemProvider.java
new file mode 100644
index 0000000..95fb997
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YExposedActionItemProvider.java
@@ -0,0 +1,518 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YExposedActionItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YExposedActionItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addInitialEnabledPropertyDescriptor(object);
+			addEnabledPropertyDescriptor(object);
+			addIconPropertyDescriptor(object);
+			addLabelPropertyDescriptor(object);
+			addLabelI18nKeyPropertyDescriptor(object);
+			addExternalClickTimePropertyDescriptor(object);
+			addInternalClickTimePropertyDescriptor(object);
+			addExecutedNotificationTimePropertyDescriptor(object);
+			addCanceledNotificationTimePropertyDescriptor(object);
+			addCheckDirtyPropertyDescriptor(object);
+			addExternalCommandIdPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitialEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnable_initialEnabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnable_initialEnabled_feature", "_UI_YEnable_type"),
+				 CoreModelPackage.Literals.YENABLE__INITIAL_ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnable_enabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnable_enabled_feature", "_UI_YEnable_type"),
+				 CoreModelPackage.Literals.YENABLE__ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Icon feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIconPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YExposedAction_icon_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YExposedAction_icon_feature", "_UI_YExposedAction_type"),
+				 CoreModelPackage.Literals.YEXPOSED_ACTION__ICON,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Label feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLabelPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YExposedAction_label_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YExposedAction_label_feature", "_UI_YExposedAction_type"),
+				 CoreModelPackage.Literals.YEXPOSED_ACTION__LABEL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Label I1 8n Key feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLabelI18nKeyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YExposedAction_labelI18nKey_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YExposedAction_labelI18nKey_feature", "_UI_YExposedAction_type"),
+				 CoreModelPackage.Literals.YEXPOSED_ACTION__LABEL_I1_8N_KEY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the External Click Time feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addExternalClickTimePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YExposedAction_externalClickTime_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YExposedAction_externalClickTime_feature", "_UI_YExposedAction_type"),
+				 CoreModelPackage.Literals.YEXPOSED_ACTION__EXTERNAL_CLICK_TIME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Internal Click Time feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInternalClickTimePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YExposedAction_internalClickTime_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YExposedAction_internalClickTime_feature", "_UI_YExposedAction_type"),
+				 CoreModelPackage.Literals.YEXPOSED_ACTION__INTERNAL_CLICK_TIME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Executed Notification Time feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addExecutedNotificationTimePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YExposedAction_executedNotificationTime_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YExposedAction_executedNotificationTime_feature", "_UI_YExposedAction_type"),
+				 CoreModelPackage.Literals.YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Canceled Notification Time feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCanceledNotificationTimePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YExposedAction_canceledNotificationTime_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YExposedAction_canceledNotificationTime_feature", "_UI_YExposedAction_type"),
+				 CoreModelPackage.Literals.YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Check Dirty feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCheckDirtyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YExposedAction_checkDirty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YExposedAction_checkDirty_feature", "_UI_YExposedAction_type"),
+				 CoreModelPackage.Literals.YEXPOSED_ACTION__CHECK_DIRTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the External Command Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addExternalCommandIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YExposedAction_externalCommandId_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YExposedAction_externalCommandId_feature", "_UI_YExposedAction_type"),
+				 CoreModelPackage.Literals.YEXPOSED_ACTION__EXTERNAL_COMMAND_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YExposedAction.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YExposedAction"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YExposedAction)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YExposedAction_type") :
+			getString("_UI_YExposedAction_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YExposedAction.class)) {
+			case CoreModelPackage.YEXPOSED_ACTION__TAGS:
+			case CoreModelPackage.YEXPOSED_ACTION__ID:
+			case CoreModelPackage.YEXPOSED_ACTION__NAME:
+			case CoreModelPackage.YEXPOSED_ACTION__INITIAL_ENABLED:
+			case CoreModelPackage.YEXPOSED_ACTION__ENABLED:
+			case CoreModelPackage.YEXPOSED_ACTION__ICON:
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL:
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL_I1_8N_KEY:
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_CLICK_TIME:
+			case CoreModelPackage.YEXPOSED_ACTION__INTERNAL_CLICK_TIME:
+			case CoreModelPackage.YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME:
+			case CoreModelPackage.YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME:
+			case CoreModelPackage.YEXPOSED_ACTION__CHECK_DIRTY:
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_COMMAND_ID:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YFieldItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YFieldItemProvider.java
new file mode 100644
index 0000000..029df36
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YFieldItemProvider.java
@@ -0,0 +1,355 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YFieldItemProvider extends YEmbeddableItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addInitialEditablePropertyDescriptor(object);
+			addEditablePropertyDescriptor(object);
+			addInitialEnabledPropertyDescriptor(object);
+			addEnabledPropertyDescriptor(object);
+			addTabIndexPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Editable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitialEditablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEditable_initialEditable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEditable_initialEditable_feature", "_UI_YEditable_type"),
+				 CoreModelPackage.Literals.YEDITABLE__INITIAL_EDITABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Editable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEditablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEditable_editable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEditable_editable_feature", "_UI_YEditable_type"),
+				 CoreModelPackage.Literals.YEDITABLE__EDITABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitialEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnable_initialEnabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnable_initialEnabled_feature", "_UI_YEnable_type"),
+				 CoreModelPackage.Literals.YENABLE__INITIAL_ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnable_enabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnable_enabled_feature", "_UI_YEnable_type"),
+				 CoreModelPackage.Literals.YENABLE__ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tab Index feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTabIndexPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFocusable_tabIndex_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFocusable_tabIndex_feature", "_UI_YFocusable_type"),
+				 CoreModelPackage.Literals.YFOCUSABLE__TAB_INDEX,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YFIELD__VALIDATORS);
+			childrenFeatures.add(CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS);
+			childrenFeatures.add(CoreModelPackage.Literals.YFIELD__CONVERTER);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YField_type") :
+			getString("_UI_YField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YField.class)) {
+			case CoreModelPackage.YFIELD__INITIAL_EDITABLE:
+			case CoreModelPackage.YFIELD__EDITABLE:
+			case CoreModelPackage.YFIELD__INITIAL_ENABLED:
+			case CoreModelPackage.YFIELD__ENABLED:
+			case CoreModelPackage.YFIELD__TAB_INDEX:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YFIELD__VALIDATORS:
+			case CoreModelPackage.YFIELD__INTERNAL_VALIDATORS:
+			case CoreModelPackage.YFIELD__CONVERTER:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYMinLengthValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYMaxLengthValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYRegexpValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYClassDelegateValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYBeanValidationValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYMinLengthValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYMaxLengthValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYRegexpValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYClassDelegateValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS,
+				 ValidationFactory.eINSTANCE.createYBeanValidationValidator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YFIELD__CONVERTER,
+				 CoreModelFactory.eINSTANCE.createYDelegateConverter()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YHelperLayoutItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YHelperLayoutItemProvider.java
new file mode 100644
index 0000000..41dee9e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YHelperLayoutItemProvider.java
@@ -0,0 +1,133 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YHelperLayoutItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YHelperLayoutItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addVirtualElementsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Virtual Elements feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVirtualElementsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YHelperLayout_virtualElements_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YHelperLayout_virtualElements_feature", "_UI_YHelperLayout_type"),
+				 CoreModelPackage.Literals.YHELPER_LAYOUT__VIRTUAL_ELEMENTS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YHelperLayout.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YHelperLayout"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YHelperLayout)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YHelperLayout_type") :
+			getString("_UI_YHelperLayout_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YKeyStrokeDefinitionItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YKeyStrokeDefinitionItemProvider.java
new file mode 100644
index 0000000..73adfc4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YKeyStrokeDefinitionItemProvider.java
@@ -0,0 +1,302 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YKeyStrokeDefinitionItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YKeyStrokeDefinitionItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addKeyCodePropertyDescriptor(object);
+			addModifierKeysPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Key Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addKeyCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YKeyStrokeDefinition_keyCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YKeyStrokeDefinition_keyCode_feature", "_UI_YKeyStrokeDefinition_type"),
+				 CoreModelPackage.Literals.YKEY_STROKE_DEFINITION__KEY_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Modifier Keys feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addModifierKeysPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YKeyStrokeDefinition_modifierKeys_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YKeyStrokeDefinition_modifierKeys_feature", "_UI_YKeyStrokeDefinition_type"),
+				 CoreModelPackage.Literals.YKEY_STROKE_DEFINITION__MODIFIER_KEYS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YKeyStrokeDefinition.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YKeyStrokeDefinition"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YKeyStrokeDefinition)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YKeyStrokeDefinition_type") :
+			getString("_UI_YKeyStrokeDefinition_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YKeyStrokeDefinition.class)) {
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__TAGS:
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__ID:
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__NAME:
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__KEY_CODE:
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__MODIFIER_KEYS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YLayoutItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YLayoutItemProvider.java
new file mode 100644
index 0000000..c1329ae
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YLayoutItemProvider.java
@@ -0,0 +1,268 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YLayout} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YLayoutItemProvider extends YEmbeddableItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YLayoutItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addInitialEditablePropertyDescriptor(object);
+			addEditablePropertyDescriptor(object);
+			addInitialEnabledPropertyDescriptor(object);
+			addEnabledPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Editable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitialEditablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEditable_initialEditable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEditable_initialEditable_feature", "_UI_YEditable_type"),
+				 CoreModelPackage.Literals.YEDITABLE__INITIAL_EDITABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Editable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEditablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEditable_editable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEditable_editable_feature", "_UI_YEditable_type"),
+				 CoreModelPackage.Literals.YEDITABLE__EDITABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitialEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnable_initialEnabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnable_initialEnabled_feature", "_UI_YEnable_type"),
+				 CoreModelPackage.Literals.YENABLE__INITIAL_ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnable_enabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnable_enabled_feature", "_UI_YEnable_type"),
+				 CoreModelPackage.Literals.YENABLE__ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YLAYOUT__ELEMENTS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YLayout.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YLayout"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YLayout)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YLayout_type") :
+			getString("_UI_YLayout_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YLayout.class)) {
+			case CoreModelPackage.YLAYOUT__INITIAL_EDITABLE:
+			case CoreModelPackage.YLAYOUT__EDITABLE:
+			case CoreModelPackage.YLAYOUT__INITIAL_ENABLED:
+			case CoreModelPackage.YLAYOUT__ENABLED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YLAYOUT__ELEMENTS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 CoreModelFactory.eINSTANCE.createYLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 CoreModelFactory.eINSTANCE.createYHelperLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 CoreModelFactory.eINSTANCE.createYField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 CoreModelFactory.eINSTANCE.createYAction()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YOpenDialogCommandItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YOpenDialogCommandItemProvider.java
new file mode 100644
index 0000000..f7875f3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YOpenDialogCommandItemProvider.java
@@ -0,0 +1,301 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YOpenDialogCommandItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YOpenDialogCommandItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDialogPropertyDescriptor(object);
+			addTriggerPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Dialog feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDialogPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOpenDialogCommand_dialog_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOpenDialogCommand_dialog_feature", "_UI_YOpenDialogCommand_type"),
+				 CoreModelPackage.Literals.YOPEN_DIALOG_COMMAND__DIALOG,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Trigger feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTriggerPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOpenDialogCommand_trigger_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOpenDialogCommand_trigger_feature", "_UI_YOpenDialogCommand_type"),
+				 CoreModelPackage.Literals.YOPEN_DIALOG_COMMAND__TRIGGER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YOpenDialogCommand.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YOpenDialogCommand"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YOpenDialogCommand)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YOpenDialogCommand_type") :
+			getString("_UI_YOpenDialogCommand_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YOpenDialogCommand.class)) {
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TAGS:
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__ID:
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__NAME:
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TRIGGER:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YSendEventCommandItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YSendEventCommandItemProvider.java
new file mode 100644
index 0000000..ef53881
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YSendEventCommandItemProvider.java
@@ -0,0 +1,350 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YSendEventCommandItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSendEventCommandItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addEventTopicPropertyDescriptor(object);
+			addMessagePropertyDescriptor(object);
+			addTriggerPropertyDescriptor(object);
+			addAutoTriggerPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Event Topic feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEventTopicPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSendEventCommand_eventTopic_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSendEventCommand_eventTopic_feature", "_UI_YSendEventCommand_type"),
+				 CoreModelPackage.Literals.YSEND_EVENT_COMMAND__EVENT_TOPIC,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Message feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMessagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSendEventCommand_message_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSendEventCommand_message_feature", "_UI_YSendEventCommand_type"),
+				 CoreModelPackage.Literals.YSEND_EVENT_COMMAND__MESSAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Trigger feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTriggerPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSendEventCommand_trigger_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSendEventCommand_trigger_feature", "_UI_YSendEventCommand_type"),
+				 CoreModelPackage.Literals.YSEND_EVENT_COMMAND__TRIGGER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Auto Trigger feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAutoTriggerPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSendEventCommand_autoTrigger_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSendEventCommand_autoTrigger_feature", "_UI_YSendEventCommand_type"),
+				 CoreModelPackage.Literals.YSEND_EVENT_COMMAND__AUTO_TRIGGER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YSendEventCommand.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YSendEventCommand"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YSendEventCommand)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YSendEventCommand_type") :
+			getString("_UI_YSendEventCommand_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YSendEventCommand.class)) {
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TAGS:
+			case CoreModelPackage.YSEND_EVENT_COMMAND__ID:
+			case CoreModelPackage.YSEND_EVENT_COMMAND__NAME:
+			case CoreModelPackage.YSEND_EVENT_COMMAND__EVENT_TOPIC:
+			case CoreModelPackage.YSEND_EVENT_COMMAND__MESSAGE:
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TRIGGER:
+			case CoreModelPackage.YSEND_EVENT_COMMAND__AUTO_TRIGGER:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YStringToStringMapItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YStringToStringMapItemProvider.java
new file mode 100644
index 0000000..f0d5b20
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YStringToStringMapItemProvider.java
@@ -0,0 +1,188 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * This is the item provider adapter for a {@link java.util.Map.Entry} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YStringToStringMapItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YStringToStringMapItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addKeyPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Key feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addKeyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YStringToStringMap_key_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YStringToStringMap_key_feature", "_UI_YStringToStringMap_type"),
+				 CoreModelPackage.Literals.YSTRING_TO_STRING_MAP__KEY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YStringToStringMap_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YStringToStringMap_value_feature", "_UI_YStringToStringMap_type"),
+				 CoreModelPackage.Literals.YSTRING_TO_STRING_MAP__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YStringToStringMap.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YStringToStringMap"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		Map.Entry<?, ?> yStringToStringMap = (Map.Entry<?, ?>)object;
+		return "" + yStringToStringMap.getKey() + " -> " + yStringToStringMap.getValue();
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Map.Entry.class)) {
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__KEY:
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YViewItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YViewItemProvider.java
new file mode 100644
index 0000000..4e71290
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YViewItemProvider.java
@@ -0,0 +1,641 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationFactory;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityFactory;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YView} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YViewItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YViewItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addCssClassPropertyDescriptor(object);
+			addCssIDPropertyDescriptor(object);
+			addMarginPropertyDescriptor(object);
+			addViewNamePropertyDescriptor(object);
+			addVersionPropertyDescriptor(object);
+			addDeviceTypePropertyDescriptor(object);
+			addContentAlignmentPropertyDescriptor(object);
+			addTransientVisibilityProcessorsPropertyDescriptor(object);
+			addSharedStateGroupPropertyDescriptor(object);
+			addCategoryPropertyDescriptor(object);
+			addInitialFocusPropertyDescriptor(object);
+			addCurrentFocusPropertyDescriptor(object);
+			addDisabledElementsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css Class feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCssClassPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssAble_cssClass_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssAble_cssClass_feature", "_UI_YCssAble_type"),
+				 CoreModelPackage.Literals.YCSS_ABLE__CSS_CLASS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css ID feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCssIDPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssAble_cssID_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssAble_cssID_feature", "_UI_YCssAble_type"),
+				 CoreModelPackage.Literals.YCSS_ABLE__CSS_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Margin feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMarginPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMarginable_margin_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMarginable_margin_feature", "_UI_YMarginable_type"),
+				 CoreModelPackage.Literals.YMARGINABLE__MARGIN,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the View Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addViewNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_viewName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_viewName_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__VIEW_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Version feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVersionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_version_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_version_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__VERSION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Device Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDeviceTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_deviceType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_deviceType_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__DEVICE_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Content Alignment feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addContentAlignmentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_contentAlignment_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_contentAlignment_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__CONTENT_ALIGNMENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Transient Visibility Processors feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTransientVisibilityProcessorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_transientVisibilityProcessors_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_transientVisibilityProcessors_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__TRANSIENT_VISIBILITY_PROCESSORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Shared State Group feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSharedStateGroupPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_sharedStateGroup_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_sharedStateGroup_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__SHARED_STATE_GROUP,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Category feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCategoryPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_category_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_category_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__CATEGORY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Focus feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitialFocusPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_initialFocus_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_initialFocus_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__INITIAL_FOCUS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Current Focus feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCurrentFocusPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_currentFocus_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_currentFocus_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__CURRENT_FOCUS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Disabled Elements feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDisabledElementsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YView_disabledElements_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YView_disabledElements_feature", "_UI_YView_type"),
+				 CoreModelPackage.Literals.YVIEW__DISABLED_ELEMENTS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW__CONTENT);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW__BINDING_SET);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW__BEAN_SLOTS);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW__COMMAND_SET);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW__DIALOGS);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW__VISIBILITY_PROCESSORS);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW__EXPOSED_ACTIONS);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW__AUTHORIZATION_STORE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YView.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YView"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YView)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YView_type") :
+			getString("_UI_YView_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YView.class)) {
+			case CoreModelPackage.YVIEW__TAGS:
+			case CoreModelPackage.YVIEW__ID:
+			case CoreModelPackage.YVIEW__NAME:
+			case CoreModelPackage.YVIEW__CSS_CLASS:
+			case CoreModelPackage.YVIEW__CSS_ID:
+			case CoreModelPackage.YVIEW__MARGIN:
+			case CoreModelPackage.YVIEW__VIEW_NAME:
+			case CoreModelPackage.YVIEW__VERSION:
+			case CoreModelPackage.YVIEW__DEVICE_TYPE:
+			case CoreModelPackage.YVIEW__CONTENT_ALIGNMENT:
+			case CoreModelPackage.YVIEW__SHARED_STATE_GROUP:
+			case CoreModelPackage.YVIEW__CATEGORY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YVIEW__PROPERTIES:
+			case CoreModelPackage.YVIEW__CONTENT:
+			case CoreModelPackage.YVIEW__BINDING_SET:
+			case CoreModelPackage.YVIEW__BEAN_SLOTS:
+			case CoreModelPackage.YVIEW__COMMAND_SET:
+			case CoreModelPackage.YVIEW__DIALOGS:
+			case CoreModelPackage.YVIEW__VISIBILITY_PROCESSORS:
+			case CoreModelPackage.YVIEW__EXPOSED_ACTIONS:
+			case CoreModelPackage.YVIEW__AUTHORIZATION_STORE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__CONTENT,
+				 CoreModelFactory.eINSTANCE.createYLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__CONTENT,
+				 CoreModelFactory.eINSTANCE.createYHelperLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__CONTENT,
+				 CoreModelFactory.eINSTANCE.createYField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__CONTENT,
+				 CoreModelFactory.eINSTANCE.createYAction()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__BINDING_SET,
+				 BindingFactory.eINSTANCE.createYBindingSet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__BEAN_SLOTS,
+				 CoreModelFactory.eINSTANCE.createYBeanSlot()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__BEAN_SLOTS,
+				 CoreModelFactory.eINSTANCE.createYDetailBeanSlot()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__COMMAND_SET,
+				 CoreModelFactory.eINSTANCE.createYCommandSet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__DIALOGS,
+				 CoreModelFactory.eINSTANCE.createYDialog()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__VISIBILITY_PROCESSORS,
+				 VisibilityFactory.eINSTANCE.createYVisibilityProcessor()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__EXPOSED_ACTIONS,
+				 CoreModelFactory.eINSTANCE.createYExposedAction()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW__AUTHORIZATION_STORE,
+				 AuthorizationFactory.eINSTANCE.createYAuthorizationStore()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YViewSetItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YViewSetItemProvider.java
new file mode 100644
index 0000000..b26acb5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/core/provider/YViewSetItemProvider.java
@@ -0,0 +1,273 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YViewSetItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YViewSetItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW_SET__VIEWS);
+			childrenFeatures.add(CoreModelPackage.Literals.YVIEW_SET__BEAN_SLOTS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YViewSet.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YViewSet"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YViewSet)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YViewSet_type") :
+			getString("_UI_YViewSet_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YViewSet.class)) {
+			case CoreModelPackage.YVIEW_SET__TAGS:
+			case CoreModelPackage.YVIEW_SET__ID:
+			case CoreModelPackage.YVIEW_SET__NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case CoreModelPackage.YVIEW_SET__PROPERTIES:
+			case CoreModelPackage.YVIEW_SET__VIEWS:
+			case CoreModelPackage.YVIEW_SET__BEAN_SLOTS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW_SET__VIEWS,
+				 CoreModelFactory.eINSTANCE.createYView()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW_SET__BEAN_SLOTS,
+				 CoreModelFactory.eINSTANCE.createYBeanSlot()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YVIEW_SET__BEAN_SLOTS,
+				 CoreModelFactory.eINSTANCE.createYDetailBeanSlot()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/datatypes/provider/DatatypesItemProviderAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/datatypes/provider/DatatypesItemProviderAdapterFactory.java
new file mode 100644
index 0000000..4f2932c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/datatypes/provider/DatatypesItemProviderAdapterFactory.java
@@ -0,0 +1,249 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.datatypes.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.util.DatatypesAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatatypesItemProviderAdapterFactory extends DatatypesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This helps manage the child creation extenders.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(ECViewCoreEditPlugin.INSTANCE, DatatypesPackage.eNS_URI);
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatatypesItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDatadescriptionItemProvider yDatadescriptionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDatadescriptionAdapter() {
+		if (yDatadescriptionItemProvider == null) {
+			yDatadescriptionItemProvider = new YDatadescriptionItemProvider(this);
+		}
+
+		return yDatadescriptionItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<IChildCreationExtender> getChildCreationExtenders() {
+		return childCreationExtenderManager.getChildCreationExtenders();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+		return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return childCreationExtenderManager;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (yDatadescriptionItemProvider != null) yDatadescriptionItemProvider.dispose();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/datatypes/provider/YDatadescriptionItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/datatypes/provider/YDatadescriptionItemProvider.java
new file mode 100644
index 0000000..2babe94
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/datatypes/provider/YDatadescriptionItemProvider.java
@@ -0,0 +1,327 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YDatadescriptionItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDatadescriptionItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addLabelPropertyDescriptor(object);
+			addLabelI18nKeyPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Label feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLabelPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatadescription_label_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatadescription_label_feature", "_UI_YDatadescription_type"),
+				 DatatypesPackage.Literals.YDATADESCRIPTION__LABEL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Label I1 8n Key feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLabelI18nKeyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatadescription_labelI18nKey_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatadescription_labelI18nKey_feature", "_UI_YDatadescription_type"),
+				 DatatypesPackage.Literals.YDATADESCRIPTION__LABEL_I1_8N_KEY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YDatadescription.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YDatadescription"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YDatadescription)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YDatadescription_type") :
+			getString("_UI_YDatadescription_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDatadescription.class)) {
+			case DatatypesPackage.YDATADESCRIPTION__TAGS:
+			case DatatypesPackage.YDATADESCRIPTION__ID:
+			case DatatypesPackage.YDATADESCRIPTION__NAME:
+			case DatatypesPackage.YDATADESCRIPTION__DESCRIPTION:
+			case DatatypesPackage.YDATADESCRIPTION__LABEL:
+			case DatatypesPackage.YDATADESCRIPTION__LABEL_I1_8N_KEY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/ValidationItemProviderAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/ValidationItemProviderAdapterFactory.java
new file mode 100644
index 0000000..9a217c1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/ValidationItemProviderAdapterFactory.java
@@ -0,0 +1,345 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.util.ValidationAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValidationItemProviderAdapterFactory extends ValidationAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This helps manage the child creation extenders.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(ECViewCoreEditPlugin.INSTANCE, ValidationPackage.eNS_URI);
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValidationItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YMinLengthValidatorItemProvider yMinLengthValidatorItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYMinLengthValidatorAdapter() {
+		if (yMinLengthValidatorItemProvider == null) {
+			yMinLengthValidatorItemProvider = new YMinLengthValidatorItemProvider(this);
+		}
+
+		return yMinLengthValidatorItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YMaxLengthValidatorItemProvider yMaxLengthValidatorItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYMaxLengthValidatorAdapter() {
+		if (yMaxLengthValidatorItemProvider == null) {
+			yMaxLengthValidatorItemProvider = new YMaxLengthValidatorItemProvider(this);
+		}
+
+		return yMaxLengthValidatorItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YRegexpValidatorItemProvider yRegexpValidatorItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYRegexpValidatorAdapter() {
+		if (yRegexpValidatorItemProvider == null) {
+			yRegexpValidatorItemProvider = new YRegexpValidatorItemProvider(this);
+		}
+
+		return yRegexpValidatorItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YClassDelegateValidatorItemProvider yClassDelegateValidatorItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYClassDelegateValidatorAdapter() {
+		if (yClassDelegateValidatorItemProvider == null) {
+			yClassDelegateValidatorItemProvider = new YClassDelegateValidatorItemProvider(this);
+		}
+
+		return yClassDelegateValidatorItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanValidationValidatorItemProvider yBeanValidationValidatorItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBeanValidationValidatorAdapter() {
+		if (yBeanValidationValidatorItemProvider == null) {
+			yBeanValidationValidatorItemProvider = new YBeanValidationValidatorItemProvider(this);
+		}
+
+		return yBeanValidationValidatorItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<IChildCreationExtender> getChildCreationExtenders() {
+		return childCreationExtenderManager.getChildCreationExtenders();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+		return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return childCreationExtenderManager;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (yMinLengthValidatorItemProvider != null) yMinLengthValidatorItemProvider.dispose();
+		if (yMaxLengthValidatorItemProvider != null) yMaxLengthValidatorItemProvider.dispose();
+		if (yRegexpValidatorItemProvider != null) yRegexpValidatorItemProvider.dispose();
+		if (yClassDelegateValidatorItemProvider != null) yClassDelegateValidatorItemProvider.dispose();
+		if (yBeanValidationValidatorItemProvider != null) yBeanValidationValidatorItemProvider.dispose();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YBeanValidationValidatorItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YBeanValidationValidatorItemProvider.java
new file mode 100644
index 0000000..931761d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YBeanValidationValidatorItemProvider.java
@@ -0,0 +1,237 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBeanValidationValidatorItemProvider extends YValidatorItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanValidationValidatorItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addErrorCodePropertyDescriptor(object);
+			addDefaultErrorMessagePropertyDescriptor(object);
+			addBvalClassPropertyDescriptor(object);
+			addBvalClassFullyQualifiedNamePropertyDescriptor(object);
+			addBvalPropertyPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Error Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addErrorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_errorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_errorCode_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__ERROR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Error Message feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultErrorMessagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_defaultErrorMessage_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_defaultErrorMessage_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Bval Class feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBvalClassPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanValidationValidatorConfig_bvalClass_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanValidationValidatorConfig_bvalClass_feature", "_UI_YBeanValidationValidatorConfig_type"),
+				 ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Bval Class Fully Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBvalClassFullyQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanValidationValidatorConfig_bvalClassFullyQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanValidationValidatorConfig_bvalClassFullyQualifiedName_feature", "_UI_YBeanValidationValidatorConfig_type"),
+				 ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Bval Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBvalPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanValidationValidatorConfig_bvalProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanValidationValidatorConfig_bvalProperty_feature", "_UI_YBeanValidationValidatorConfig_type"),
+				 ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YBeanValidationValidator.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBeanValidationValidator"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBeanValidationValidator)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBeanValidationValidator_type") :
+			getString("_UI_YBeanValidationValidator_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBeanValidationValidator.class)) {
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__ERROR_CODE:
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS:
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS_FULLY_QUALIFIED_NAME:
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_PROPERTY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YClassDelegateValidatorItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YClassDelegateValidatorItemProvider.java
new file mode 100644
index 0000000..3536c21
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YClassDelegateValidatorItemProvider.java
@@ -0,0 +1,189 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YClassDelegateValidatorItemProvider extends YValidatorItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YClassDelegateValidatorItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addErrorCodePropertyDescriptor(object);
+			addDefaultErrorMessagePropertyDescriptor(object);
+			addClassNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Error Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addErrorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_errorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_errorCode_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__ERROR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Error Message feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultErrorMessagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_defaultErrorMessage_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_defaultErrorMessage_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Class Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addClassNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YClassDelegateValidationConfig_className_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YClassDelegateValidationConfig_className_feature", "_UI_YClassDelegateValidationConfig_type"),
+				 ValidationPackage.Literals.YCLASS_DELEGATE_VALIDATION_CONFIG__CLASS_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YClassDelegateValidator.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YClassDelegateValidator"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YClassDelegateValidator)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YClassDelegateValidator_type") :
+			getString("_UI_YClassDelegateValidator_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YClassDelegateValidator.class)) {
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__ERROR_CODE:
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__CLASS_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YMaxLengthValidatorItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YMaxLengthValidatorItemProvider.java
new file mode 100644
index 0000000..8c34979
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YMaxLengthValidatorItemProvider.java
@@ -0,0 +1,189 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YMaxLengthValidatorItemProvider extends YValidatorItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YMaxLengthValidatorItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addErrorCodePropertyDescriptor(object);
+			addDefaultErrorMessagePropertyDescriptor(object);
+			addMaxLengthPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Error Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addErrorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_errorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_errorCode_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__ERROR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Error Message feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultErrorMessagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_defaultErrorMessage_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_defaultErrorMessage_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Max Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMaxLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMaxLengthValidationConfig_maxLength_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMaxLengthValidationConfig_maxLength_feature", "_UI_YMaxLengthValidationConfig_type"),
+				 ValidationPackage.Literals.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YMaxLengthValidator.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YMaxLengthValidator"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YMaxLengthValidator)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YMaxLengthValidator_type") :
+			getString("_UI_YMaxLengthValidator_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YMaxLengthValidator.class)) {
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__ERROR_CODE:
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__MAX_LENGTH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YMinLengthValidatorItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YMinLengthValidatorItemProvider.java
new file mode 100644
index 0000000..c7e10a3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YMinLengthValidatorItemProvider.java
@@ -0,0 +1,189 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YMinLengthValidatorItemProvider extends YValidatorItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YMinLengthValidatorItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addErrorCodePropertyDescriptor(object);
+			addDefaultErrorMessagePropertyDescriptor(object);
+			addMinLengthPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Error Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addErrorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_errorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_errorCode_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__ERROR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Error Message feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultErrorMessagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_defaultErrorMessage_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_defaultErrorMessage_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Min Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMinLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMinLengthValidationConfig_minLength_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMinLengthValidationConfig_minLength_feature", "_UI_YMinLengthValidationConfig_type"),
+				 ValidationPackage.Literals.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YMinLengthValidator.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YMinLengthValidator"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YMinLengthValidator)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YMinLengthValidator_type") :
+			getString("_UI_YMinLengthValidator_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YMinLengthValidator.class)) {
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__ERROR_CODE:
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__MIN_LENGTH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YRegexpValidatorItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YRegexpValidatorItemProvider.java
new file mode 100644
index 0000000..162fbbe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YRegexpValidatorItemProvider.java
@@ -0,0 +1,189 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YRegexpValidatorItemProvider extends YValidatorItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YRegexpValidatorItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addErrorCodePropertyDescriptor(object);
+			addDefaultErrorMessagePropertyDescriptor(object);
+			addRegExpressionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Error Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addErrorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_errorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_errorCode_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__ERROR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Error Message feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultErrorMessagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_defaultErrorMessage_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_defaultErrorMessage_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Reg Expression feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRegExpressionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YRegexpValidationConfig_regExpression_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YRegexpValidationConfig_regExpression_feature", "_UI_YRegexpValidationConfig_type"),
+				 ValidationPackage.Literals.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YRegexpValidator.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YRegexpValidator"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YRegexpValidator)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YRegexpValidator_type") :
+			getString("_UI_YRegexpValidator_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YRegexpValidator.class)) {
+			case ValidationPackage.YREGEXP_VALIDATOR__ERROR_CODE:
+			case ValidationPackage.YREGEXP_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+			case ValidationPackage.YREGEXP_VALIDATOR__REG_EXPRESSION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YValidatorItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YValidatorItemProvider.java
new file mode 100644
index 0000000..8b2f391
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/validation/provider/YValidatorItemProvider.java
@@ -0,0 +1,268 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.validation.YValidator} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YValidatorItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YValidatorItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidator_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidator_type_feature", "_UI_YValidator_type"),
+				 ValidationPackage.Literals.YVALIDATOR__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YValidator)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YValidator_type") :
+			getString("_UI_YValidator_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YValidator.class)) {
+			case ValidationPackage.YVALIDATOR__TAGS:
+			case ValidationPackage.YVALIDATOR__ID:
+			case ValidationPackage.YVALIDATOR__NAME:
+			case ValidationPackage.YVALIDATOR__TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ValidationPackage.YVALIDATOR__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/visibility/provider/VisibilityItemProviderAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/visibility/provider/VisibilityItemProviderAdapterFactory.java
new file mode 100644
index 0000000..99ca062
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/visibility/provider/VisibilityItemProviderAdapterFactory.java
@@ -0,0 +1,273 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.visibility.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.util.VisibilityAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VisibilityItemProviderAdapterFactory extends VisibilityAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This helps manage the child creation extenders.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(ECViewCoreEditPlugin.INSTANCE, VisibilityPackage.eNS_URI);
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VisibilityItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YVisibilityProcessorItemProvider yVisibilityProcessorItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYVisibilityProcessorAdapter() {
+		if (yVisibilityProcessorItemProvider == null) {
+			yVisibilityProcessorItemProvider = new YVisibilityProcessorItemProvider(this);
+		}
+
+		return yVisibilityProcessorItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YVisibilityPropertiesItemProvider yVisibilityPropertiesItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYVisibilityPropertiesAdapter() {
+		if (yVisibilityPropertiesItemProvider == null) {
+			yVisibilityPropertiesItemProvider = new YVisibilityPropertiesItemProvider(this);
+		}
+
+		return yVisibilityPropertiesItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<IChildCreationExtender> getChildCreationExtenders() {
+		return childCreationExtenderManager.getChildCreationExtenders();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+		return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return childCreationExtenderManager;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (yVisibilityProcessorItemProvider != null) yVisibilityProcessorItemProvider.dispose();
+		if (yVisibilityPropertiesItemProvider != null) yVisibilityPropertiesItemProvider.dispose();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/visibility/provider/YVisibilityProcessorItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/visibility/provider/YVisibilityProcessorItemProvider.java
new file mode 100644
index 0000000..e658f03
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/visibility/provider/YVisibilityProcessorItemProvider.java
@@ -0,0 +1,340 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.visibility.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YVisibilityProcessorItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YVisibilityProcessorItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDelegatePropertyDescriptor(object);
+			addDelegateQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Delegate feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDelegatePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProcessor_delegate_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProcessor_delegate_feature", "_UI_YVisibilityProcessor_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__DELEGATE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Delegate Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDelegateQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProcessor_delegateQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProcessor_delegateQualifiedName_feature", "_UI_YVisibilityProcessor_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__DATA_USED);
+			childrenFeatures.add(VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__TRIGGERS_ON);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YVisibilityProcessor)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YVisibilityProcessor_type") :
+			getString("_UI_YVisibilityProcessor_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YVisibilityProcessor.class)) {
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TAGS:
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__ID:
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__NAME:
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE:
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__PROPERTIES:
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DATA_USED:
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TRIGGERS_ON:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__DATA_USED,
+				 BindingFactory.eINSTANCE.createYValueBinding()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__DATA_USED,
+				 BindingFactory.eINSTANCE.createYListBinding()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__TRIGGERS_ON,
+				 BindingFactory.eINSTANCE.createYValueBinding()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__TRIGGERS_ON,
+				 BindingFactory.eINSTANCE.createYListBinding()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__DATA_USED ||
+			childFeature == VisibilityPackage.Literals.YVISIBILITY_PROCESSOR__TRIGGERS_ON;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/visibility/provider/YVisibilityPropertiesItemProvider.java b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/visibility/provider/YVisibilityPropertiesItemProvider.java
new file mode 100644
index 0000000..dd9ac2b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.edit/src/org/eclipse/osbp/ecview/core/common/model/visibility/provider/YVisibilityPropertiesItemProvider.java
@@ -0,0 +1,558 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.visibility.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YColor;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YVisibilityPropertiesItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YVisibilityPropertiesItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addVisiblePropertyDescriptor(object);
+			addEditablePropertyDescriptor(object);
+			addEnabledPropertyDescriptor(object);
+			addBorderPropertyDescriptor(object);
+			addBoldPropertyDescriptor(object);
+			addItalicPropertyDescriptor(object);
+			addStrikethroughPropertyDescriptor(object);
+			addUnderlinePropertyDescriptor(object);
+			addBackgroundColorCodePropertyDescriptor(object);
+			addForegroundColorCodePropertyDescriptor(object);
+			addCssClassPropertyDescriptor(object);
+			addCssIdPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Visible feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVisiblePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_visible_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_visible_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__VISIBLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Editable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEditablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_editable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_editable_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__EDITABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_enabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_enabled_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Border feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBorderPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_border_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_border_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__BORDER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Bold feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBoldPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_bold_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_bold_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__BOLD,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Italic feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addItalicPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_italic_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_italic_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__ITALIC,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Strikethrough feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addStrikethroughPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_strikethrough_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_strikethrough_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__STRIKETHROUGH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Underline feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUnderlinePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_underline_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_underline_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__UNDERLINE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Background Color Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBackgroundColorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_backgroundColorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_backgroundColorCode_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Foreground Color Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addForegroundColorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_foregroundColorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_foregroundColorCode_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css Class feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCssClassPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_cssClass_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_cssClass_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__CSS_CLASS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCssIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVisibilityProperties_cssId_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVisibilityProperties_cssId_feature", "_UI_YVisibilityProperties_type"),
+				 VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__CSS_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR);
+			childrenFeatures.add(VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YVisibilityProperties.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YVisibilityProperties"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YVisibilityProperties)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YVisibilityProperties_type") :
+			getString("_UI_YVisibilityProperties_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YVisibilityProperties.class)) {
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__TAGS:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ID:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__NAME:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__VISIBLE:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__EDITABLE:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ENABLED:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BORDER:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BOLD:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ITALIC:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__STRIKETHROUGH:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__UNDERLINE:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_CLASS:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_ID:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__PROPERTIES:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR:
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR,
+				 YColor.UNDEFINED));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(VisibilityPackage.Literals.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR,
+				 YColor.UNDEFINED));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/.project b/org.eclipse.osbp.ecview.core.common.model.editor/.project
new file mode 100644
index 0000000..2503cf7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.common.model.editor</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.common.model.editor/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..53885eb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.common.model.editor
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.common.model.editor;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin$Implementation
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.osbp.ecview.core.common.model.binding.presentation;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.core.presentation;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.datatypes.presentation;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.validation.presentation;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.visibility.presentation;version="0.9.0"
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.osbp.ecview.core.common.model.edit;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/build.properties b/org.eclipse.osbp.ecview.core.common.model.editor/build.properties
new file mode 100644
index 0000000..5fb0771
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+               icons/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/BindingModelFile.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/BindingModelFile.gif
new file mode 100644
index 0000000..a2cd622
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/BindingModelFile.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/CoreModelModelFile.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/CoreModelModelFile.gif
new file mode 100644
index 0000000..5c0bb21
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/CoreModelModelFile.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/DatatypesModelFile.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/DatatypesModelFile.gif
new file mode 100644
index 0000000..96a88f8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/DatatypesModelFile.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/ValidationModelFile.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/ValidationModelFile.gif
new file mode 100644
index 0000000..bde5220
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/ValidationModelFile.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/VisibilityModelFile.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/VisibilityModelFile.gif
new file mode 100644
index 0000000..0ae2f8c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/obj16/VisibilityModelFile.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewBinding.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewBinding.gif
new file mode 100644
index 0000000..61ca324
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewBinding.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewCoreModel.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewCoreModel.gif
new file mode 100644
index 0000000..67bdac6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewCoreModel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewDatatypes.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewDatatypes.gif
new file mode 100644
index 0000000..4260106
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewDatatypes.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewValidation.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewValidation.gif
new file mode 100644
index 0000000..8d32497
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewValidation.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewVisibility.gif b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewVisibility.gif
new file mode 100644
index 0000000..25f312d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/icons/full/wizban/NewVisibility.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/plugin.properties b/org.eclipse.osbp.ecview.core.common.model.editor/plugin.properties
new file mode 100644
index 0000000..a94ba2d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/plugin.properties
@@ -0,0 +1,89 @@
+#
+
+pluginName = ECViewCore Editor
+providerName = www.example.org
+
+_UI_BindingEditor_menu = &Binding Editor
+_UI_CoreModelEditor_menu = &CoreModel Editor
+_UI_ValidationEditor_menu = &Validation Editor
+_UI_DatatypesEditor_menu = &Datatypes Editor
+_UI_VisibilityEditor_menu = &Visibility Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_BindingModelWizard_label = Binding Model
+_UI_BindingModelWizard_description = Create a new Binding model
+
+_UI_BindingEditor_label = Binding Model Editor
+
+_UI_BindingEditorFilenameDefaultBase = My
+_UI_BindingEditorFilenameExtensions = binding
+
+_UI_CoreModelModelWizard_label = CoreModel Model
+_UI_CoreModelModelWizard_description = Create a new CoreModel model
+
+_UI_CoreModelEditor_label = CoreModel Model Editor
+
+_UI_CoreModelEditorFilenameDefaultBase = My
+_UI_CoreModelEditorFilenameExtensions = coremodel
+
+_UI_ValidationModelWizard_label = Validation Model
+_UI_ValidationModelWizard_description = Create a new Validation model
+
+_UI_ValidationEditor_label = Validation Model Editor
+
+_UI_ValidationEditorFilenameDefaultBase = My
+_UI_ValidationEditorFilenameExtensions = validation
+
+_UI_DatatypesModelWizard_label = Datatypes Model
+_UI_DatatypesModelWizard_description = Create a new Datatypes model
+
+_UI_DatatypesEditor_label = Datatypes Model Editor
+
+_UI_DatatypesEditorFilenameDefaultBase = My
+_UI_DatatypesEditorFilenameExtensions = datatypes
+
+_UI_VisibilityModelWizard_label = Visibility Model
+_UI_VisibilityModelWizard_description = Create a new Visibility model
+
+_UI_VisibilityEditor_label = Visibility Model Editor
+
+_UI_VisibilityEditorFilenameDefaultBase = My
+_UI_VisibilityEditorFilenameExtensions = visibility
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?
+
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/plugin.xml b/org.eclipse.osbp.ecview.core.common.model.editor/plugin.xml
new file mode 100644
index 0000000..6f9768e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/plugin.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated core -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="org.eclipse.osbp.ecview.core.common.model.binding.presentation.BindingModelWizardID"
+            name="%_UI_BindingModelWizard_label"
+            class="org.eclipse.osbp.ecview.core.common.model.binding.presentation.BindingModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/BindingModelFile.gif">
+         <description>%_UI_BindingModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+   <extension point="org.eclipse.ui.editors">
+      <!-- @generated core -->
+      <editor
+            id="org.eclipse.osbp.ecview.core.common.model.binding.presentation.BindingEditorID"
+            name="%_UI_BindingEditor_label"
+            icon="icons/full/obj16/BindingModelFile.gif"
+            extensions="binding"
+            class="org.eclipse.osbp.ecview.core.common.model.binding.presentation.BindingEditor"
+            contributorClass="org.eclipse.osbp.ecview.core.common.model.binding.presentation.BindingActionBarContributor">
+      </editor>
+   </extension>
+
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated core -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="org.eclipse.osbp.ecview.core.common.model.core.presentation.CoreModelModelWizardID"
+            name="%_UI_CoreModelModelWizard_label"
+            class="org.eclipse.osbp.ecview.core.common.model.core.presentation.CoreModelModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/CoreModelModelFile.gif">
+         <description>%_UI_CoreModelModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+   <extension point="org.eclipse.ui.editors">
+      <!-- @generated core -->
+      <editor
+            id="org.eclipse.osbp.ecview.core.common.model.core.presentation.CoreModelEditorID"
+            name="%_UI_CoreModelEditor_label"
+            icon="icons/full/obj16/CoreModelModelFile.gif"
+            extensions="coremodel"
+            class="org.eclipse.osbp.ecview.core.common.model.core.presentation.CoreModelEditor"
+            contributorClass="org.eclipse.osbp.ecview.core.common.model.core.presentation.CoreModelActionBarContributor">
+      </editor>
+   </extension>
+
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated core -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="org.eclipse.osbp.ecview.core.common.model.validation.presentation.ValidationModelWizardID"
+            name="%_UI_ValidationModelWizard_label"
+            class="org.eclipse.osbp.ecview.core.common.model.validation.presentation.ValidationModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/ValidationModelFile.gif">
+         <description>%_UI_ValidationModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+   <extension point="org.eclipse.ui.editors">
+      <!-- @generated core -->
+      <editor
+            id="org.eclipse.osbp.ecview.core.common.model.validation.presentation.ValidationEditorID"
+            name="%_UI_ValidationEditor_label"
+            icon="icons/full/obj16/ValidationModelFile.gif"
+            extensions="validation"
+            class="org.eclipse.osbp.ecview.core.common.model.validation.presentation.ValidationEditor"
+            contributorClass="org.eclipse.osbp.ecview.core.common.model.validation.presentation.ValidationActionBarContributor">
+      </editor>
+   </extension>
+
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated core -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="org.eclipse.osbp.ecview.core.common.model.datatypes.presentation.DatatypesModelWizardID"
+            name="%_UI_DatatypesModelWizard_label"
+            class="org.eclipse.osbp.ecview.core.common.model.datatypes.presentation.DatatypesModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/DatatypesModelFile.gif">
+         <description>%_UI_DatatypesModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+   <extension point="org.eclipse.ui.editors">
+      <!-- @generated core -->
+      <editor
+            id="org.eclipse.osbp.ecview.core.common.model.datatypes.presentation.DatatypesEditorID"
+            name="%_UI_DatatypesEditor_label"
+            icon="icons/full/obj16/DatatypesModelFile.gif"
+            extensions="datatypes"
+            class="org.eclipse.osbp.ecview.core.common.model.datatypes.presentation.DatatypesEditor"
+            contributorClass="org.eclipse.osbp.ecview.core.common.model.datatypes.presentation.DatatypesActionBarContributor">
+      </editor>
+   </extension>
+
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated core -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="org.eclipse.osbp.ecview.core.common.model.visibility.presentation.VisibilityModelWizardID"
+            name="%_UI_VisibilityModelWizard_label"
+            class="org.eclipse.osbp.ecview.core.common.model.visibility.presentation.VisibilityModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/VisibilityModelFile.gif">
+         <description>%_UI_VisibilityModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+   <extension point="org.eclipse.ui.editors">
+      <!-- @generated core -->
+      <editor
+            id="org.eclipse.osbp.ecview.core.common.model.visibility.presentation.VisibilityEditorID"
+            name="%_UI_VisibilityEditor_label"
+            icon="icons/full/obj16/VisibilityModelFile.gif"
+            extensions="visibility"
+            class="org.eclipse.osbp.ecview.core.common.model.visibility.presentation.VisibilityEditor"
+            contributorClass="org.eclipse.osbp.ecview.core.common.model.visibility.presentation.VisibilityActionBarContributor">
+      </editor>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/BindingActionBarContributor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/BindingActionBarContributor.java
new file mode 100644
index 0000000..b9fb7e5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/BindingActionBarContributor.java
@@ -0,0 +1,434 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Binding model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BindingActionBarContributor
+	extends EditingDomainActionBarContributor
+	implements ISelectionChangedListener {
+	/**
+	 * This keeps track of the active editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IEditorPart activeEditorPart;
+
+	/**
+	 * This keeps track of the current selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionProvider selectionProvider;
+
+	/**
+	 * This action opens the Properties view.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction showPropertiesViewAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+			@Override
+			public void run() {
+				try {
+					getPage().showView("org.eclipse.ui.views.PropertySheet");
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * This action refreshes the viewer of the current editor if the editor
+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction refreshViewerAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+			@Override
+			public boolean isEnabled() {
+				return activeEditorPart instanceof IViewerProvider;
+			}
+
+			@Override
+			public void run() {
+				if (activeEditorPart instanceof IViewerProvider) {
+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+					if (viewer != null) {
+						viewer.refresh();
+					}
+				}
+			}
+		};
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createChildActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createChildMenuManager;
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createSiblingActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createSiblingMenuManager;
+
+	/**
+	 * This creates an instance of the contributor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BindingActionBarContributor() {
+		super(ADDITIONS_LAST_STYLE);
+		loadResourceAction = new LoadResourceAction();
+		validateAction = new ValidateAction();
+		controlAction = new ControlAction();
+	}
+
+	/**
+	 * This adds Separators for editor additions to the tool bar.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToToolBar(IToolBarManager toolBarManager) {
+		toolBarManager.add(new Separator("binding-settings"));
+		toolBarManager.add(new Separator("binding-additions"));
+	}
+
+	/**
+	 * This adds to the menu bar a menu and some separators for editor additions,
+	 * as well as the sub-menus for object creation items.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToMenu(IMenuManager menuManager) {
+		super.contributeToMenu(menuManager);
+
+		IMenuManager submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_BindingEditor_menu"), "org.eclipse.osbp.ecview.core.common.model.bindingMenuID");
+		menuManager.insertAfter("additions", submenuManager);
+		submenuManager.add(new Separator("settings"));
+		submenuManager.add(new Separator("actions"));
+		submenuManager.add(new Separator("additions"));
+		submenuManager.add(new Separator("additions-end"));
+
+		// Prepare for CreateChild item addition or removal.
+		//
+		createChildMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		submenuManager.insertBefore("additions", createChildMenuManager);
+
+		// Prepare for CreateSibling item addition or removal.
+		//
+		createSiblingMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+		// Force an update because Eclipse hides empty menus now.
+		//
+		submenuManager.addMenuListener
+			(new IMenuListener() {
+				 public void menuAboutToShow(IMenuManager menuManager) {
+					 menuManager.updateAll(true);
+				 }
+			 });
+
+		addGlobalActions(submenuManager);
+	}
+
+	/**
+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setActiveEditor(IEditorPart part) {
+		super.setActiveEditor(part);
+		activeEditorPart = part;
+
+		// Switch to the new selection provider.
+		//
+		if (selectionProvider != null) {
+			selectionProvider.removeSelectionChangedListener(this);
+		}
+		if (part == null) {
+			selectionProvider = null;
+		}
+		else {
+			selectionProvider = part.getSite().getSelectionProvider();
+			selectionProvider.addSelectionChangedListener(this);
+
+			// Fake a selection changed event to update the menus.
+			//
+			if (selectionProvider.getSelection() != null) {
+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+			}
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+	 * that can be added to the selected object and updating the menus accordingly.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		// Remove any menu items for old selection.
+		//
+		if (createChildMenuManager != null) {
+			depopulateManager(createChildMenuManager, createChildActions);
+		}
+		if (createSiblingMenuManager != null) {
+			depopulateManager(createSiblingMenuManager, createSiblingActions);
+		}
+
+		// Query the new selection for appropriate new child/sibling descriptors
+		//
+		Collection<?> newChildDescriptors = null;
+		Collection<?> newSiblingDescriptors = null;
+
+		ISelection selection = event.getSelection();
+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+			Object object = ((IStructuredSelection)selection).getFirstElement();
+
+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+			newChildDescriptors = domain.getNewChildDescriptors(object, null);
+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+		}
+
+		// Generate actions for selection; populate and redraw the menus.
+		//
+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+		if (createChildMenuManager != null) {
+			populateManager(createChildMenuManager, createChildActions, null);
+			createChildMenuManager.update(true);
+		}
+		if (createSiblingMenuManager != null) {
+			populateManager(createSiblingMenuManager, createSiblingActions, null);
+			createSiblingMenuManager.update(true);
+		}
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+	 * by inserting them before the specified contribution item <code>contributionID</code>.
+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+		if (actions != null) {
+			for (IAction action : actions) {
+				if (contributionID != null) {
+					manager.insertBefore(contributionID, action);
+				}
+				else {
+					manager.add(action);
+				}
+			}
+		}
+	}
+		
+	/**
+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+		if (actions != null) {
+			IContributionItem[] items = manager.getItems();
+			for (int i = 0; i < items.length; i++) {
+				// Look into SubContributionItems
+				//
+				IContributionItem contributionItem = items[i];
+				while (contributionItem instanceof SubContributionItem) {
+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+				}
+
+				// Delete the ActionContributionItems with matching action.
+				//
+				if (contributionItem instanceof ActionContributionItem) {
+					IAction action = ((ActionContributionItem)contributionItem).getAction();
+					if (actions.contains(action)) {
+						manager.remove(contributionItem);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This populates the pop-up menu before it appears.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void menuAboutToShow(IMenuManager menuManager) {
+		super.menuAboutToShow(menuManager);
+		MenuManager submenuManager = null;
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		populateManager(submenuManager, createChildActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		populateManager(submenuManager, createSiblingActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+	}
+
+	/**
+	 * This inserts global actions before the "additions-end" separator.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void addGlobalActions(IMenuManager menuManager) {
+		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
+		menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+		super.addGlobalActions(menuManager);
+	}
+
+	/**
+	 * This ensures that a delete action will clean up all references to deleted objects.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean removeAllReferencesOnDelete() {
+		return true;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/BindingEditor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/BindingEditor.java
new file mode 100644
index 0000000..40096da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/BindingEditor.java
@@ -0,0 +1,1841 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.BindingItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.osbp.ecview.core.common.model.core.provider.CoreModelItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.provider.DatatypesItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.provider.ValidationItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.visibility.provider.VisibilityItemProviderAdapterFactory;
+
+
+/**
+ * This is an example of a Binding model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BindingEditor
+	extends MultiPageEditorPart
+	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+	/**
+	 * This keeps track of the editing domain that is used to track all changes to the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AdapterFactoryEditingDomain editingDomain;
+
+	/**
+	 * This is the one adapter factory used for providing views of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory adapterFactory;
+
+	/**
+	 * This is the content outline page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IContentOutlinePage contentOutlinePage;
+
+	/**
+	 * This is a kludge...
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStatusLineManager contentOutlineStatusLineManager;
+
+	/**
+	 * This is the content outline page's viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer contentOutlineViewer;
+
+	/**
+	 * This is the property sheet page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+	/**
+	 * This is the viewer that shadows the selection in the content outline.
+	 * The parent relation must be correctly defined for this to work.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer selectionViewer;
+
+	/**
+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer parentViewer;
+
+	/**
+	 * This shows how a tree view works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewer;
+
+	/**
+	 * This shows how a list view works.
+	 * A list viewer doesn't support icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ListViewer listViewer;
+
+	/**
+	 * This shows how a table view works.
+	 * A table can be used as a list with icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableViewer tableViewer;
+
+	/**
+	 * This shows how a tree view with columns works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewerWithColumns;
+
+	/**
+	 * This keeps track of the active viewer pane, in the book.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewerPane currentViewerPane;
+
+	/**
+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Viewer currentViewer;
+
+	/**
+	 * This listens to which ever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionChangedListener selectionChangedListener;
+
+	/**
+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+	/**
+	 * This keeps track of the selection of the editor as a whole.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+	/**
+	 * The MarkerHelper is responsible for creating workspace resource markers presented
+	 * in Eclipse's Problems View.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+	/**
+	 * This listens for when the outline becomes active
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPartListener partListener =
+		new IPartListener() {
+			public void partActivated(IWorkbenchPart p) {
+				if (p instanceof ContentOutline) {
+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+						getActionBarContributor().setActiveEditor(BindingEditor.this);
+
+						setCurrentViewer(contentOutlineViewer);
+					}
+				}
+				else if (p instanceof PropertySheet) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+						getActionBarContributor().setActiveEditor(BindingEditor.this);
+						handleActivate();
+					}
+				}
+				else if (p == BindingEditor.this) {
+					handleActivate();
+				}
+			}
+			public void partBroughtToTop(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partClosed(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partDeactivated(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partOpened(IWorkbenchPart p) {
+				// Ignore.
+			}
+		};
+
+	/**
+	 * Resources that have been removed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been changed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been saved.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+	/**
+	 * Map to store the diagnostic associated with a resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+	/**
+	 * Controls whether the problem indication should be updated.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean updateProblemIndication = true;
+
+	/**
+	 * Adapter used to update the problem indication when resources are demanded loaded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EContentAdapter problemIndicationAdapter =
+		new EContentAdapter() {
+			@Override
+			public void notifyChanged(Notification notification) {
+				if (notification.getNotifier() instanceof Resource) {
+					switch (notification.getFeatureID(Resource.class)) {
+						case Resource.RESOURCE__IS_LOADED:
+						case Resource.RESOURCE__ERRORS:
+						case Resource.RESOURCE__WARNINGS: {
+							Resource resource = (Resource)notification.getNotifier();
+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+							if (diagnostic.getSeverity() != Diagnostic.OK) {
+								resourceToDiagnosticMap.put(resource, diagnostic);
+							}
+							else {
+								resourceToDiagnosticMap.remove(resource);
+							}
+
+							if (updateProblemIndication) {
+								getSite().getShell().getDisplay().asyncExec
+									(new Runnable() {
+										 public void run() {
+											 updateProblemIndication();
+										 }
+									 });
+							}
+							break;
+						}
+					}
+				}
+				else {
+					super.notifyChanged(notification);
+				}
+			}
+
+			@Override
+			protected void setTarget(Resource target) {
+				basicSetTarget(target);
+			}
+
+			@Override
+			protected void unsetTarget(Resource target) {
+				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
+			}
+		};
+
+	/**
+	 * This listens for workspace changes.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IResourceChangeListener resourceChangeListener =
+		new IResourceChangeListener() {
+			public void resourceChanged(IResourceChangeEvent event) {
+				IResourceDelta delta = event.getDelta();
+				try {
+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+						protected ResourceSet resourceSet = editingDomain.getResourceSet();
+						protected Collection<Resource> changedResources = new ArrayList<Resource>();
+						protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+						public boolean visit(IResourceDelta delta) {
+							if (delta.getResource().getType() == IResource.FILE) {
+								if (delta.getKind() == IResourceDelta.REMOVED ||
+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+									if (resource != null) {
+										if (delta.getKind() == IResourceDelta.REMOVED) {
+											removedResources.add(resource);
+										}
+										else if (!savedResources.remove(resource)) {
+											changedResources.add(resource);
+										}
+									}
+								}
+								return false;
+							}
+
+							return true;
+						}
+
+						public Collection<Resource> getChangedResources() {
+							return changedResources;
+						}
+
+						public Collection<Resource> getRemovedResources() {
+							return removedResources;
+						}
+					}
+
+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+					delta.accept(visitor);
+
+					if (!visitor.getRemovedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 removedResources.addAll(visitor.getRemovedResources());
+									 if (!isDirty()) {
+										 getSite().getPage().closeEditor(BindingEditor.this, false);
+									 }
+								 }
+							 });
+					}
+
+					if (!visitor.getChangedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 changedResources.addAll(visitor.getChangedResources());
+									 if (getSite().getPage().getActiveEditor() == BindingEditor.this) {
+										 handleActivate();
+									 }
+								 }
+							 });
+					}
+				}
+				catch (CoreException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * Handles activation of the editor or it's associated views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleActivate() {
+		// Recompute the read only state.
+		//
+		if (editingDomain.getResourceToReadOnlyMap() != null) {
+		  editingDomain.getResourceToReadOnlyMap().clear();
+
+		  // Refresh any actions that may become enabled or disabled.
+		  //
+		  setSelection(getSelection());
+		}
+
+		if (!removedResources.isEmpty()) {
+			if (handleDirtyConflict()) {
+				getSite().getPage().closeEditor(BindingEditor.this, false);
+			}
+			else {
+				removedResources.clear();
+				changedResources.clear();
+				savedResources.clear();
+			}
+		}
+		else if (!changedResources.isEmpty()) {
+			changedResources.removeAll(savedResources);
+			handleChangedResources();
+			changedResources.clear();
+			savedResources.clear();
+		}
+	}
+
+	/**
+	 * Handles what to do with changed resources on activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleChangedResources() {
+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+			if (isDirty()) {
+				changedResources.addAll(editingDomain.getResourceSet().getResources());
+			}
+			editingDomain.getCommandStack().flush();
+
+			updateProblemIndication = false;
+			for (Resource resource : changedResources) {
+				if (resource.isLoaded()) {
+					resource.unload();
+					try {
+						resource.load(Collections.EMPTY_MAP);
+					}
+					catch (IOException exception) {
+						if (!resourceToDiagnosticMap.containsKey(resource)) {
+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+						}
+					}
+				}
+			}
+
+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+				setSelection(StructuredSelection.EMPTY);
+			}
+
+			updateProblemIndication = true;
+			updateProblemIndication();
+		}
+	}
+
+	/**
+	 * Updates the problems indication with the information described in the specified diagnostic.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void updateProblemIndication() {
+		if (updateProblemIndication) {
+			BasicDiagnostic diagnostic =
+				new BasicDiagnostic
+					(Diagnostic.OK,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 null,
+					 new Object [] { editingDomain.getResourceSet() });
+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+					diagnostic.add(childDiagnostic);
+				}
+			}
+
+			int lastEditorPage = getPageCount() - 1;
+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					setActivePage(lastEditorPage);
+				}
+			}
+			else if (diagnostic.getSeverity() != Diagnostic.OK) {
+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+				problemEditorPart.setDiagnostic(diagnostic);
+				problemEditorPart.setMarkerHelper(markerHelper);
+				try {
+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+					setPageText(lastEditorPage, problemEditorPart.getPartName());
+					setActivePage(lastEditorPage);
+					showTabs();
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+
+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+				markerHelper.deleteMarkers(editingDomain.getResourceSet());
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					try {
+						markerHelper.createMarkers(diagnostic);
+					}
+					catch (CoreException exception) {
+						ECViewCoreEditorPlugin.INSTANCE.log(exception);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Shows a dialog that asks if conflicting changes should be discarded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean handleDirtyConflict() {
+		return
+			MessageDialog.openQuestion
+				(getSite().getShell(),
+				 getString("_UI_FileConflict_label"),
+				 getString("_WARN_FileConflict"));
+	}
+
+	/**
+	 * This creates a model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BindingEditor() {
+		super();
+		initializeEditingDomain();
+	}
+
+	/**
+	 * This sets up the editing domain for the model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void initializeEditingDomain() {
+		// Create an adapter factory that yields item providers.
+		//
+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new BindingItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new CoreModelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ValidationItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new DatatypesItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new VisibilityItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+		// Create the command stack that will notify this editor as commands are executed.
+		//
+		BasicCommandStack commandStack = new BasicCommandStack();
+
+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+		//
+		commandStack.addCommandStackListener
+			(new CommandStackListener() {
+				 public void commandStackChanged(final EventObject event) {
+					 getContainer().getDisplay().asyncExec
+						 (new Runnable() {
+							  public void run() {
+								  firePropertyChange(IEditorPart.PROP_DIRTY);
+
+								  // Try to select the affected objects.
+								  //
+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+								  if (mostRecentCommand != null) {
+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+								  }
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
+								  }
+							  }
+						  });
+				 }
+			 });
+
+		// Create the editing domain with a special command stack.
+		//
+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+	}
+
+	/**
+	 * This is here for the listener to be able to call it.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+			@Override
+	protected void firePropertyChange(int action) {
+		super.firePropertyChange(action);
+	}
+
+	/**
+	 * This sets the selection into whichever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectionToViewer(Collection<?> collection) {
+		final Collection<?> theSelection = collection;
+		// Make sure it's okay.
+		//
+		if (theSelection != null && !theSelection.isEmpty()) {
+			Runnable runnable =
+				new Runnable() {
+					public void run() {
+						// Try to select the items in the current content viewer of the editor.
+						//
+						if (currentViewer != null) {
+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+						}
+					}
+				};
+			getSite().getShell().getDisplay().asyncExec(runnable);
+		}
+	}
+
+	/**
+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+			super(adapterFactory);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getElements(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getChildren(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public boolean hasChildren(Object object) {
+			Object parent = super.getParent(object);
+			return parent != null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object getParent(Object object) {
+			return null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewerPane(ViewerPane viewerPane) {
+		if (currentViewerPane != viewerPane) {
+			if (currentViewerPane != null) {
+				currentViewerPane.showFocus(false);
+			}
+			currentViewerPane = viewerPane;
+		}
+		setCurrentViewer(currentViewerPane.getViewer());
+	}
+
+	/**
+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+	 * is the current one.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewer(Viewer viewer) {
+		// If it is changing...
+		//
+		if (currentViewer != viewer) {
+			if (selectionChangedListener == null) {
+				// Create the listener on demand.
+				//
+				selectionChangedListener =
+					new ISelectionChangedListener() {
+						// This just notifies those things that are affected by the section.
+						//
+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+							setSelection(selectionChangedEvent.getSelection());
+						}
+					};
+			}
+
+			// Stop listening to the old one.
+			//
+			if (currentViewer != null) {
+				currentViewer.removeSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Start listening to the new one.
+			//
+			if (viewer != null) {
+				viewer.addSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Remember it.
+			//
+			currentViewer = viewer;
+
+			// Set the editors selection based on the current viewer's selection.
+			//
+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+		}
+	}
+
+	/**
+	 * This returns the viewer as required by the {@link IViewerProvider} interface.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Viewer getViewer() {
+		return currentViewer;
+	}
+
+	/**
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createContextMenuFor(StructuredViewer viewer) {
+		MenuManager contextMenu = new MenuManager("#PopUp");
+		contextMenu.add(new Separator("additions"));
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(this);
+		Menu menu= contextMenu.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+	}
+
+	/**
+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createModel() {
+		URI resourceURI = EditUIUtil.getURI(getEditorInput());
+		Exception exception = null;
+		Resource resource = null;
+		try {
+			// Load the resource through the editing domain.
+			//
+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+		}
+		catch (Exception e) {
+			exception = e;
+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+		}
+
+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+		if (diagnostic.getSeverity() != Diagnostic.OK) {
+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
+		}
+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+	}
+
+	/**
+	 * Returns a diagnostic describing the errors and warnings listed in the resource
+	 * and the specified exception (if any).
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+		if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+			BasicDiagnostic basicDiagnostic =
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object [] { exception == null ? (Object)resource : exception });
+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+			return basicDiagnostic;
+		}
+		else if (exception != null) {
+			return
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object[] { exception });
+		}
+		else {
+			return Diagnostic.OK_INSTANCE;
+		}
+	}
+
+	/**
+	 * This is the method used by the framework to install your own controls.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void createPages() {
+		// Creates the model from the editor input
+		//
+		createModel();
+
+		// Only creates the other pages if there is something that can be edited
+		//
+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+			// Create a page for the selection tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), BindingEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				selectionViewer = (TreeViewer)viewerPane.getViewer();
+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				selectionViewer.setInput(editingDomain.getResourceSet());
+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+				viewerPane.setTitle(editingDomain.getResourceSet());
+
+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(selectionViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+			}
+
+			// Create a page for the parent tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), BindingEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				parentViewer = (TreeViewer)viewerPane.getViewer();
+				parentViewer.setAutoExpandLevel(30);
+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(parentViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ParentPage_label"));
+			}
+
+			// This is the page for the list viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), BindingEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new ListViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				listViewer = (ListViewer)viewerPane.getViewer();
+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(listViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ListPage_label"));
+			}
+
+			// This is the page for the tree viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), BindingEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				treeViewer = (TreeViewer)viewerPane.getViewer();
+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(treeViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreePage_label"));
+			}
+
+			// This is the page for the table viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), BindingEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TableViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				tableViewer = (TableViewer)viewerPane.getViewer();
+
+				Table table = tableViewer.getTable();
+				TableLayout layout = new TableLayout();
+				table.setLayout(layout);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
+
+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(3, 100, true));
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+
+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(2, 100, true));
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+
+				tableViewer.setColumnProperties(new String [] {"a", "b"});
+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(tableViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TablePage_label"));
+			}
+
+			// This is the page for the table tree viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), BindingEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+				Tree tree = treeViewerWithColumns.getTree();
+				tree.setLayoutData(new FillLayout());
+				tree.setHeaderVisible(true);
+				tree.setLinesVisible(true);
+
+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+				objectColumn.setWidth(250);
+
+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+				selfColumn.setWidth(200);
+
+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(treeViewerWithColumns);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+			}
+
+			getSite().getShell().getDisplay().asyncExec
+				(new Runnable() {
+					 public void run() {
+						 setActivePage(0);
+					 }
+				 });
+		}
+
+		// Ensures that this editor will only display the page's tab
+		// area if there are more than one page
+		//
+		getContainer().addControlListener
+			(new ControlAdapter() {
+				boolean guard = false;
+				@Override
+				public void controlResized(ControlEvent event) {
+					if (!guard) {
+						guard = true;
+						hideTabs();
+						guard = false;
+					}
+				}
+			 });
+
+		getSite().getShell().getDisplay().asyncExec
+			(new Runnable() {
+				 public void run() {
+					 updateProblemIndication();
+				 }
+			 });
+	}
+
+	/**
+	 * If there is just one page in the multi-page editor part,
+	 * this hides the single tab at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void hideTabs() {
+		if (getPageCount() <= 1) {
+			setPageText(0, "");
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(1);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y + 6);
+			}
+		}
+	}
+
+	/**
+	 * If there is more than one page in the multi-page editor part,
+	 * this shows the tabs at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void showTabs() {
+		if (getPageCount() > 1) {
+			setPageText(0, getString("_UI_SelectionPage_label"));
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y - 6);
+			}
+		}
+	}
+
+	/**
+	 * This is used to track the active viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void pageChange(int pageIndex) {
+		super.pageChange(pageIndex);
+
+		if (contentOutlinePage != null) {
+			handleContentOutlineSelection(contentOutlinePage.getSelection());
+		}
+	}
+
+	/**
+	 * This is how the framework determines which interfaces we implement.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("rawtypes")
+	@Override
+	public Object getAdapter(Class key) {
+		if (key.equals(IContentOutlinePage.class)) {
+			return showOutlineView() ? getContentOutlinePage() : null;
+		}
+		else if (key.equals(IPropertySheetPage.class)) {
+			return getPropertySheetPage();
+		}
+		else if (key.equals(IGotoMarker.class)) {
+			return this;
+		}
+		else {
+			return super.getAdapter(key);
+		}
+	}
+
+	/**
+	 * This accesses a cached version of the content outliner.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IContentOutlinePage getContentOutlinePage() {
+		if (contentOutlinePage == null) {
+			// The content outline is just a tree.
+			//
+			class MyContentOutlinePage extends ContentOutlinePage {
+				@Override
+				public void createControl(Composite parent) {
+					super.createControl(parent);
+					contentOutlineViewer = getTreeViewer();
+					contentOutlineViewer.addSelectionChangedListener(this);
+
+					// Set up the tree viewer.
+					//
+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+					contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+					// Make sure our popups work.
+					//
+					createContextMenuFor(contentOutlineViewer);
+
+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+					  // Select the root object in the view.
+					  //
+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+					}
+				}
+
+				@Override
+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+					super.makeContributions(menuManager, toolBarManager, statusLineManager);
+					contentOutlineStatusLineManager = statusLineManager;
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			}
+
+			contentOutlinePage = new MyContentOutlinePage();
+
+			// Listen to selection so that we can handle it is a special way.
+			//
+			contentOutlinePage.addSelectionChangedListener
+				(new ISelectionChangedListener() {
+					 // This ensures that we handle selections correctly.
+					 //
+					 public void selectionChanged(SelectionChangedEvent event) {
+						 handleContentOutlineSelection(event.getSelection());
+					 }
+				 });
+		}
+
+		return contentOutlinePage;
+	}
+
+	/**
+	 * This accesses a cached version of the property sheet.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPropertySheetPage getPropertySheetPage() {
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					BindingEditor.this.setSelectionToViewer(selection);
+					BindingEditor.this.setFocus();
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
+
+		return propertySheetPage;
+	}
+
+	/**
+	 * This deals with how we want selection in the outliner to affect the other views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void handleContentOutlineSelection(ISelection selection) {
+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+			if (selectedElements.hasNext()) {
+				// Get the first selected element.
+				//
+				Object selectedElement = selectedElements.next();
+
+				// If it's the selection viewer, then we want it to select the same selection as this selection.
+				//
+				if (currentViewerPane.getViewer() == selectionViewer) {
+					ArrayList<Object> selectionList = new ArrayList<Object>();
+					selectionList.add(selectedElement);
+					while (selectedElements.hasNext()) {
+						selectionList.add(selectedElements.next());
+					}
+
+					// Set the selection to the widget.
+					//
+					selectionViewer.setSelection(new StructuredSelection(selectionList));
+				}
+				else {
+					// Set the input to the widget.
+					//
+					if (currentViewerPane.getViewer().getInput() != selectedElement) {
+						currentViewerPane.getViewer().setInput(selectedElement);
+						currentViewerPane.setTitle(selectedElement);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isDirty() {
+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply saves the model file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSave(IProgressMonitor progressMonitor) {
+		// Save only resources that have actually changed.
+		//
+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+		// Do the work within an operation because this is a long running activity that modifies the workbench.
+		//
+		WorkspaceModifyOperation operation =
+			new WorkspaceModifyOperation() {
+				// This is the method that gets invoked when the operation runs.
+				//
+				@Override
+				public void execute(IProgressMonitor monitor) {
+					// Save the resources to the file system.
+					//
+					boolean first = true;
+					for (Resource resource : editingDomain.getResourceSet().getResources()) {
+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+							try {
+								long timeStamp = resource.getTimeStamp();
+								resource.save(saveOptions);
+								if (resource.getTimeStamp() != timeStamp) {
+									savedResources.add(resource);
+								}
+							}
+							catch (Exception exception) {
+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+							}
+							first = false;
+						}
+					}
+				}
+			};
+
+		updateProblemIndication = false;
+		try {
+			// This runs the options, and shows progress.
+			//
+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+			// Refresh the necessary state.
+			//
+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+			firePropertyChange(IEditorPart.PROP_DIRTY);
+		}
+		catch (Exception exception) {
+			// Something went wrong that shouldn't.
+			//
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+		}
+		updateProblemIndication = true;
+		updateProblemIndication();
+	}
+
+	/**
+	 * This returns whether something has been persisted to the URI of the specified resource.
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean isPersisted(Resource resource) {
+		boolean result = false;
+		try {
+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+			if (stream != null) {
+				result = true;
+				stream.close();
+			}
+		}
+		catch (IOException e) {
+			// Ignore
+		}
+		return result;
+	}
+
+	/**
+	 * This always returns true because it is not currently supported.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return true;
+	}
+
+	/**
+	 * This also changes the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSaveAs() {
+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+		saveAsDialog.open();
+		IPath path = saveAsDialog.getResult();
+		if (path != null) {
+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			if (file != null) {
+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+			}
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void doSaveAs(URI uri, IEditorInput editorInput) {
+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		IProgressMonitor progressMonitor =
+			getActionBars().getStatusLineManager() != null ?
+				getActionBars().getStatusLineManager().getProgressMonitor() :
+				new NullProgressMonitor();
+		doSave(progressMonitor);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void gotoMarker(IMarker marker) {
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
+		}
+	}
+
+	/**
+	 * This is called during startup.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput editorInput) {
+		setSite(site);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		site.setSelectionProvider(this);
+		site.getPage().addPartListener(partListener);
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFocus() {
+		if (currentViewerPane != null) {
+			currentViewerPane.setFocus();
+		}
+		else {
+			getControl(getActivePage()).setFocus();
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.add(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.remove(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISelection getSelection() {
+		return editorSelection;
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+	 * Calling this result will notify the listeners.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelection(ISelection selection) {
+		editorSelection = selection;
+
+		for (ISelectionChangedListener listener : selectionChangedListeners) {
+			listener.selectionChanged(new SelectionChangedEvent(this, selection));
+		}
+		setStatusLineManager(selection);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStatusLineManager(ISelection selection) {
+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+		if (statusLineManager != null) {
+			if (selection instanceof IStructuredSelection) {
+				Collection<?> collection = ((IStructuredSelection)selection).toList();
+				switch (collection.size()) {
+					case 0: {
+						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+						break;
+					}
+					case 1: {
+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+						break;
+					}
+					default: {
+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+						break;
+					}
+				}
+			}
+			else {
+				statusLineManager.setMessage("");
+			}
+		}
+	}
+
+	/**
+	 * This looks up a string in the plugin's plugin.properties file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key);
+	}
+
+	/**
+	 * This looks up a string in plugin.properties, making a substitution.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key, Object s1) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void menuAboutToShow(IMenuManager menuManager) {
+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomainActionBarContributor getActionBarContributor() {
+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IActionBars getActionBars() {
+		return getActionBarContributor().getActionBars();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdapterFactory getAdapterFactory() {
+		return adapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void dispose() {
+		updateProblemIndication = false;
+
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+		getSite().getPage().removePartListener(partListener);
+
+		adapterFactory.dispose();
+
+		if (getActionBarContributor().getActiveEditor() == this) {
+			getActionBarContributor().setActiveEditor(null);
+		}
+
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
+			propertySheetPage.dispose();
+		}
+
+		if (contentOutlinePage != null) {
+			contentOutlinePage.dispose();
+		}
+
+		super.dispose();
+	}
+
+	/**
+	 * Returns whether the outline view should be presented to the user.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean showOutlineView() {
+		return true;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/BindingModelWizard.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/BindingModelWizard.java
new file mode 100644
index 0000000..3d7f17e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/BindingModelWizard.java
@@ -0,0 +1,639 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BindingModelWizard extends Wizard implements INewWizard {
+	/**
+	 * The supported extensions for created files.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<String> FILE_EXTENSIONS =
+		Collections.unmodifiableList(Arrays.asList(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_BindingEditorFilenameExtensions").split("\\s*,\\s*")));
+
+	/**
+	 * A formatted list of supported file extensions, suitable for display.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String FORMATTED_FILE_EXTENSIONS =
+		ECViewCoreEditorPlugin.INSTANCE.getString("_UI_BindingEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+	/**
+	 * This caches an instance of the model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BindingPackage bindingPackage = BindingPackage.eINSTANCE;
+
+	/**
+	 * This caches an instance of the model factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BindingFactory bindingFactory = bindingPackage.getBindingFactory();
+
+	/**
+	 * This is the file creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BindingModelWizardNewFileCreationPage newFileCreationPage;
+
+	/**
+	 * This is the initial object creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BindingModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+	/**
+	 * Remember the selection during initialization for populating the default container.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStructuredSelection selection;
+
+	/**
+	 * Remember the workbench during initialization.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IWorkbench workbench;
+
+	/**
+	 * Caches the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<String> initialObjectNames;
+
+	/**
+	 * This just records the information.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ECViewCoreEditorPlugin.INSTANCE.getImage("full/wizban/NewBinding")));
+	}
+
+	/**
+	 * Returns the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<String> getInitialObjectNames() {
+		if (initialObjectNames == null) {
+			initialObjectNames = new ArrayList<String>();
+			for (EClassifier eClassifier : bindingPackage.getEClassifiers()) {
+				if (eClassifier instanceof EClass) {
+					EClass eClass = (EClass)eClassifier;
+					if (!eClass.isAbstract()) {
+						initialObjectNames.add(eClass.getName());
+					}
+				}
+			}
+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+		}
+		return initialObjectNames;
+	}
+
+	/**
+	 * Create a new model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EObject createInitialModel() {
+		EClass eClass = (EClass)bindingPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+		EObject rootObject = bindingFactory.create(eClass);
+		return rootObject;
+	}
+
+	/**
+	 * Do the work after everything is specified.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean performFinish() {
+		try {
+			// Remember the file.
+			//
+			final IFile modelFile = getModelFile();
+
+			// Do the work within an operation.
+			//
+			WorkspaceModifyOperation operation =
+				new WorkspaceModifyOperation() {
+					@Override
+					protected void execute(IProgressMonitor progressMonitor) {
+						try {
+							// Create a resource set
+							//
+							ResourceSet resourceSet = new ResourceSetImpl();
+
+							// Get the URI of the model file.
+							//
+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+							// Create a resource for this file.
+							//
+							Resource resource = resourceSet.createResource(fileURI);
+
+							// Add the initial model object to the contents.
+							//
+							EObject rootObject = createInitialModel();
+							if (rootObject != null) {
+								resource.getContents().add(rootObject);
+							}
+
+							// Save the contents of the resource to the file system.
+							//
+							Map<Object, Object> options = new HashMap<Object, Object>();
+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+							resource.save(options);
+						}
+						catch (Exception exception) {
+							ECViewCoreEditorPlugin.INSTANCE.log(exception);
+						}
+						finally {
+							progressMonitor.done();
+						}
+					}
+				};
+
+			getContainer().run(false, false, operation);
+
+			// Select the new file resource in the current view.
+			//
+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			final IWorkbenchPart activePart = page.getActivePart();
+			if (activePart instanceof ISetSelectionTarget) {
+				final ISelection targetSelection = new StructuredSelection(modelFile);
+				getShell().getDisplay().asyncExec
+					(new Runnable() {
+						 public void run() {
+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+						 }
+					 });
+			}
+
+			// Open an editor on the new file.
+			//
+			try {
+				page.openEditor
+					(new FileEditorInput(modelFile),
+					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
+			}
+			catch (PartInitException exception) {
+				MessageDialog.openError(workbenchWindow.getShell(), ECViewCoreEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+				return false;
+			}
+
+			return true;
+		}
+		catch (Exception exception) {
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+			return false;
+		}
+	}
+
+	/**
+	 * This is the one page of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class BindingModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public BindingModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+			super(pageId, selection);
+		}
+
+		/**
+		 * The framework calls this to see if the file is correct.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		protected boolean validatePage() {
+			if (super.validatePage()) {
+				String extension = new Path(getFileName()).getFileExtension();
+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+					setErrorMessage(ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+					return false;
+				}
+				return true;
+			}
+			return false;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public IFile getModelFile() {
+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+		}
+	}
+
+	/**
+	 * This is the page where the type of object to create is selected.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class BindingModelWizardInitialObjectCreationPage extends WizardPage {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo initialObjectField;
+
+		/**
+		 * @generated
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 */
+		protected List<String> encodings;
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo encodingField;
+
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public BindingModelWizardInitialObjectCreationPage(String pageId) {
+			super(pageId);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public void createControl(Composite parent) {
+			Composite composite = new Composite(parent, SWT.NONE);
+			{
+				GridLayout layout = new GridLayout();
+				layout.numColumns = 1;
+				layout.verticalSpacing = 12;
+				composite.setLayout(layout);
+
+				GridData data = new GridData();
+				data.verticalAlignment = GridData.FILL;
+				data.grabExcessVerticalSpace = true;
+				data.horizontalAlignment = GridData.FILL;
+				composite.setLayoutData(data);
+			}
+
+			Label containerLabel = new Label(composite, SWT.LEFT);
+			{
+				containerLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				containerLabel.setLayoutData(data);
+			}
+
+			initialObjectField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				initialObjectField.setLayoutData(data);
+			}
+
+			for (String objectName : getInitialObjectNames()) {
+				initialObjectField.add(getLabel(objectName));
+			}
+
+			if (initialObjectField.getItemCount() == 1) {
+				initialObjectField.select(0);
+			}
+			initialObjectField.addModifyListener(validator);
+
+			Label encodingLabel = new Label(composite, SWT.LEFT);
+			{
+				encodingLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				encodingLabel.setLayoutData(data);
+			}
+			encodingField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				encodingField.setLayoutData(data);
+			}
+
+			for (String encoding : getEncodings()) {
+				encodingField.add(encoding);
+			}
+
+			encodingField.select(0);
+			encodingField.addModifyListener(validator);
+
+			setPageComplete(validatePage());
+			setControl(composite);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected ModifyListener validator =
+			new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					setPageComplete(validatePage());
+				}
+			};
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected boolean validatePage() {
+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public void setVisible(boolean visible) {
+			super.setVisible(visible);
+			if (visible) {
+				if (initialObjectField.getItemCount() == 1) {
+					initialObjectField.clearSelection();
+					encodingField.setFocus();
+				}
+				else {
+					encodingField.clearSelection();
+					initialObjectField.setFocus();
+				}
+			}
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getInitialObjectName() {
+			String label = initialObjectField.getText();
+
+			for (String name : getInitialObjectNames()) {
+				if (getLabel(name).equals(label)) {
+					return name;
+				}
+			}
+			return null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getEncoding() {
+			return encodingField.getText();
+		}
+
+		/**
+		 * Returns the label for the specified type name.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected String getLabel(String typeName) {
+			try {
+				return ECViewCoreEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+			}
+			catch(MissingResourceException mre) {
+				ECViewCoreEditorPlugin.INSTANCE.log(mre);
+			}
+			return typeName;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Collection<String> getEncodings() {
+			if (encodings == null) {
+				encodings = new ArrayList<String>();
+				for (StringTokenizer stringTokenizer = new StringTokenizer(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+					encodings.add(stringTokenizer.nextToken());
+				}
+			}
+			return encodings;
+		}
+	}
+
+	/**
+	 * The framework calls this to create the contents of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+		@Override
+	public void addPages() {
+		// Create a page, set the title, and the initial model file name.
+		//
+		newFileCreationPage = new BindingModelWizardNewFileCreationPage("Whatever", selection);
+		newFileCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_BindingModelWizard_label"));
+		newFileCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_BindingModelWizard_description"));
+		newFileCreationPage.setFileName(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_BindingEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+		addPage(newFileCreationPage);
+
+		// Try and get the resource selection to determine a current directory for the file dialog.
+		//
+		if (selection != null && !selection.isEmpty()) {
+			// Get the resource...
+			//
+			Object selectedElement = selection.iterator().next();
+			if (selectedElement instanceof IResource) {
+				// Get the resource parent, if its a file.
+				//
+				IResource selectedResource = (IResource)selectedElement;
+				if (selectedResource.getType() == IResource.FILE) {
+					selectedResource = selectedResource.getParent();
+				}
+
+				// This gives us a directory...
+				//
+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+					// Set this for the container.
+					//
+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+					// Make up a unique new name here.
+					//
+					String defaultModelBaseFilename = ECViewCoreEditorPlugin.INSTANCE.getString("_UI_BindingEditorFilenameDefaultBase");
+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+					}
+					newFileCreationPage.setFileName(modelFilename);
+				}
+			}
+		}
+		initialObjectCreationPage = new BindingModelWizardInitialObjectCreationPage("Whatever2");
+		initialObjectCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_BindingModelWizard_label"));
+		initialObjectCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+		addPage(initialObjectCreationPage);
+	}
+
+	/**
+	 * Get the file from the page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IFile getModelFile() {
+		return newFileCreationPage.getModelFile();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/ECViewCoreEditorPlugin.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/ECViewCoreEditorPlugin.java
new file mode 100644
index 0000000..e029c2d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/binding/presentation/ECViewCoreEditorPlugin.java
@@ -0,0 +1,102 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the ECViewCore editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ECViewCoreEditorPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final ECViewCoreEditorPlugin INSTANCE = new ECViewCoreEditorPlugin();
+	
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ECViewCoreEditorPlugin() {
+		super
+			(new ResourceLocator [] {
+			});
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+	
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+	
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipseUIPlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+	
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/core/presentation/CoreModelActionBarContributor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/core/presentation/CoreModelActionBarContributor.java
new file mode 100644
index 0000000..71ca378
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/core/presentation/CoreModelActionBarContributor.java
@@ -0,0 +1,436 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+/**
+ * This is the action bar contributor for the CoreModel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CoreModelActionBarContributor
+	extends EditingDomainActionBarContributor
+	implements ISelectionChangedListener {
+	/**
+	 * This keeps track of the active editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IEditorPart activeEditorPart;
+
+	/**
+	 * This keeps track of the current selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionProvider selectionProvider;
+
+	/**
+	 * This action opens the Properties view.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction showPropertiesViewAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+			@Override
+			public void run() {
+				try {
+					getPage().showView("org.eclipse.ui.views.PropertySheet");
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * This action refreshes the viewer of the current editor if the editor
+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction refreshViewerAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+			@Override
+			public boolean isEnabled() {
+				return activeEditorPart instanceof IViewerProvider;
+			}
+
+			@Override
+			public void run() {
+				if (activeEditorPart instanceof IViewerProvider) {
+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+					if (viewer != null) {
+						viewer.refresh();
+					}
+				}
+			}
+		};
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createChildActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createChildMenuManager;
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createSiblingActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createSiblingMenuManager;
+
+	/**
+	 * This creates an instance of the contributor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CoreModelActionBarContributor() {
+		super(ADDITIONS_LAST_STYLE);
+		loadResourceAction = new LoadResourceAction();
+		validateAction = new ValidateAction();
+		controlAction = new ControlAction();
+	}
+
+	/**
+	 * This adds Separators for editor additions to the tool bar.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToToolBar(IToolBarManager toolBarManager) {
+		toolBarManager.add(new Separator("coremodel-settings"));
+		toolBarManager.add(new Separator("coremodel-additions"));
+	}
+
+	/**
+	 * This adds to the menu bar a menu and some separators for editor additions,
+	 * as well as the sub-menus for object creation items.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToMenu(IMenuManager menuManager) {
+		super.contributeToMenu(menuManager);
+
+		IMenuManager submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CoreModelEditor_menu"), "org.eclipse.osbp.ecview.core.common.model.coreMenuID");
+		menuManager.insertAfter("additions", submenuManager);
+		submenuManager.add(new Separator("settings"));
+		submenuManager.add(new Separator("actions"));
+		submenuManager.add(new Separator("additions"));
+		submenuManager.add(new Separator("additions-end"));
+
+		// Prepare for CreateChild item addition or removal.
+		//
+		createChildMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		submenuManager.insertBefore("additions", createChildMenuManager);
+
+		// Prepare for CreateSibling item addition or removal.
+		//
+		createSiblingMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+		// Force an update because Eclipse hides empty menus now.
+		//
+		submenuManager.addMenuListener
+			(new IMenuListener() {
+				 public void menuAboutToShow(IMenuManager menuManager) {
+					 menuManager.updateAll(true);
+				 }
+			 });
+
+		addGlobalActions(submenuManager);
+	}
+
+	/**
+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setActiveEditor(IEditorPart part) {
+		super.setActiveEditor(part);
+		activeEditorPart = part;
+
+		// Switch to the new selection provider.
+		//
+		if (selectionProvider != null) {
+			selectionProvider.removeSelectionChangedListener(this);
+		}
+		if (part == null) {
+			selectionProvider = null;
+		}
+		else {
+			selectionProvider = part.getSite().getSelectionProvider();
+			selectionProvider.addSelectionChangedListener(this);
+
+			// Fake a selection changed event to update the menus.
+			//
+			if (selectionProvider.getSelection() != null) {
+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+			}
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+	 * that can be added to the selected object and updating the menus accordingly.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		// Remove any menu items for old selection.
+		//
+		if (createChildMenuManager != null) {
+			depopulateManager(createChildMenuManager, createChildActions);
+		}
+		if (createSiblingMenuManager != null) {
+			depopulateManager(createSiblingMenuManager, createSiblingActions);
+		}
+
+		// Query the new selection for appropriate new child/sibling descriptors
+		//
+		Collection<?> newChildDescriptors = null;
+		Collection<?> newSiblingDescriptors = null;
+
+		ISelection selection = event.getSelection();
+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+			Object object = ((IStructuredSelection)selection).getFirstElement();
+
+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+			newChildDescriptors = domain.getNewChildDescriptors(object, null);
+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+		}
+
+		// Generate actions for selection; populate and redraw the menus.
+		//
+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+		if (createChildMenuManager != null) {
+			populateManager(createChildMenuManager, createChildActions, null);
+			createChildMenuManager.update(true);
+		}
+		if (createSiblingMenuManager != null) {
+			populateManager(createSiblingMenuManager, createSiblingActions, null);
+			createSiblingMenuManager.update(true);
+		}
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+	 * by inserting them before the specified contribution item <code>contributionID</code>.
+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+		if (actions != null) {
+			for (IAction action : actions) {
+				if (contributionID != null) {
+					manager.insertBefore(contributionID, action);
+				}
+				else {
+					manager.add(action);
+				}
+			}
+		}
+	}
+		
+	/**
+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+		if (actions != null) {
+			IContributionItem[] items = manager.getItems();
+			for (int i = 0; i < items.length; i++) {
+				// Look into SubContributionItems
+				//
+				IContributionItem contributionItem = items[i];
+				while (contributionItem instanceof SubContributionItem) {
+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+				}
+
+				// Delete the ActionContributionItems with matching action.
+				//
+				if (contributionItem instanceof ActionContributionItem) {
+					IAction action = ((ActionContributionItem)contributionItem).getAction();
+					if (actions.contains(action)) {
+						manager.remove(contributionItem);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This populates the pop-up menu before it appears.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void menuAboutToShow(IMenuManager menuManager) {
+		super.menuAboutToShow(menuManager);
+		MenuManager submenuManager = null;
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		populateManager(submenuManager, createChildActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		populateManager(submenuManager, createSiblingActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+	}
+
+	/**
+	 * This inserts global actions before the "additions-end" separator.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void addGlobalActions(IMenuManager menuManager) {
+		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
+		menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+		super.addGlobalActions(menuManager);
+	}
+
+	/**
+	 * This ensures that a delete action will clean up all references to deleted objects.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean removeAllReferencesOnDelete() {
+		return true;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/core/presentation/CoreModelEditor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/core/presentation/CoreModelEditor.java
new file mode 100644
index 0000000..2444078
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/core/presentation/CoreModelEditor.java
@@ -0,0 +1,1843 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.osbp.ecview.core.common.model.core.provider.CoreModelItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.BindingItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.provider.DatatypesItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.provider.ValidationItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.visibility.provider.VisibilityItemProviderAdapterFactory;
+
+
+/**
+ * This is an example of a CoreModel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CoreModelEditor
+	extends MultiPageEditorPart
+	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+	/**
+	 * This keeps track of the editing domain that is used to track all changes to the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AdapterFactoryEditingDomain editingDomain;
+
+	/**
+	 * This is the one adapter factory used for providing views of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory adapterFactory;
+
+	/**
+	 * This is the content outline page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IContentOutlinePage contentOutlinePage;
+
+	/**
+	 * This is a kludge...
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStatusLineManager contentOutlineStatusLineManager;
+
+	/**
+	 * This is the content outline page's viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer contentOutlineViewer;
+
+	/**
+	 * This is the property sheet page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+	/**
+	 * This is the viewer that shadows the selection in the content outline.
+	 * The parent relation must be correctly defined for this to work.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer selectionViewer;
+
+	/**
+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer parentViewer;
+
+	/**
+	 * This shows how a tree view works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewer;
+
+	/**
+	 * This shows how a list view works.
+	 * A list viewer doesn't support icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ListViewer listViewer;
+
+	/**
+	 * This shows how a table view works.
+	 * A table can be used as a list with icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableViewer tableViewer;
+
+	/**
+	 * This shows how a tree view with columns works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewerWithColumns;
+
+	/**
+	 * This keeps track of the active viewer pane, in the book.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewerPane currentViewerPane;
+
+	/**
+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Viewer currentViewer;
+
+	/**
+	 * This listens to which ever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionChangedListener selectionChangedListener;
+
+	/**
+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+	/**
+	 * This keeps track of the selection of the editor as a whole.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+	/**
+	 * The MarkerHelper is responsible for creating workspace resource markers presented
+	 * in Eclipse's Problems View.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+	/**
+	 * This listens for when the outline becomes active
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPartListener partListener =
+		new IPartListener() {
+			public void partActivated(IWorkbenchPart p) {
+				if (p instanceof ContentOutline) {
+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+						getActionBarContributor().setActiveEditor(CoreModelEditor.this);
+
+						setCurrentViewer(contentOutlineViewer);
+					}
+				}
+				else if (p instanceof PropertySheet) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+						getActionBarContributor().setActiveEditor(CoreModelEditor.this);
+						handleActivate();
+					}
+				}
+				else if (p == CoreModelEditor.this) {
+					handleActivate();
+				}
+			}
+			public void partBroughtToTop(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partClosed(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partDeactivated(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partOpened(IWorkbenchPart p) {
+				// Ignore.
+			}
+		};
+
+	/**
+	 * Resources that have been removed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been changed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been saved.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+	/**
+	 * Map to store the diagnostic associated with a resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+	/**
+	 * Controls whether the problem indication should be updated.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean updateProblemIndication = true;
+
+	/**
+	 * Adapter used to update the problem indication when resources are demanded loaded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EContentAdapter problemIndicationAdapter =
+		new EContentAdapter() {
+			@Override
+			public void notifyChanged(Notification notification) {
+				if (notification.getNotifier() instanceof Resource) {
+					switch (notification.getFeatureID(Resource.class)) {
+						case Resource.RESOURCE__IS_LOADED:
+						case Resource.RESOURCE__ERRORS:
+						case Resource.RESOURCE__WARNINGS: {
+							Resource resource = (Resource)notification.getNotifier();
+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+							if (diagnostic.getSeverity() != Diagnostic.OK) {
+								resourceToDiagnosticMap.put(resource, diagnostic);
+							}
+							else {
+								resourceToDiagnosticMap.remove(resource);
+							}
+
+							if (updateProblemIndication) {
+								getSite().getShell().getDisplay().asyncExec
+									(new Runnable() {
+										 public void run() {
+											 updateProblemIndication();
+										 }
+									 });
+							}
+							break;
+						}
+					}
+				}
+				else {
+					super.notifyChanged(notification);
+				}
+			}
+
+			@Override
+			protected void setTarget(Resource target) {
+				basicSetTarget(target);
+			}
+
+			@Override
+			protected void unsetTarget(Resource target) {
+				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
+			}
+		};
+
+	/**
+	 * This listens for workspace changes.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IResourceChangeListener resourceChangeListener =
+		new IResourceChangeListener() {
+			public void resourceChanged(IResourceChangeEvent event) {
+				IResourceDelta delta = event.getDelta();
+				try {
+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+						protected ResourceSet resourceSet = editingDomain.getResourceSet();
+						protected Collection<Resource> changedResources = new ArrayList<Resource>();
+						protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+						public boolean visit(IResourceDelta delta) {
+							if (delta.getResource().getType() == IResource.FILE) {
+								if (delta.getKind() == IResourceDelta.REMOVED ||
+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+									if (resource != null) {
+										if (delta.getKind() == IResourceDelta.REMOVED) {
+											removedResources.add(resource);
+										}
+										else if (!savedResources.remove(resource)) {
+											changedResources.add(resource);
+										}
+									}
+								}
+								return false;
+							}
+
+							return true;
+						}
+
+						public Collection<Resource> getChangedResources() {
+							return changedResources;
+						}
+
+						public Collection<Resource> getRemovedResources() {
+							return removedResources;
+						}
+					}
+
+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+					delta.accept(visitor);
+
+					if (!visitor.getRemovedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 removedResources.addAll(visitor.getRemovedResources());
+									 if (!isDirty()) {
+										 getSite().getPage().closeEditor(CoreModelEditor.this, false);
+									 }
+								 }
+							 });
+					}
+
+					if (!visitor.getChangedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 changedResources.addAll(visitor.getChangedResources());
+									 if (getSite().getPage().getActiveEditor() == CoreModelEditor.this) {
+										 handleActivate();
+									 }
+								 }
+							 });
+					}
+				}
+				catch (CoreException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * Handles activation of the editor or it's associated views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleActivate() {
+		// Recompute the read only state.
+		//
+		if (editingDomain.getResourceToReadOnlyMap() != null) {
+		  editingDomain.getResourceToReadOnlyMap().clear();
+
+		  // Refresh any actions that may become enabled or disabled.
+		  //
+		  setSelection(getSelection());
+		}
+
+		if (!removedResources.isEmpty()) {
+			if (handleDirtyConflict()) {
+				getSite().getPage().closeEditor(CoreModelEditor.this, false);
+			}
+			else {
+				removedResources.clear();
+				changedResources.clear();
+				savedResources.clear();
+			}
+		}
+		else if (!changedResources.isEmpty()) {
+			changedResources.removeAll(savedResources);
+			handleChangedResources();
+			changedResources.clear();
+			savedResources.clear();
+		}
+	}
+
+	/**
+	 * Handles what to do with changed resources on activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleChangedResources() {
+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+			if (isDirty()) {
+				changedResources.addAll(editingDomain.getResourceSet().getResources());
+			}
+			editingDomain.getCommandStack().flush();
+
+			updateProblemIndication = false;
+			for (Resource resource : changedResources) {
+				if (resource.isLoaded()) {
+					resource.unload();
+					try {
+						resource.load(Collections.EMPTY_MAP);
+					}
+					catch (IOException exception) {
+						if (!resourceToDiagnosticMap.containsKey(resource)) {
+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+						}
+					}
+				}
+			}
+
+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+				setSelection(StructuredSelection.EMPTY);
+			}
+
+			updateProblemIndication = true;
+			updateProblemIndication();
+		}
+	}
+
+	/**
+	 * Updates the problems indication with the information described in the specified diagnostic.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void updateProblemIndication() {
+		if (updateProblemIndication) {
+			BasicDiagnostic diagnostic =
+				new BasicDiagnostic
+					(Diagnostic.OK,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 null,
+					 new Object [] { editingDomain.getResourceSet() });
+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+					diagnostic.add(childDiagnostic);
+				}
+			}
+
+			int lastEditorPage = getPageCount() - 1;
+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					setActivePage(lastEditorPage);
+				}
+			}
+			else if (diagnostic.getSeverity() != Diagnostic.OK) {
+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+				problemEditorPart.setDiagnostic(diagnostic);
+				problemEditorPart.setMarkerHelper(markerHelper);
+				try {
+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+					setPageText(lastEditorPage, problemEditorPart.getPartName());
+					setActivePage(lastEditorPage);
+					showTabs();
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+
+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+				markerHelper.deleteMarkers(editingDomain.getResourceSet());
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					try {
+						markerHelper.createMarkers(diagnostic);
+					}
+					catch (CoreException exception) {
+						ECViewCoreEditorPlugin.INSTANCE.log(exception);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Shows a dialog that asks if conflicting changes should be discarded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean handleDirtyConflict() {
+		return
+			MessageDialog.openQuestion
+				(getSite().getShell(),
+				 getString("_UI_FileConflict_label"),
+				 getString("_WARN_FileConflict"));
+	}
+
+	/**
+	 * This creates a model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CoreModelEditor() {
+		super();
+		initializeEditingDomain();
+	}
+
+	/**
+	 * This sets up the editing domain for the model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void initializeEditingDomain() {
+		// Create an adapter factory that yields item providers.
+		//
+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new BindingItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new CoreModelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ValidationItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new DatatypesItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new VisibilityItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+		// Create the command stack that will notify this editor as commands are executed.
+		//
+		BasicCommandStack commandStack = new BasicCommandStack();
+
+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+		//
+		commandStack.addCommandStackListener
+			(new CommandStackListener() {
+				 public void commandStackChanged(final EventObject event) {
+					 getContainer().getDisplay().asyncExec
+						 (new Runnable() {
+							  public void run() {
+								  firePropertyChange(IEditorPart.PROP_DIRTY);
+
+								  // Try to select the affected objects.
+								  //
+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+								  if (mostRecentCommand != null) {
+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+								  }
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
+								  }
+							  }
+						  });
+				 }
+			 });
+
+		// Create the editing domain with a special command stack.
+		//
+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+	}
+
+	/**
+	 * This is here for the listener to be able to call it.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+			@Override
+	protected void firePropertyChange(int action) {
+		super.firePropertyChange(action);
+	}
+
+	/**
+	 * This sets the selection into whichever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectionToViewer(Collection<?> collection) {
+		final Collection<?> theSelection = collection;
+		// Make sure it's okay.
+		//
+		if (theSelection != null && !theSelection.isEmpty()) {
+			Runnable runnable =
+				new Runnable() {
+					public void run() {
+						// Try to select the items in the current content viewer of the editor.
+						//
+						if (currentViewer != null) {
+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+						}
+					}
+				};
+			getSite().getShell().getDisplay().asyncExec(runnable);
+		}
+	}
+
+	/**
+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+			super(adapterFactory);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getElements(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getChildren(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public boolean hasChildren(Object object) {
+			Object parent = super.getParent(object);
+			return parent != null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object getParent(Object object) {
+			return null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewerPane(ViewerPane viewerPane) {
+		if (currentViewerPane != viewerPane) {
+			if (currentViewerPane != null) {
+				currentViewerPane.showFocus(false);
+			}
+			currentViewerPane = viewerPane;
+		}
+		setCurrentViewer(currentViewerPane.getViewer());
+	}
+
+	/**
+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+	 * is the current one.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewer(Viewer viewer) {
+		// If it is changing...
+		//
+		if (currentViewer != viewer) {
+			if (selectionChangedListener == null) {
+				// Create the listener on demand.
+				//
+				selectionChangedListener =
+					new ISelectionChangedListener() {
+						// This just notifies those things that are affected by the section.
+						//
+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+							setSelection(selectionChangedEvent.getSelection());
+						}
+					};
+			}
+
+			// Stop listening to the old one.
+			//
+			if (currentViewer != null) {
+				currentViewer.removeSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Start listening to the new one.
+			//
+			if (viewer != null) {
+				viewer.addSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Remember it.
+			//
+			currentViewer = viewer;
+
+			// Set the editors selection based on the current viewer's selection.
+			//
+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+		}
+	}
+
+	/**
+	 * This returns the viewer as required by the {@link IViewerProvider} interface.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Viewer getViewer() {
+		return currentViewer;
+	}
+
+	/**
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createContextMenuFor(StructuredViewer viewer) {
+		MenuManager contextMenu = new MenuManager("#PopUp");
+		contextMenu.add(new Separator("additions"));
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(this);
+		Menu menu= contextMenu.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+	}
+
+	/**
+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createModel() {
+		URI resourceURI = EditUIUtil.getURI(getEditorInput());
+		Exception exception = null;
+		Resource resource = null;
+		try {
+			// Load the resource through the editing domain.
+			//
+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+		}
+		catch (Exception e) {
+			exception = e;
+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+		}
+
+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+		if (diagnostic.getSeverity() != Diagnostic.OK) {
+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
+		}
+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+	}
+
+	/**
+	 * Returns a diagnostic describing the errors and warnings listed in the resource
+	 * and the specified exception (if any).
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+		if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+			BasicDiagnostic basicDiagnostic =
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object [] { exception == null ? (Object)resource : exception });
+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+			return basicDiagnostic;
+		}
+		else if (exception != null) {
+			return
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object[] { exception });
+		}
+		else {
+			return Diagnostic.OK_INSTANCE;
+		}
+	}
+
+	/**
+	 * This is the method used by the framework to install your own controls.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void createPages() {
+		// Creates the model from the editor input
+		//
+		createModel();
+
+		// Only creates the other pages if there is something that can be edited
+		//
+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+			// Create a page for the selection tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), CoreModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				selectionViewer = (TreeViewer)viewerPane.getViewer();
+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				selectionViewer.setInput(editingDomain.getResourceSet());
+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+				viewerPane.setTitle(editingDomain.getResourceSet());
+
+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(selectionViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+			}
+
+			// Create a page for the parent tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), CoreModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				parentViewer = (TreeViewer)viewerPane.getViewer();
+				parentViewer.setAutoExpandLevel(30);
+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(parentViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ParentPage_label"));
+			}
+
+			// This is the page for the list viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), CoreModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new ListViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				listViewer = (ListViewer)viewerPane.getViewer();
+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(listViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ListPage_label"));
+			}
+
+			// This is the page for the tree viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), CoreModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				treeViewer = (TreeViewer)viewerPane.getViewer();
+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(treeViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreePage_label"));
+			}
+
+			// This is the page for the table viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), CoreModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TableViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				tableViewer = (TableViewer)viewerPane.getViewer();
+
+				Table table = tableViewer.getTable();
+				TableLayout layout = new TableLayout();
+				table.setLayout(layout);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
+
+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(3, 100, true));
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+
+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(2, 100, true));
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+
+				tableViewer.setColumnProperties(new String [] {"a", "b"});
+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(tableViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TablePage_label"));
+			}
+
+			// This is the page for the table tree viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), CoreModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+				Tree tree = treeViewerWithColumns.getTree();
+				tree.setLayoutData(new FillLayout());
+				tree.setHeaderVisible(true);
+				tree.setLinesVisible(true);
+
+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+				objectColumn.setWidth(250);
+
+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+				selfColumn.setWidth(200);
+
+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(treeViewerWithColumns);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+			}
+
+			getSite().getShell().getDisplay().asyncExec
+				(new Runnable() {
+					 public void run() {
+						 setActivePage(0);
+					 }
+				 });
+		}
+
+		// Ensures that this editor will only display the page's tab
+		// area if there are more than one page
+		//
+		getContainer().addControlListener
+			(new ControlAdapter() {
+				boolean guard = false;
+				@Override
+				public void controlResized(ControlEvent event) {
+					if (!guard) {
+						guard = true;
+						hideTabs();
+						guard = false;
+					}
+				}
+			 });
+
+		getSite().getShell().getDisplay().asyncExec
+			(new Runnable() {
+				 public void run() {
+					 updateProblemIndication();
+				 }
+			 });
+	}
+
+	/**
+	 * If there is just one page in the multi-page editor part,
+	 * this hides the single tab at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void hideTabs() {
+		if (getPageCount() <= 1) {
+			setPageText(0, "");
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(1);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y + 6);
+			}
+		}
+	}
+
+	/**
+	 * If there is more than one page in the multi-page editor part,
+	 * this shows the tabs at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void showTabs() {
+		if (getPageCount() > 1) {
+			setPageText(0, getString("_UI_SelectionPage_label"));
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y - 6);
+			}
+		}
+	}
+
+	/**
+	 * This is used to track the active viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void pageChange(int pageIndex) {
+		super.pageChange(pageIndex);
+
+		if (contentOutlinePage != null) {
+			handleContentOutlineSelection(contentOutlinePage.getSelection());
+		}
+	}
+
+	/**
+	 * This is how the framework determines which interfaces we implement.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("rawtypes")
+	@Override
+	public Object getAdapter(Class key) {
+		if (key.equals(IContentOutlinePage.class)) {
+			return showOutlineView() ? getContentOutlinePage() : null;
+		}
+		else if (key.equals(IPropertySheetPage.class)) {
+			return getPropertySheetPage();
+		}
+		else if (key.equals(IGotoMarker.class)) {
+			return this;
+		}
+		else {
+			return super.getAdapter(key);
+		}
+	}
+
+	/**
+	 * This accesses a cached version of the content outliner.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IContentOutlinePage getContentOutlinePage() {
+		if (contentOutlinePage == null) {
+			// The content outline is just a tree.
+			//
+			class MyContentOutlinePage extends ContentOutlinePage {
+				@Override
+				public void createControl(Composite parent) {
+					super.createControl(parent);
+					contentOutlineViewer = getTreeViewer();
+					contentOutlineViewer.addSelectionChangedListener(this);
+
+					// Set up the tree viewer.
+					//
+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+					contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+					// Make sure our popups work.
+					//
+					createContextMenuFor(contentOutlineViewer);
+
+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+					  // Select the root object in the view.
+					  //
+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+					}
+				}
+
+				@Override
+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+					super.makeContributions(menuManager, toolBarManager, statusLineManager);
+					contentOutlineStatusLineManager = statusLineManager;
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			}
+
+			contentOutlinePage = new MyContentOutlinePage();
+
+			// Listen to selection so that we can handle it is a special way.
+			//
+			contentOutlinePage.addSelectionChangedListener
+				(new ISelectionChangedListener() {
+					 // This ensures that we handle selections correctly.
+					 //
+					 public void selectionChanged(SelectionChangedEvent event) {
+						 handleContentOutlineSelection(event.getSelection());
+					 }
+				 });
+		}
+
+		return contentOutlinePage;
+	}
+
+	/**
+	 * This accesses a cached version of the property sheet.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPropertySheetPage getPropertySheetPage() {
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					CoreModelEditor.this.setSelectionToViewer(selection);
+					CoreModelEditor.this.setFocus();
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
+
+		return propertySheetPage;
+	}
+
+	/**
+	 * This deals with how we want selection in the outliner to affect the other views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void handleContentOutlineSelection(ISelection selection) {
+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+			if (selectedElements.hasNext()) {
+				// Get the first selected element.
+				//
+				Object selectedElement = selectedElements.next();
+
+				// If it's the selection viewer, then we want it to select the same selection as this selection.
+				//
+				if (currentViewerPane.getViewer() == selectionViewer) {
+					ArrayList<Object> selectionList = new ArrayList<Object>();
+					selectionList.add(selectedElement);
+					while (selectedElements.hasNext()) {
+						selectionList.add(selectedElements.next());
+					}
+
+					// Set the selection to the widget.
+					//
+					selectionViewer.setSelection(new StructuredSelection(selectionList));
+				}
+				else {
+					// Set the input to the widget.
+					//
+					if (currentViewerPane.getViewer().getInput() != selectedElement) {
+						currentViewerPane.getViewer().setInput(selectedElement);
+						currentViewerPane.setTitle(selectedElement);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isDirty() {
+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply saves the model file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSave(IProgressMonitor progressMonitor) {
+		// Save only resources that have actually changed.
+		//
+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+		// Do the work within an operation because this is a long running activity that modifies the workbench.
+		//
+		WorkspaceModifyOperation operation =
+			new WorkspaceModifyOperation() {
+				// This is the method that gets invoked when the operation runs.
+				//
+				@Override
+				public void execute(IProgressMonitor monitor) {
+					// Save the resources to the file system.
+					//
+					boolean first = true;
+					for (Resource resource : editingDomain.getResourceSet().getResources()) {
+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+							try {
+								long timeStamp = resource.getTimeStamp();
+								resource.save(saveOptions);
+								if (resource.getTimeStamp() != timeStamp) {
+									savedResources.add(resource);
+								}
+							}
+							catch (Exception exception) {
+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+							}
+							first = false;
+						}
+					}
+				}
+			};
+
+		updateProblemIndication = false;
+		try {
+			// This runs the options, and shows progress.
+			//
+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+			// Refresh the necessary state.
+			//
+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+			firePropertyChange(IEditorPart.PROP_DIRTY);
+		}
+		catch (Exception exception) {
+			// Something went wrong that shouldn't.
+			//
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+		}
+		updateProblemIndication = true;
+		updateProblemIndication();
+	}
+
+	/**
+	 * This returns whether something has been persisted to the URI of the specified resource.
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean isPersisted(Resource resource) {
+		boolean result = false;
+		try {
+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+			if (stream != null) {
+				result = true;
+				stream.close();
+			}
+		}
+		catch (IOException e) {
+			// Ignore
+		}
+		return result;
+	}
+
+	/**
+	 * This always returns true because it is not currently supported.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return true;
+	}
+
+	/**
+	 * This also changes the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSaveAs() {
+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+		saveAsDialog.open();
+		IPath path = saveAsDialog.getResult();
+		if (path != null) {
+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			if (file != null) {
+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+			}
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void doSaveAs(URI uri, IEditorInput editorInput) {
+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		IProgressMonitor progressMonitor =
+			getActionBars().getStatusLineManager() != null ?
+				getActionBars().getStatusLineManager().getProgressMonitor() :
+				new NullProgressMonitor();
+		doSave(progressMonitor);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void gotoMarker(IMarker marker) {
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
+		}
+	}
+
+	/**
+	 * This is called during startup.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput editorInput) {
+		setSite(site);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		site.setSelectionProvider(this);
+		site.getPage().addPartListener(partListener);
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFocus() {
+		if (currentViewerPane != null) {
+			currentViewerPane.setFocus();
+		}
+		else {
+			getControl(getActivePage()).setFocus();
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.add(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.remove(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISelection getSelection() {
+		return editorSelection;
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+	 * Calling this result will notify the listeners.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelection(ISelection selection) {
+		editorSelection = selection;
+
+		for (ISelectionChangedListener listener : selectionChangedListeners) {
+			listener.selectionChanged(new SelectionChangedEvent(this, selection));
+		}
+		setStatusLineManager(selection);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStatusLineManager(ISelection selection) {
+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+		if (statusLineManager != null) {
+			if (selection instanceof IStructuredSelection) {
+				Collection<?> collection = ((IStructuredSelection)selection).toList();
+				switch (collection.size()) {
+					case 0: {
+						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+						break;
+					}
+					case 1: {
+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+						break;
+					}
+					default: {
+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+						break;
+					}
+				}
+			}
+			else {
+				statusLineManager.setMessage("");
+			}
+		}
+	}
+
+	/**
+	 * This looks up a string in the plugin's plugin.properties file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key);
+	}
+
+	/**
+	 * This looks up a string in plugin.properties, making a substitution.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key, Object s1) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void menuAboutToShow(IMenuManager menuManager) {
+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomainActionBarContributor getActionBarContributor() {
+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IActionBars getActionBars() {
+		return getActionBarContributor().getActionBars();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdapterFactory getAdapterFactory() {
+		return adapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void dispose() {
+		updateProblemIndication = false;
+
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+		getSite().getPage().removePartListener(partListener);
+
+		adapterFactory.dispose();
+
+		if (getActionBarContributor().getActiveEditor() == this) {
+			getActionBarContributor().setActiveEditor(null);
+		}
+
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
+			propertySheetPage.dispose();
+		}
+
+		if (contentOutlinePage != null) {
+			contentOutlinePage.dispose();
+		}
+
+		super.dispose();
+	}
+
+	/**
+	 * Returns whether the outline view should be presented to the user.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean showOutlineView() {
+		return true;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/core/presentation/CoreModelModelWizard.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/core/presentation/CoreModelModelWizard.java
new file mode 100644
index 0000000..488c67c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/core/presentation/CoreModelModelWizard.java
@@ -0,0 +1,641 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CoreModelModelWizard extends Wizard implements INewWizard {
+	/**
+	 * The supported extensions for created files.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<String> FILE_EXTENSIONS =
+		Collections.unmodifiableList(Arrays.asList(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CoreModelEditorFilenameExtensions").split("\\s*,\\s*")));
+
+	/**
+	 * A formatted list of supported file extensions, suitable for display.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String FORMATTED_FILE_EXTENSIONS =
+		ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CoreModelEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+	/**
+	 * This caches an instance of the model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CoreModelPackage coreModelPackage = CoreModelPackage.eINSTANCE;
+
+	/**
+	 * This caches an instance of the model factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CoreModelFactory coreModelFactory = coreModelPackage.getCoreModelFactory();
+
+	/**
+	 * This is the file creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CoreModelModelWizardNewFileCreationPage newFileCreationPage;
+
+	/**
+	 * This is the initial object creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CoreModelModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+	/**
+	 * Remember the selection during initialization for populating the default container.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStructuredSelection selection;
+
+	/**
+	 * Remember the workbench during initialization.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IWorkbench workbench;
+
+	/**
+	 * Caches the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<String> initialObjectNames;
+
+	/**
+	 * This just records the information.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ECViewCoreEditorPlugin.INSTANCE.getImage("full/wizban/NewCoreModel")));
+	}
+
+	/**
+	 * Returns the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<String> getInitialObjectNames() {
+		if (initialObjectNames == null) {
+			initialObjectNames = new ArrayList<String>();
+			for (EClassifier eClassifier : coreModelPackage.getEClassifiers()) {
+				if (eClassifier instanceof EClass) {
+					EClass eClass = (EClass)eClassifier;
+					if (!eClass.isAbstract()) {
+						initialObjectNames.add(eClass.getName());
+					}
+				}
+			}
+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+		}
+		return initialObjectNames;
+	}
+
+	/**
+	 * Create a new model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EObject createInitialModel() {
+		EClass eClass = (EClass)coreModelPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+		EObject rootObject = coreModelFactory.create(eClass);
+		return rootObject;
+	}
+
+	/**
+	 * Do the work after everything is specified.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean performFinish() {
+		try {
+			// Remember the file.
+			//
+			final IFile modelFile = getModelFile();
+
+			// Do the work within an operation.
+			//
+			WorkspaceModifyOperation operation =
+				new WorkspaceModifyOperation() {
+					@Override
+					protected void execute(IProgressMonitor progressMonitor) {
+						try {
+							// Create a resource set
+							//
+							ResourceSet resourceSet = new ResourceSetImpl();
+
+							// Get the URI of the model file.
+							//
+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+							// Create a resource for this file.
+							//
+							Resource resource = resourceSet.createResource(fileURI);
+
+							// Add the initial model object to the contents.
+							//
+							EObject rootObject = createInitialModel();
+							if (rootObject != null) {
+								resource.getContents().add(rootObject);
+							}
+
+							// Save the contents of the resource to the file system.
+							//
+							Map<Object, Object> options = new HashMap<Object, Object>();
+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+							resource.save(options);
+						}
+						catch (Exception exception) {
+							ECViewCoreEditorPlugin.INSTANCE.log(exception);
+						}
+						finally {
+							progressMonitor.done();
+						}
+					}
+				};
+
+			getContainer().run(false, false, operation);
+
+			// Select the new file resource in the current view.
+			//
+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			final IWorkbenchPart activePart = page.getActivePart();
+			if (activePart instanceof ISetSelectionTarget) {
+				final ISelection targetSelection = new StructuredSelection(modelFile);
+				getShell().getDisplay().asyncExec
+					(new Runnable() {
+						 public void run() {
+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+						 }
+					 });
+			}
+
+			// Open an editor on the new file.
+			//
+			try {
+				page.openEditor
+					(new FileEditorInput(modelFile),
+					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
+			}
+			catch (PartInitException exception) {
+				MessageDialog.openError(workbenchWindow.getShell(), ECViewCoreEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+				return false;
+			}
+
+			return true;
+		}
+		catch (Exception exception) {
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+			return false;
+		}
+	}
+
+	/**
+	 * This is the one page of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class CoreModelModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public CoreModelModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+			super(pageId, selection);
+		}
+
+		/**
+		 * The framework calls this to see if the file is correct.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		protected boolean validatePage() {
+			if (super.validatePage()) {
+				String extension = new Path(getFileName()).getFileExtension();
+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+					setErrorMessage(ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+					return false;
+				}
+				return true;
+			}
+			return false;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public IFile getModelFile() {
+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+		}
+	}
+
+	/**
+	 * This is the page where the type of object to create is selected.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class CoreModelModelWizardInitialObjectCreationPage extends WizardPage {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo initialObjectField;
+
+		/**
+		 * @generated
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 */
+		protected List<String> encodings;
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo encodingField;
+
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public CoreModelModelWizardInitialObjectCreationPage(String pageId) {
+			super(pageId);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public void createControl(Composite parent) {
+			Composite composite = new Composite(parent, SWT.NONE);
+			{
+				GridLayout layout = new GridLayout();
+				layout.numColumns = 1;
+				layout.verticalSpacing = 12;
+				composite.setLayout(layout);
+
+				GridData data = new GridData();
+				data.verticalAlignment = GridData.FILL;
+				data.grabExcessVerticalSpace = true;
+				data.horizontalAlignment = GridData.FILL;
+				composite.setLayoutData(data);
+			}
+
+			Label containerLabel = new Label(composite, SWT.LEFT);
+			{
+				containerLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				containerLabel.setLayoutData(data);
+			}
+
+			initialObjectField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				initialObjectField.setLayoutData(data);
+			}
+
+			for (String objectName : getInitialObjectNames()) {
+				initialObjectField.add(getLabel(objectName));
+			}
+
+			if (initialObjectField.getItemCount() == 1) {
+				initialObjectField.select(0);
+			}
+			initialObjectField.addModifyListener(validator);
+
+			Label encodingLabel = new Label(composite, SWT.LEFT);
+			{
+				encodingLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				encodingLabel.setLayoutData(data);
+			}
+			encodingField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				encodingField.setLayoutData(data);
+			}
+
+			for (String encoding : getEncodings()) {
+				encodingField.add(encoding);
+			}
+
+			encodingField.select(0);
+			encodingField.addModifyListener(validator);
+
+			setPageComplete(validatePage());
+			setControl(composite);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected ModifyListener validator =
+			new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					setPageComplete(validatePage());
+				}
+			};
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected boolean validatePage() {
+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public void setVisible(boolean visible) {
+			super.setVisible(visible);
+			if (visible) {
+				if (initialObjectField.getItemCount() == 1) {
+					initialObjectField.clearSelection();
+					encodingField.setFocus();
+				}
+				else {
+					encodingField.clearSelection();
+					initialObjectField.setFocus();
+				}
+			}
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getInitialObjectName() {
+			String label = initialObjectField.getText();
+
+			for (String name : getInitialObjectNames()) {
+				if (getLabel(name).equals(label)) {
+					return name;
+				}
+			}
+			return null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getEncoding() {
+			return encodingField.getText();
+		}
+
+		/**
+		 * Returns the label for the specified type name.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected String getLabel(String typeName) {
+			try {
+				return ECViewCoreEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+			}
+			catch(MissingResourceException mre) {
+				ECViewCoreEditorPlugin.INSTANCE.log(mre);
+			}
+			return typeName;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Collection<String> getEncodings() {
+			if (encodings == null) {
+				encodings = new ArrayList<String>();
+				for (StringTokenizer stringTokenizer = new StringTokenizer(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+					encodings.add(stringTokenizer.nextToken());
+				}
+			}
+			return encodings;
+		}
+	}
+
+	/**
+	 * The framework calls this to create the contents of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+		@Override
+	public void addPages() {
+		// Create a page, set the title, and the initial model file name.
+		//
+		newFileCreationPage = new CoreModelModelWizardNewFileCreationPage("Whatever", selection);
+		newFileCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CoreModelModelWizard_label"));
+		newFileCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CoreModelModelWizard_description"));
+		newFileCreationPage.setFileName(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CoreModelEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+		addPage(newFileCreationPage);
+
+		// Try and get the resource selection to determine a current directory for the file dialog.
+		//
+		if (selection != null && !selection.isEmpty()) {
+			// Get the resource...
+			//
+			Object selectedElement = selection.iterator().next();
+			if (selectedElement instanceof IResource) {
+				// Get the resource parent, if its a file.
+				//
+				IResource selectedResource = (IResource)selectedElement;
+				if (selectedResource.getType() == IResource.FILE) {
+					selectedResource = selectedResource.getParent();
+				}
+
+				// This gives us a directory...
+				//
+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+					// Set this for the container.
+					//
+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+					// Make up a unique new name here.
+					//
+					String defaultModelBaseFilename = ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CoreModelEditorFilenameDefaultBase");
+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+					}
+					newFileCreationPage.setFileName(modelFilename);
+				}
+			}
+		}
+		initialObjectCreationPage = new CoreModelModelWizardInitialObjectCreationPage("Whatever2");
+		initialObjectCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CoreModelModelWizard_label"));
+		initialObjectCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+		addPage(initialObjectCreationPage);
+	}
+
+	/**
+	 * Get the file from the page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IFile getModelFile() {
+		return newFileCreationPage.getModelFile();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/datatypes/presentation/DatatypesActionBarContributor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/datatypes/presentation/DatatypesActionBarContributor.java
new file mode 100644
index 0000000..05c4819
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/datatypes/presentation/DatatypesActionBarContributor.java
@@ -0,0 +1,436 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.datatypes.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+/**
+ * This is the action bar contributor for the Datatypes model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatatypesActionBarContributor
+	extends EditingDomainActionBarContributor
+	implements ISelectionChangedListener {
+	/**
+	 * This keeps track of the active editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IEditorPart activeEditorPart;
+
+	/**
+	 * This keeps track of the current selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionProvider selectionProvider;
+
+	/**
+	 * This action opens the Properties view.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction showPropertiesViewAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+			@Override
+			public void run() {
+				try {
+					getPage().showView("org.eclipse.ui.views.PropertySheet");
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * This action refreshes the viewer of the current editor if the editor
+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction refreshViewerAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+			@Override
+			public boolean isEnabled() {
+				return activeEditorPart instanceof IViewerProvider;
+			}
+
+			@Override
+			public void run() {
+				if (activeEditorPart instanceof IViewerProvider) {
+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+					if (viewer != null) {
+						viewer.refresh();
+					}
+				}
+			}
+		};
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createChildActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createChildMenuManager;
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createSiblingActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createSiblingMenuManager;
+
+	/**
+	 * This creates an instance of the contributor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatatypesActionBarContributor() {
+		super(ADDITIONS_LAST_STYLE);
+		loadResourceAction = new LoadResourceAction();
+		validateAction = new ValidateAction();
+		controlAction = new ControlAction();
+	}
+
+	/**
+	 * This adds Separators for editor additions to the tool bar.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToToolBar(IToolBarManager toolBarManager) {
+		toolBarManager.add(new Separator("datatypes-settings"));
+		toolBarManager.add(new Separator("datatypes-additions"));
+	}
+
+	/**
+	 * This adds to the menu bar a menu and some separators for editor additions,
+	 * as well as the sub-menus for object creation items.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToMenu(IMenuManager menuManager) {
+		super.contributeToMenu(menuManager);
+
+		IMenuManager submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_DatatypesEditor_menu"), "org.eclipse.osbp.ecview.core.common.model.datatypesMenuID");
+		menuManager.insertAfter("additions", submenuManager);
+		submenuManager.add(new Separator("settings"));
+		submenuManager.add(new Separator("actions"));
+		submenuManager.add(new Separator("additions"));
+		submenuManager.add(new Separator("additions-end"));
+
+		// Prepare for CreateChild item addition or removal.
+		//
+		createChildMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		submenuManager.insertBefore("additions", createChildMenuManager);
+
+		// Prepare for CreateSibling item addition or removal.
+		//
+		createSiblingMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+		// Force an update because Eclipse hides empty menus now.
+		//
+		submenuManager.addMenuListener
+			(new IMenuListener() {
+				 public void menuAboutToShow(IMenuManager menuManager) {
+					 menuManager.updateAll(true);
+				 }
+			 });
+
+		addGlobalActions(submenuManager);
+	}
+
+	/**
+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setActiveEditor(IEditorPart part) {
+		super.setActiveEditor(part);
+		activeEditorPart = part;
+
+		// Switch to the new selection provider.
+		//
+		if (selectionProvider != null) {
+			selectionProvider.removeSelectionChangedListener(this);
+		}
+		if (part == null) {
+			selectionProvider = null;
+		}
+		else {
+			selectionProvider = part.getSite().getSelectionProvider();
+			selectionProvider.addSelectionChangedListener(this);
+
+			// Fake a selection changed event to update the menus.
+			//
+			if (selectionProvider.getSelection() != null) {
+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+			}
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+	 * that can be added to the selected object and updating the menus accordingly.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		// Remove any menu items for old selection.
+		//
+		if (createChildMenuManager != null) {
+			depopulateManager(createChildMenuManager, createChildActions);
+		}
+		if (createSiblingMenuManager != null) {
+			depopulateManager(createSiblingMenuManager, createSiblingActions);
+		}
+
+		// Query the new selection for appropriate new child/sibling descriptors
+		//
+		Collection<?> newChildDescriptors = null;
+		Collection<?> newSiblingDescriptors = null;
+
+		ISelection selection = event.getSelection();
+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+			Object object = ((IStructuredSelection)selection).getFirstElement();
+
+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+			newChildDescriptors = domain.getNewChildDescriptors(object, null);
+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+		}
+
+		// Generate actions for selection; populate and redraw the menus.
+		//
+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+		if (createChildMenuManager != null) {
+			populateManager(createChildMenuManager, createChildActions, null);
+			createChildMenuManager.update(true);
+		}
+		if (createSiblingMenuManager != null) {
+			populateManager(createSiblingMenuManager, createSiblingActions, null);
+			createSiblingMenuManager.update(true);
+		}
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+	 * by inserting them before the specified contribution item <code>contributionID</code>.
+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+		if (actions != null) {
+			for (IAction action : actions) {
+				if (contributionID != null) {
+					manager.insertBefore(contributionID, action);
+				}
+				else {
+					manager.add(action);
+				}
+			}
+		}
+	}
+		
+	/**
+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+		if (actions != null) {
+			IContributionItem[] items = manager.getItems();
+			for (int i = 0; i < items.length; i++) {
+				// Look into SubContributionItems
+				//
+				IContributionItem contributionItem = items[i];
+				while (contributionItem instanceof SubContributionItem) {
+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+				}
+
+				// Delete the ActionContributionItems with matching action.
+				//
+				if (contributionItem instanceof ActionContributionItem) {
+					IAction action = ((ActionContributionItem)contributionItem).getAction();
+					if (actions.contains(action)) {
+						manager.remove(contributionItem);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This populates the pop-up menu before it appears.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void menuAboutToShow(IMenuManager menuManager) {
+		super.menuAboutToShow(menuManager);
+		MenuManager submenuManager = null;
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		populateManager(submenuManager, createChildActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		populateManager(submenuManager, createSiblingActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+	}
+
+	/**
+	 * This inserts global actions before the "additions-end" separator.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void addGlobalActions(IMenuManager menuManager) {
+		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
+		menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+		super.addGlobalActions(menuManager);
+	}
+
+	/**
+	 * This ensures that a delete action will clean up all references to deleted objects.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean removeAllReferencesOnDelete() {
+		return true;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/datatypes/presentation/DatatypesEditor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/datatypes/presentation/DatatypesEditor.java
new file mode 100644
index 0000000..091fe44
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/datatypes/presentation/DatatypesEditor.java
@@ -0,0 +1,1843 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.datatypes.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.provider.DatatypesItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.BindingItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.core.provider.CoreModelItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.provider.ValidationItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.visibility.provider.VisibilityItemProviderAdapterFactory;
+
+
+/**
+ * This is an example of a Datatypes model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatatypesEditor
+	extends MultiPageEditorPart
+	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+	/**
+	 * This keeps track of the editing domain that is used to track all changes to the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AdapterFactoryEditingDomain editingDomain;
+
+	/**
+	 * This is the one adapter factory used for providing views of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory adapterFactory;
+
+	/**
+	 * This is the content outline page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IContentOutlinePage contentOutlinePage;
+
+	/**
+	 * This is a kludge...
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStatusLineManager contentOutlineStatusLineManager;
+
+	/**
+	 * This is the content outline page's viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer contentOutlineViewer;
+
+	/**
+	 * This is the property sheet page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+	/**
+	 * This is the viewer that shadows the selection in the content outline.
+	 * The parent relation must be correctly defined for this to work.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer selectionViewer;
+
+	/**
+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer parentViewer;
+
+	/**
+	 * This shows how a tree view works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewer;
+
+	/**
+	 * This shows how a list view works.
+	 * A list viewer doesn't support icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ListViewer listViewer;
+
+	/**
+	 * This shows how a table view works.
+	 * A table can be used as a list with icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableViewer tableViewer;
+
+	/**
+	 * This shows how a tree view with columns works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewerWithColumns;
+
+	/**
+	 * This keeps track of the active viewer pane, in the book.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewerPane currentViewerPane;
+
+	/**
+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Viewer currentViewer;
+
+	/**
+	 * This listens to which ever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionChangedListener selectionChangedListener;
+
+	/**
+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+	/**
+	 * This keeps track of the selection of the editor as a whole.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+	/**
+	 * The MarkerHelper is responsible for creating workspace resource markers presented
+	 * in Eclipse's Problems View.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+	/**
+	 * This listens for when the outline becomes active
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPartListener partListener =
+		new IPartListener() {
+			public void partActivated(IWorkbenchPart p) {
+				if (p instanceof ContentOutline) {
+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+						getActionBarContributor().setActiveEditor(DatatypesEditor.this);
+
+						setCurrentViewer(contentOutlineViewer);
+					}
+				}
+				else if (p instanceof PropertySheet) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+						getActionBarContributor().setActiveEditor(DatatypesEditor.this);
+						handleActivate();
+					}
+				}
+				else if (p == DatatypesEditor.this) {
+					handleActivate();
+				}
+			}
+			public void partBroughtToTop(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partClosed(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partDeactivated(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partOpened(IWorkbenchPart p) {
+				// Ignore.
+			}
+		};
+
+	/**
+	 * Resources that have been removed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been changed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been saved.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+	/**
+	 * Map to store the diagnostic associated with a resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+	/**
+	 * Controls whether the problem indication should be updated.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean updateProblemIndication = true;
+
+	/**
+	 * Adapter used to update the problem indication when resources are demanded loaded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EContentAdapter problemIndicationAdapter =
+		new EContentAdapter() {
+			@Override
+			public void notifyChanged(Notification notification) {
+				if (notification.getNotifier() instanceof Resource) {
+					switch (notification.getFeatureID(Resource.class)) {
+						case Resource.RESOURCE__IS_LOADED:
+						case Resource.RESOURCE__ERRORS:
+						case Resource.RESOURCE__WARNINGS: {
+							Resource resource = (Resource)notification.getNotifier();
+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+							if (diagnostic.getSeverity() != Diagnostic.OK) {
+								resourceToDiagnosticMap.put(resource, diagnostic);
+							}
+							else {
+								resourceToDiagnosticMap.remove(resource);
+							}
+
+							if (updateProblemIndication) {
+								getSite().getShell().getDisplay().asyncExec
+									(new Runnable() {
+										 public void run() {
+											 updateProblemIndication();
+										 }
+									 });
+							}
+							break;
+						}
+					}
+				}
+				else {
+					super.notifyChanged(notification);
+				}
+			}
+
+			@Override
+			protected void setTarget(Resource target) {
+				basicSetTarget(target);
+			}
+
+			@Override
+			protected void unsetTarget(Resource target) {
+				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
+			}
+		};
+
+	/**
+	 * This listens for workspace changes.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IResourceChangeListener resourceChangeListener =
+		new IResourceChangeListener() {
+			public void resourceChanged(IResourceChangeEvent event) {
+				IResourceDelta delta = event.getDelta();
+				try {
+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+						protected ResourceSet resourceSet = editingDomain.getResourceSet();
+						protected Collection<Resource> changedResources = new ArrayList<Resource>();
+						protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+						public boolean visit(IResourceDelta delta) {
+							if (delta.getResource().getType() == IResource.FILE) {
+								if (delta.getKind() == IResourceDelta.REMOVED ||
+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+									if (resource != null) {
+										if (delta.getKind() == IResourceDelta.REMOVED) {
+											removedResources.add(resource);
+										}
+										else if (!savedResources.remove(resource)) {
+											changedResources.add(resource);
+										}
+									}
+								}
+								return false;
+							}
+
+							return true;
+						}
+
+						public Collection<Resource> getChangedResources() {
+							return changedResources;
+						}
+
+						public Collection<Resource> getRemovedResources() {
+							return removedResources;
+						}
+					}
+
+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+					delta.accept(visitor);
+
+					if (!visitor.getRemovedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 removedResources.addAll(visitor.getRemovedResources());
+									 if (!isDirty()) {
+										 getSite().getPage().closeEditor(DatatypesEditor.this, false);
+									 }
+								 }
+							 });
+					}
+
+					if (!visitor.getChangedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 changedResources.addAll(visitor.getChangedResources());
+									 if (getSite().getPage().getActiveEditor() == DatatypesEditor.this) {
+										 handleActivate();
+									 }
+								 }
+							 });
+					}
+				}
+				catch (CoreException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * Handles activation of the editor or it's associated views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleActivate() {
+		// Recompute the read only state.
+		//
+		if (editingDomain.getResourceToReadOnlyMap() != null) {
+		  editingDomain.getResourceToReadOnlyMap().clear();
+
+		  // Refresh any actions that may become enabled or disabled.
+		  //
+		  setSelection(getSelection());
+		}
+
+		if (!removedResources.isEmpty()) {
+			if (handleDirtyConflict()) {
+				getSite().getPage().closeEditor(DatatypesEditor.this, false);
+			}
+			else {
+				removedResources.clear();
+				changedResources.clear();
+				savedResources.clear();
+			}
+		}
+		else if (!changedResources.isEmpty()) {
+			changedResources.removeAll(savedResources);
+			handleChangedResources();
+			changedResources.clear();
+			savedResources.clear();
+		}
+	}
+
+	/**
+	 * Handles what to do with changed resources on activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleChangedResources() {
+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+			if (isDirty()) {
+				changedResources.addAll(editingDomain.getResourceSet().getResources());
+			}
+			editingDomain.getCommandStack().flush();
+
+			updateProblemIndication = false;
+			for (Resource resource : changedResources) {
+				if (resource.isLoaded()) {
+					resource.unload();
+					try {
+						resource.load(Collections.EMPTY_MAP);
+					}
+					catch (IOException exception) {
+						if (!resourceToDiagnosticMap.containsKey(resource)) {
+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+						}
+					}
+				}
+			}
+
+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+				setSelection(StructuredSelection.EMPTY);
+			}
+
+			updateProblemIndication = true;
+			updateProblemIndication();
+		}
+	}
+
+	/**
+	 * Updates the problems indication with the information described in the specified diagnostic.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void updateProblemIndication() {
+		if (updateProblemIndication) {
+			BasicDiagnostic diagnostic =
+				new BasicDiagnostic
+					(Diagnostic.OK,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 null,
+					 new Object [] { editingDomain.getResourceSet() });
+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+					diagnostic.add(childDiagnostic);
+				}
+			}
+
+			int lastEditorPage = getPageCount() - 1;
+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					setActivePage(lastEditorPage);
+				}
+			}
+			else if (diagnostic.getSeverity() != Diagnostic.OK) {
+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+				problemEditorPart.setDiagnostic(diagnostic);
+				problemEditorPart.setMarkerHelper(markerHelper);
+				try {
+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+					setPageText(lastEditorPage, problemEditorPart.getPartName());
+					setActivePage(lastEditorPage);
+					showTabs();
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+
+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+				markerHelper.deleteMarkers(editingDomain.getResourceSet());
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					try {
+						markerHelper.createMarkers(diagnostic);
+					}
+					catch (CoreException exception) {
+						ECViewCoreEditorPlugin.INSTANCE.log(exception);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Shows a dialog that asks if conflicting changes should be discarded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean handleDirtyConflict() {
+		return
+			MessageDialog.openQuestion
+				(getSite().getShell(),
+				 getString("_UI_FileConflict_label"),
+				 getString("_WARN_FileConflict"));
+	}
+
+	/**
+	 * This creates a model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatatypesEditor() {
+		super();
+		initializeEditingDomain();
+	}
+
+	/**
+	 * This sets up the editing domain for the model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void initializeEditingDomain() {
+		// Create an adapter factory that yields item providers.
+		//
+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new BindingItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new CoreModelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ValidationItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new DatatypesItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new VisibilityItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+		// Create the command stack that will notify this editor as commands are executed.
+		//
+		BasicCommandStack commandStack = new BasicCommandStack();
+
+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+		//
+		commandStack.addCommandStackListener
+			(new CommandStackListener() {
+				 public void commandStackChanged(final EventObject event) {
+					 getContainer().getDisplay().asyncExec
+						 (new Runnable() {
+							  public void run() {
+								  firePropertyChange(IEditorPart.PROP_DIRTY);
+
+								  // Try to select the affected objects.
+								  //
+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+								  if (mostRecentCommand != null) {
+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+								  }
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
+								  }
+							  }
+						  });
+				 }
+			 });
+
+		// Create the editing domain with a special command stack.
+		//
+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+	}
+
+	/**
+	 * This is here for the listener to be able to call it.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+			@Override
+	protected void firePropertyChange(int action) {
+		super.firePropertyChange(action);
+	}
+
+	/**
+	 * This sets the selection into whichever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectionToViewer(Collection<?> collection) {
+		final Collection<?> theSelection = collection;
+		// Make sure it's okay.
+		//
+		if (theSelection != null && !theSelection.isEmpty()) {
+			Runnable runnable =
+				new Runnable() {
+					public void run() {
+						// Try to select the items in the current content viewer of the editor.
+						//
+						if (currentViewer != null) {
+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+						}
+					}
+				};
+			getSite().getShell().getDisplay().asyncExec(runnable);
+		}
+	}
+
+	/**
+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+			super(adapterFactory);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getElements(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getChildren(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public boolean hasChildren(Object object) {
+			Object parent = super.getParent(object);
+			return parent != null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object getParent(Object object) {
+			return null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewerPane(ViewerPane viewerPane) {
+		if (currentViewerPane != viewerPane) {
+			if (currentViewerPane != null) {
+				currentViewerPane.showFocus(false);
+			}
+			currentViewerPane = viewerPane;
+		}
+		setCurrentViewer(currentViewerPane.getViewer());
+	}
+
+	/**
+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+	 * is the current one.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewer(Viewer viewer) {
+		// If it is changing...
+		//
+		if (currentViewer != viewer) {
+			if (selectionChangedListener == null) {
+				// Create the listener on demand.
+				//
+				selectionChangedListener =
+					new ISelectionChangedListener() {
+						// This just notifies those things that are affected by the section.
+						//
+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+							setSelection(selectionChangedEvent.getSelection());
+						}
+					};
+			}
+
+			// Stop listening to the old one.
+			//
+			if (currentViewer != null) {
+				currentViewer.removeSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Start listening to the new one.
+			//
+			if (viewer != null) {
+				viewer.addSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Remember it.
+			//
+			currentViewer = viewer;
+
+			// Set the editors selection based on the current viewer's selection.
+			//
+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+		}
+	}
+
+	/**
+	 * This returns the viewer as required by the {@link IViewerProvider} interface.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Viewer getViewer() {
+		return currentViewer;
+	}
+
+	/**
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createContextMenuFor(StructuredViewer viewer) {
+		MenuManager contextMenu = new MenuManager("#PopUp");
+		contextMenu.add(new Separator("additions"));
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(this);
+		Menu menu= contextMenu.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+	}
+
+	/**
+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createModel() {
+		URI resourceURI = EditUIUtil.getURI(getEditorInput());
+		Exception exception = null;
+		Resource resource = null;
+		try {
+			// Load the resource through the editing domain.
+			//
+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+		}
+		catch (Exception e) {
+			exception = e;
+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+		}
+
+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+		if (diagnostic.getSeverity() != Diagnostic.OK) {
+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
+		}
+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+	}
+
+	/**
+	 * Returns a diagnostic describing the errors and warnings listed in the resource
+	 * and the specified exception (if any).
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+		if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+			BasicDiagnostic basicDiagnostic =
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object [] { exception == null ? (Object)resource : exception });
+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+			return basicDiagnostic;
+		}
+		else if (exception != null) {
+			return
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object[] { exception });
+		}
+		else {
+			return Diagnostic.OK_INSTANCE;
+		}
+	}
+
+	/**
+	 * This is the method used by the framework to install your own controls.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void createPages() {
+		// Creates the model from the editor input
+		//
+		createModel();
+
+		// Only creates the other pages if there is something that can be edited
+		//
+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+			// Create a page for the selection tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), DatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				selectionViewer = (TreeViewer)viewerPane.getViewer();
+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				selectionViewer.setInput(editingDomain.getResourceSet());
+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+				viewerPane.setTitle(editingDomain.getResourceSet());
+
+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(selectionViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+			}
+
+			// Create a page for the parent tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), DatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				parentViewer = (TreeViewer)viewerPane.getViewer();
+				parentViewer.setAutoExpandLevel(30);
+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(parentViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ParentPage_label"));
+			}
+
+			// This is the page for the list viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), DatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new ListViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				listViewer = (ListViewer)viewerPane.getViewer();
+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(listViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ListPage_label"));
+			}
+
+			// This is the page for the tree viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), DatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				treeViewer = (TreeViewer)viewerPane.getViewer();
+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(treeViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreePage_label"));
+			}
+
+			// This is the page for the table viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), DatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TableViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				tableViewer = (TableViewer)viewerPane.getViewer();
+
+				Table table = tableViewer.getTable();
+				TableLayout layout = new TableLayout();
+				table.setLayout(layout);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
+
+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(3, 100, true));
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+
+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(2, 100, true));
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+
+				tableViewer.setColumnProperties(new String [] {"a", "b"});
+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(tableViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TablePage_label"));
+			}
+
+			// This is the page for the table tree viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), DatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+				Tree tree = treeViewerWithColumns.getTree();
+				tree.setLayoutData(new FillLayout());
+				tree.setHeaderVisible(true);
+				tree.setLinesVisible(true);
+
+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+				objectColumn.setWidth(250);
+
+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+				selfColumn.setWidth(200);
+
+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(treeViewerWithColumns);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+			}
+
+			getSite().getShell().getDisplay().asyncExec
+				(new Runnable() {
+					 public void run() {
+						 setActivePage(0);
+					 }
+				 });
+		}
+
+		// Ensures that this editor will only display the page's tab
+		// area if there are more than one page
+		//
+		getContainer().addControlListener
+			(new ControlAdapter() {
+				boolean guard = false;
+				@Override
+				public void controlResized(ControlEvent event) {
+					if (!guard) {
+						guard = true;
+						hideTabs();
+						guard = false;
+					}
+				}
+			 });
+
+		getSite().getShell().getDisplay().asyncExec
+			(new Runnable() {
+				 public void run() {
+					 updateProblemIndication();
+				 }
+			 });
+	}
+
+	/**
+	 * If there is just one page in the multi-page editor part,
+	 * this hides the single tab at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void hideTabs() {
+		if (getPageCount() <= 1) {
+			setPageText(0, "");
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(1);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y + 6);
+			}
+		}
+	}
+
+	/**
+	 * If there is more than one page in the multi-page editor part,
+	 * this shows the tabs at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void showTabs() {
+		if (getPageCount() > 1) {
+			setPageText(0, getString("_UI_SelectionPage_label"));
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y - 6);
+			}
+		}
+	}
+
+	/**
+	 * This is used to track the active viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void pageChange(int pageIndex) {
+		super.pageChange(pageIndex);
+
+		if (contentOutlinePage != null) {
+			handleContentOutlineSelection(contentOutlinePage.getSelection());
+		}
+	}
+
+	/**
+	 * This is how the framework determines which interfaces we implement.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("rawtypes")
+	@Override
+	public Object getAdapter(Class key) {
+		if (key.equals(IContentOutlinePage.class)) {
+			return showOutlineView() ? getContentOutlinePage() : null;
+		}
+		else if (key.equals(IPropertySheetPage.class)) {
+			return getPropertySheetPage();
+		}
+		else if (key.equals(IGotoMarker.class)) {
+			return this;
+		}
+		else {
+			return super.getAdapter(key);
+		}
+	}
+
+	/**
+	 * This accesses a cached version of the content outliner.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IContentOutlinePage getContentOutlinePage() {
+		if (contentOutlinePage == null) {
+			// The content outline is just a tree.
+			//
+			class MyContentOutlinePage extends ContentOutlinePage {
+				@Override
+				public void createControl(Composite parent) {
+					super.createControl(parent);
+					contentOutlineViewer = getTreeViewer();
+					contentOutlineViewer.addSelectionChangedListener(this);
+
+					// Set up the tree viewer.
+					//
+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+					contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+					// Make sure our popups work.
+					//
+					createContextMenuFor(contentOutlineViewer);
+
+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+					  // Select the root object in the view.
+					  //
+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+					}
+				}
+
+				@Override
+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+					super.makeContributions(menuManager, toolBarManager, statusLineManager);
+					contentOutlineStatusLineManager = statusLineManager;
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			}
+
+			contentOutlinePage = new MyContentOutlinePage();
+
+			// Listen to selection so that we can handle it is a special way.
+			//
+			contentOutlinePage.addSelectionChangedListener
+				(new ISelectionChangedListener() {
+					 // This ensures that we handle selections correctly.
+					 //
+					 public void selectionChanged(SelectionChangedEvent event) {
+						 handleContentOutlineSelection(event.getSelection());
+					 }
+				 });
+		}
+
+		return contentOutlinePage;
+	}
+
+	/**
+	 * This accesses a cached version of the property sheet.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPropertySheetPage getPropertySheetPage() {
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					DatatypesEditor.this.setSelectionToViewer(selection);
+					DatatypesEditor.this.setFocus();
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
+
+		return propertySheetPage;
+	}
+
+	/**
+	 * This deals with how we want selection in the outliner to affect the other views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void handleContentOutlineSelection(ISelection selection) {
+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+			if (selectedElements.hasNext()) {
+				// Get the first selected element.
+				//
+				Object selectedElement = selectedElements.next();
+
+				// If it's the selection viewer, then we want it to select the same selection as this selection.
+				//
+				if (currentViewerPane.getViewer() == selectionViewer) {
+					ArrayList<Object> selectionList = new ArrayList<Object>();
+					selectionList.add(selectedElement);
+					while (selectedElements.hasNext()) {
+						selectionList.add(selectedElements.next());
+					}
+
+					// Set the selection to the widget.
+					//
+					selectionViewer.setSelection(new StructuredSelection(selectionList));
+				}
+				else {
+					// Set the input to the widget.
+					//
+					if (currentViewerPane.getViewer().getInput() != selectedElement) {
+						currentViewerPane.getViewer().setInput(selectedElement);
+						currentViewerPane.setTitle(selectedElement);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isDirty() {
+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply saves the model file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSave(IProgressMonitor progressMonitor) {
+		// Save only resources that have actually changed.
+		//
+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+		// Do the work within an operation because this is a long running activity that modifies the workbench.
+		//
+		WorkspaceModifyOperation operation =
+			new WorkspaceModifyOperation() {
+				// This is the method that gets invoked when the operation runs.
+				//
+				@Override
+				public void execute(IProgressMonitor monitor) {
+					// Save the resources to the file system.
+					//
+					boolean first = true;
+					for (Resource resource : editingDomain.getResourceSet().getResources()) {
+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+							try {
+								long timeStamp = resource.getTimeStamp();
+								resource.save(saveOptions);
+								if (resource.getTimeStamp() != timeStamp) {
+									savedResources.add(resource);
+								}
+							}
+							catch (Exception exception) {
+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+							}
+							first = false;
+						}
+					}
+				}
+			};
+
+		updateProblemIndication = false;
+		try {
+			// This runs the options, and shows progress.
+			//
+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+			// Refresh the necessary state.
+			//
+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+			firePropertyChange(IEditorPart.PROP_DIRTY);
+		}
+		catch (Exception exception) {
+			// Something went wrong that shouldn't.
+			//
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+		}
+		updateProblemIndication = true;
+		updateProblemIndication();
+	}
+
+	/**
+	 * This returns whether something has been persisted to the URI of the specified resource.
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean isPersisted(Resource resource) {
+		boolean result = false;
+		try {
+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+			if (stream != null) {
+				result = true;
+				stream.close();
+			}
+		}
+		catch (IOException e) {
+			// Ignore
+		}
+		return result;
+	}
+
+	/**
+	 * This always returns true because it is not currently supported.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return true;
+	}
+
+	/**
+	 * This also changes the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSaveAs() {
+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+		saveAsDialog.open();
+		IPath path = saveAsDialog.getResult();
+		if (path != null) {
+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			if (file != null) {
+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+			}
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void doSaveAs(URI uri, IEditorInput editorInput) {
+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		IProgressMonitor progressMonitor =
+			getActionBars().getStatusLineManager() != null ?
+				getActionBars().getStatusLineManager().getProgressMonitor() :
+				new NullProgressMonitor();
+		doSave(progressMonitor);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void gotoMarker(IMarker marker) {
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
+		}
+	}
+
+	/**
+	 * This is called during startup.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput editorInput) {
+		setSite(site);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		site.setSelectionProvider(this);
+		site.getPage().addPartListener(partListener);
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFocus() {
+		if (currentViewerPane != null) {
+			currentViewerPane.setFocus();
+		}
+		else {
+			getControl(getActivePage()).setFocus();
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.add(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.remove(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISelection getSelection() {
+		return editorSelection;
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+	 * Calling this result will notify the listeners.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelection(ISelection selection) {
+		editorSelection = selection;
+
+		for (ISelectionChangedListener listener : selectionChangedListeners) {
+			listener.selectionChanged(new SelectionChangedEvent(this, selection));
+		}
+		setStatusLineManager(selection);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStatusLineManager(ISelection selection) {
+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+		if (statusLineManager != null) {
+			if (selection instanceof IStructuredSelection) {
+				Collection<?> collection = ((IStructuredSelection)selection).toList();
+				switch (collection.size()) {
+					case 0: {
+						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+						break;
+					}
+					case 1: {
+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+						break;
+					}
+					default: {
+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+						break;
+					}
+				}
+			}
+			else {
+				statusLineManager.setMessage("");
+			}
+		}
+	}
+
+	/**
+	 * This looks up a string in the plugin's plugin.properties file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key);
+	}
+
+	/**
+	 * This looks up a string in plugin.properties, making a substitution.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key, Object s1) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void menuAboutToShow(IMenuManager menuManager) {
+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomainActionBarContributor getActionBarContributor() {
+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IActionBars getActionBars() {
+		return getActionBarContributor().getActionBars();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdapterFactory getAdapterFactory() {
+		return adapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void dispose() {
+		updateProblemIndication = false;
+
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+		getSite().getPage().removePartListener(partListener);
+
+		adapterFactory.dispose();
+
+		if (getActionBarContributor().getActiveEditor() == this) {
+			getActionBarContributor().setActiveEditor(null);
+		}
+
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
+			propertySheetPage.dispose();
+		}
+
+		if (contentOutlinePage != null) {
+			contentOutlinePage.dispose();
+		}
+
+		super.dispose();
+	}
+
+	/**
+	 * Returns whether the outline view should be presented to the user.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean showOutlineView() {
+		return true;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/datatypes/presentation/DatatypesModelWizard.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/datatypes/presentation/DatatypesModelWizard.java
new file mode 100644
index 0000000..7ed055d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/datatypes/presentation/DatatypesModelWizard.java
@@ -0,0 +1,641 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.datatypes.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatatypesModelWizard extends Wizard implements INewWizard {
+	/**
+	 * The supported extensions for created files.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<String> FILE_EXTENSIONS =
+		Collections.unmodifiableList(Arrays.asList(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_DatatypesEditorFilenameExtensions").split("\\s*,\\s*")));
+
+	/**
+	 * A formatted list of supported file extensions, suitable for display.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String FORMATTED_FILE_EXTENSIONS =
+		ECViewCoreEditorPlugin.INSTANCE.getString("_UI_DatatypesEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+	/**
+	 * This caches an instance of the model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatatypesPackage datatypesPackage = DatatypesPackage.eINSTANCE;
+
+	/**
+	 * This caches an instance of the model factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatatypesFactory datatypesFactory = datatypesPackage.getDatatypesFactory();
+
+	/**
+	 * This is the file creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatatypesModelWizardNewFileCreationPage newFileCreationPage;
+
+	/**
+	 * This is the initial object creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatatypesModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+	/**
+	 * Remember the selection during initialization for populating the default container.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStructuredSelection selection;
+
+	/**
+	 * Remember the workbench during initialization.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IWorkbench workbench;
+
+	/**
+	 * Caches the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<String> initialObjectNames;
+
+	/**
+	 * This just records the information.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ECViewCoreEditorPlugin.INSTANCE.getImage("full/wizban/NewDatatypes")));
+	}
+
+	/**
+	 * Returns the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<String> getInitialObjectNames() {
+		if (initialObjectNames == null) {
+			initialObjectNames = new ArrayList<String>();
+			for (EClassifier eClassifier : datatypesPackage.getEClassifiers()) {
+				if (eClassifier instanceof EClass) {
+					EClass eClass = (EClass)eClassifier;
+					if (!eClass.isAbstract()) {
+						initialObjectNames.add(eClass.getName());
+					}
+				}
+			}
+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+		}
+		return initialObjectNames;
+	}
+
+	/**
+	 * Create a new model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EObject createInitialModel() {
+		EClass eClass = (EClass)datatypesPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+		EObject rootObject = datatypesFactory.create(eClass);
+		return rootObject;
+	}
+
+	/**
+	 * Do the work after everything is specified.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean performFinish() {
+		try {
+			// Remember the file.
+			//
+			final IFile modelFile = getModelFile();
+
+			// Do the work within an operation.
+			//
+			WorkspaceModifyOperation operation =
+				new WorkspaceModifyOperation() {
+					@Override
+					protected void execute(IProgressMonitor progressMonitor) {
+						try {
+							// Create a resource set
+							//
+							ResourceSet resourceSet = new ResourceSetImpl();
+
+							// Get the URI of the model file.
+							//
+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+							// Create a resource for this file.
+							//
+							Resource resource = resourceSet.createResource(fileURI);
+
+							// Add the initial model object to the contents.
+							//
+							EObject rootObject = createInitialModel();
+							if (rootObject != null) {
+								resource.getContents().add(rootObject);
+							}
+
+							// Save the contents of the resource to the file system.
+							//
+							Map<Object, Object> options = new HashMap<Object, Object>();
+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+							resource.save(options);
+						}
+						catch (Exception exception) {
+							ECViewCoreEditorPlugin.INSTANCE.log(exception);
+						}
+						finally {
+							progressMonitor.done();
+						}
+					}
+				};
+
+			getContainer().run(false, false, operation);
+
+			// Select the new file resource in the current view.
+			//
+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			final IWorkbenchPart activePart = page.getActivePart();
+			if (activePart instanceof ISetSelectionTarget) {
+				final ISelection targetSelection = new StructuredSelection(modelFile);
+				getShell().getDisplay().asyncExec
+					(new Runnable() {
+						 public void run() {
+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+						 }
+					 });
+			}
+
+			// Open an editor on the new file.
+			//
+			try {
+				page.openEditor
+					(new FileEditorInput(modelFile),
+					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
+			}
+			catch (PartInitException exception) {
+				MessageDialog.openError(workbenchWindow.getShell(), ECViewCoreEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+				return false;
+			}
+
+			return true;
+		}
+		catch (Exception exception) {
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+			return false;
+		}
+	}
+
+	/**
+	 * This is the one page of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class DatatypesModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public DatatypesModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+			super(pageId, selection);
+		}
+
+		/**
+		 * The framework calls this to see if the file is correct.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		protected boolean validatePage() {
+			if (super.validatePage()) {
+				String extension = new Path(getFileName()).getFileExtension();
+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+					setErrorMessage(ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+					return false;
+				}
+				return true;
+			}
+			return false;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public IFile getModelFile() {
+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+		}
+	}
+
+	/**
+	 * This is the page where the type of object to create is selected.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class DatatypesModelWizardInitialObjectCreationPage extends WizardPage {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo initialObjectField;
+
+		/**
+		 * @generated
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 */
+		protected List<String> encodings;
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo encodingField;
+
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public DatatypesModelWizardInitialObjectCreationPage(String pageId) {
+			super(pageId);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public void createControl(Composite parent) {
+			Composite composite = new Composite(parent, SWT.NONE);
+			{
+				GridLayout layout = new GridLayout();
+				layout.numColumns = 1;
+				layout.verticalSpacing = 12;
+				composite.setLayout(layout);
+
+				GridData data = new GridData();
+				data.verticalAlignment = GridData.FILL;
+				data.grabExcessVerticalSpace = true;
+				data.horizontalAlignment = GridData.FILL;
+				composite.setLayoutData(data);
+			}
+
+			Label containerLabel = new Label(composite, SWT.LEFT);
+			{
+				containerLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				containerLabel.setLayoutData(data);
+			}
+
+			initialObjectField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				initialObjectField.setLayoutData(data);
+			}
+
+			for (String objectName : getInitialObjectNames()) {
+				initialObjectField.add(getLabel(objectName));
+			}
+
+			if (initialObjectField.getItemCount() == 1) {
+				initialObjectField.select(0);
+			}
+			initialObjectField.addModifyListener(validator);
+
+			Label encodingLabel = new Label(composite, SWT.LEFT);
+			{
+				encodingLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				encodingLabel.setLayoutData(data);
+			}
+			encodingField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				encodingField.setLayoutData(data);
+			}
+
+			for (String encoding : getEncodings()) {
+				encodingField.add(encoding);
+			}
+
+			encodingField.select(0);
+			encodingField.addModifyListener(validator);
+
+			setPageComplete(validatePage());
+			setControl(composite);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected ModifyListener validator =
+			new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					setPageComplete(validatePage());
+				}
+			};
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected boolean validatePage() {
+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public void setVisible(boolean visible) {
+			super.setVisible(visible);
+			if (visible) {
+				if (initialObjectField.getItemCount() == 1) {
+					initialObjectField.clearSelection();
+					encodingField.setFocus();
+				}
+				else {
+					encodingField.clearSelection();
+					initialObjectField.setFocus();
+				}
+			}
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getInitialObjectName() {
+			String label = initialObjectField.getText();
+
+			for (String name : getInitialObjectNames()) {
+				if (getLabel(name).equals(label)) {
+					return name;
+				}
+			}
+			return null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getEncoding() {
+			return encodingField.getText();
+		}
+
+		/**
+		 * Returns the label for the specified type name.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected String getLabel(String typeName) {
+			try {
+				return ECViewCoreEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+			}
+			catch(MissingResourceException mre) {
+				ECViewCoreEditorPlugin.INSTANCE.log(mre);
+			}
+			return typeName;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Collection<String> getEncodings() {
+			if (encodings == null) {
+				encodings = new ArrayList<String>();
+				for (StringTokenizer stringTokenizer = new StringTokenizer(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+					encodings.add(stringTokenizer.nextToken());
+				}
+			}
+			return encodings;
+		}
+	}
+
+	/**
+	 * The framework calls this to create the contents of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+		@Override
+	public void addPages() {
+		// Create a page, set the title, and the initial model file name.
+		//
+		newFileCreationPage = new DatatypesModelWizardNewFileCreationPage("Whatever", selection);
+		newFileCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_DatatypesModelWizard_label"));
+		newFileCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_DatatypesModelWizard_description"));
+		newFileCreationPage.setFileName(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_DatatypesEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+		addPage(newFileCreationPage);
+
+		// Try and get the resource selection to determine a current directory for the file dialog.
+		//
+		if (selection != null && !selection.isEmpty()) {
+			// Get the resource...
+			//
+			Object selectedElement = selection.iterator().next();
+			if (selectedElement instanceof IResource) {
+				// Get the resource parent, if its a file.
+				//
+				IResource selectedResource = (IResource)selectedElement;
+				if (selectedResource.getType() == IResource.FILE) {
+					selectedResource = selectedResource.getParent();
+				}
+
+				// This gives us a directory...
+				//
+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+					// Set this for the container.
+					//
+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+					// Make up a unique new name here.
+					//
+					String defaultModelBaseFilename = ECViewCoreEditorPlugin.INSTANCE.getString("_UI_DatatypesEditorFilenameDefaultBase");
+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+					}
+					newFileCreationPage.setFileName(modelFilename);
+				}
+			}
+		}
+		initialObjectCreationPage = new DatatypesModelWizardInitialObjectCreationPage("Whatever2");
+		initialObjectCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_DatatypesModelWizard_label"));
+		initialObjectCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+		addPage(initialObjectCreationPage);
+	}
+
+	/**
+	 * Get the file from the page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IFile getModelFile() {
+		return newFileCreationPage.getModelFile();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/validation/presentation/ValidationActionBarContributor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/validation/presentation/ValidationActionBarContributor.java
new file mode 100644
index 0000000..360e53b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/validation/presentation/ValidationActionBarContributor.java
@@ -0,0 +1,436 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+/**
+ * This is the action bar contributor for the Validation model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValidationActionBarContributor
+	extends EditingDomainActionBarContributor
+	implements ISelectionChangedListener {
+	/**
+	 * This keeps track of the active editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IEditorPart activeEditorPart;
+
+	/**
+	 * This keeps track of the current selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionProvider selectionProvider;
+
+	/**
+	 * This action opens the Properties view.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction showPropertiesViewAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+			@Override
+			public void run() {
+				try {
+					getPage().showView("org.eclipse.ui.views.PropertySheet");
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * This action refreshes the viewer of the current editor if the editor
+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction refreshViewerAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+			@Override
+			public boolean isEnabled() {
+				return activeEditorPart instanceof IViewerProvider;
+			}
+
+			@Override
+			public void run() {
+				if (activeEditorPart instanceof IViewerProvider) {
+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+					if (viewer != null) {
+						viewer.refresh();
+					}
+				}
+			}
+		};
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createChildActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createChildMenuManager;
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createSiblingActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createSiblingMenuManager;
+
+	/**
+	 * This creates an instance of the contributor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValidationActionBarContributor() {
+		super(ADDITIONS_LAST_STYLE);
+		loadResourceAction = new LoadResourceAction();
+		validateAction = new ValidateAction();
+		controlAction = new ControlAction();
+	}
+
+	/**
+	 * This adds Separators for editor additions to the tool bar.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToToolBar(IToolBarManager toolBarManager) {
+		toolBarManager.add(new Separator("validation-settings"));
+		toolBarManager.add(new Separator("validation-additions"));
+	}
+
+	/**
+	 * This adds to the menu bar a menu and some separators for editor additions,
+	 * as well as the sub-menus for object creation items.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToMenu(IMenuManager menuManager) {
+		super.contributeToMenu(menuManager);
+
+		IMenuManager submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ValidationEditor_menu"), "org.eclipse.osbp.ecview.core.common.model.validationMenuID");
+		menuManager.insertAfter("additions", submenuManager);
+		submenuManager.add(new Separator("settings"));
+		submenuManager.add(new Separator("actions"));
+		submenuManager.add(new Separator("additions"));
+		submenuManager.add(new Separator("additions-end"));
+
+		// Prepare for CreateChild item addition or removal.
+		//
+		createChildMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		submenuManager.insertBefore("additions", createChildMenuManager);
+
+		// Prepare for CreateSibling item addition or removal.
+		//
+		createSiblingMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+		// Force an update because Eclipse hides empty menus now.
+		//
+		submenuManager.addMenuListener
+			(new IMenuListener() {
+				 public void menuAboutToShow(IMenuManager menuManager) {
+					 menuManager.updateAll(true);
+				 }
+			 });
+
+		addGlobalActions(submenuManager);
+	}
+
+	/**
+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setActiveEditor(IEditorPart part) {
+		super.setActiveEditor(part);
+		activeEditorPart = part;
+
+		// Switch to the new selection provider.
+		//
+		if (selectionProvider != null) {
+			selectionProvider.removeSelectionChangedListener(this);
+		}
+		if (part == null) {
+			selectionProvider = null;
+		}
+		else {
+			selectionProvider = part.getSite().getSelectionProvider();
+			selectionProvider.addSelectionChangedListener(this);
+
+			// Fake a selection changed event to update the menus.
+			//
+			if (selectionProvider.getSelection() != null) {
+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+			}
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+	 * that can be added to the selected object and updating the menus accordingly.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		// Remove any menu items for old selection.
+		//
+		if (createChildMenuManager != null) {
+			depopulateManager(createChildMenuManager, createChildActions);
+		}
+		if (createSiblingMenuManager != null) {
+			depopulateManager(createSiblingMenuManager, createSiblingActions);
+		}
+
+		// Query the new selection for appropriate new child/sibling descriptors
+		//
+		Collection<?> newChildDescriptors = null;
+		Collection<?> newSiblingDescriptors = null;
+
+		ISelection selection = event.getSelection();
+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+			Object object = ((IStructuredSelection)selection).getFirstElement();
+
+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+			newChildDescriptors = domain.getNewChildDescriptors(object, null);
+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+		}
+
+		// Generate actions for selection; populate and redraw the menus.
+		//
+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+		if (createChildMenuManager != null) {
+			populateManager(createChildMenuManager, createChildActions, null);
+			createChildMenuManager.update(true);
+		}
+		if (createSiblingMenuManager != null) {
+			populateManager(createSiblingMenuManager, createSiblingActions, null);
+			createSiblingMenuManager.update(true);
+		}
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+	 * by inserting them before the specified contribution item <code>contributionID</code>.
+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+		if (actions != null) {
+			for (IAction action : actions) {
+				if (contributionID != null) {
+					manager.insertBefore(contributionID, action);
+				}
+				else {
+					manager.add(action);
+				}
+			}
+		}
+	}
+		
+	/**
+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+		if (actions != null) {
+			IContributionItem[] items = manager.getItems();
+			for (int i = 0; i < items.length; i++) {
+				// Look into SubContributionItems
+				//
+				IContributionItem contributionItem = items[i];
+				while (contributionItem instanceof SubContributionItem) {
+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+				}
+
+				// Delete the ActionContributionItems with matching action.
+				//
+				if (contributionItem instanceof ActionContributionItem) {
+					IAction action = ((ActionContributionItem)contributionItem).getAction();
+					if (actions.contains(action)) {
+						manager.remove(contributionItem);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This populates the pop-up menu before it appears.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void menuAboutToShow(IMenuManager menuManager) {
+		super.menuAboutToShow(menuManager);
+		MenuManager submenuManager = null;
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		populateManager(submenuManager, createChildActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		populateManager(submenuManager, createSiblingActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+	}
+
+	/**
+	 * This inserts global actions before the "additions-end" separator.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void addGlobalActions(IMenuManager menuManager) {
+		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
+		menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+		super.addGlobalActions(menuManager);
+	}
+
+	/**
+	 * This ensures that a delete action will clean up all references to deleted objects.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean removeAllReferencesOnDelete() {
+		return true;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/validation/presentation/ValidationEditor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/validation/presentation/ValidationEditor.java
new file mode 100644
index 0000000..2e9fa11
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/validation/presentation/ValidationEditor.java
@@ -0,0 +1,1843 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.provider.ValidationItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.BindingItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.core.provider.CoreModelItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.provider.DatatypesItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.visibility.provider.VisibilityItemProviderAdapterFactory;
+
+
+/**
+ * This is an example of a Validation model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValidationEditor
+	extends MultiPageEditorPart
+	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+	/**
+	 * This keeps track of the editing domain that is used to track all changes to the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AdapterFactoryEditingDomain editingDomain;
+
+	/**
+	 * This is the one adapter factory used for providing views of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory adapterFactory;
+
+	/**
+	 * This is the content outline page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IContentOutlinePage contentOutlinePage;
+
+	/**
+	 * This is a kludge...
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStatusLineManager contentOutlineStatusLineManager;
+
+	/**
+	 * This is the content outline page's viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer contentOutlineViewer;
+
+	/**
+	 * This is the property sheet page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+	/**
+	 * This is the viewer that shadows the selection in the content outline.
+	 * The parent relation must be correctly defined for this to work.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer selectionViewer;
+
+	/**
+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer parentViewer;
+
+	/**
+	 * This shows how a tree view works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewer;
+
+	/**
+	 * This shows how a list view works.
+	 * A list viewer doesn't support icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ListViewer listViewer;
+
+	/**
+	 * This shows how a table view works.
+	 * A table can be used as a list with icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableViewer tableViewer;
+
+	/**
+	 * This shows how a tree view with columns works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewerWithColumns;
+
+	/**
+	 * This keeps track of the active viewer pane, in the book.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewerPane currentViewerPane;
+
+	/**
+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Viewer currentViewer;
+
+	/**
+	 * This listens to which ever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionChangedListener selectionChangedListener;
+
+	/**
+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+	/**
+	 * This keeps track of the selection of the editor as a whole.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+	/**
+	 * The MarkerHelper is responsible for creating workspace resource markers presented
+	 * in Eclipse's Problems View.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+	/**
+	 * This listens for when the outline becomes active
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPartListener partListener =
+		new IPartListener() {
+			public void partActivated(IWorkbenchPart p) {
+				if (p instanceof ContentOutline) {
+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+						getActionBarContributor().setActiveEditor(ValidationEditor.this);
+
+						setCurrentViewer(contentOutlineViewer);
+					}
+				}
+				else if (p instanceof PropertySheet) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+						getActionBarContributor().setActiveEditor(ValidationEditor.this);
+						handleActivate();
+					}
+				}
+				else if (p == ValidationEditor.this) {
+					handleActivate();
+				}
+			}
+			public void partBroughtToTop(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partClosed(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partDeactivated(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partOpened(IWorkbenchPart p) {
+				// Ignore.
+			}
+		};
+
+	/**
+	 * Resources that have been removed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been changed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been saved.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+	/**
+	 * Map to store the diagnostic associated with a resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+	/**
+	 * Controls whether the problem indication should be updated.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean updateProblemIndication = true;
+
+	/**
+	 * Adapter used to update the problem indication when resources are demanded loaded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EContentAdapter problemIndicationAdapter =
+		new EContentAdapter() {
+			@Override
+			public void notifyChanged(Notification notification) {
+				if (notification.getNotifier() instanceof Resource) {
+					switch (notification.getFeatureID(Resource.class)) {
+						case Resource.RESOURCE__IS_LOADED:
+						case Resource.RESOURCE__ERRORS:
+						case Resource.RESOURCE__WARNINGS: {
+							Resource resource = (Resource)notification.getNotifier();
+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+							if (diagnostic.getSeverity() != Diagnostic.OK) {
+								resourceToDiagnosticMap.put(resource, diagnostic);
+							}
+							else {
+								resourceToDiagnosticMap.remove(resource);
+							}
+
+							if (updateProblemIndication) {
+								getSite().getShell().getDisplay().asyncExec
+									(new Runnable() {
+										 public void run() {
+											 updateProblemIndication();
+										 }
+									 });
+							}
+							break;
+						}
+					}
+				}
+				else {
+					super.notifyChanged(notification);
+				}
+			}
+
+			@Override
+			protected void setTarget(Resource target) {
+				basicSetTarget(target);
+			}
+
+			@Override
+			protected void unsetTarget(Resource target) {
+				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
+			}
+		};
+
+	/**
+	 * This listens for workspace changes.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IResourceChangeListener resourceChangeListener =
+		new IResourceChangeListener() {
+			public void resourceChanged(IResourceChangeEvent event) {
+				IResourceDelta delta = event.getDelta();
+				try {
+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+						protected ResourceSet resourceSet = editingDomain.getResourceSet();
+						protected Collection<Resource> changedResources = new ArrayList<Resource>();
+						protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+						public boolean visit(IResourceDelta delta) {
+							if (delta.getResource().getType() == IResource.FILE) {
+								if (delta.getKind() == IResourceDelta.REMOVED ||
+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+									if (resource != null) {
+										if (delta.getKind() == IResourceDelta.REMOVED) {
+											removedResources.add(resource);
+										}
+										else if (!savedResources.remove(resource)) {
+											changedResources.add(resource);
+										}
+									}
+								}
+								return false;
+							}
+
+							return true;
+						}
+
+						public Collection<Resource> getChangedResources() {
+							return changedResources;
+						}
+
+						public Collection<Resource> getRemovedResources() {
+							return removedResources;
+						}
+					}
+
+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+					delta.accept(visitor);
+
+					if (!visitor.getRemovedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 removedResources.addAll(visitor.getRemovedResources());
+									 if (!isDirty()) {
+										 getSite().getPage().closeEditor(ValidationEditor.this, false);
+									 }
+								 }
+							 });
+					}
+
+					if (!visitor.getChangedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 changedResources.addAll(visitor.getChangedResources());
+									 if (getSite().getPage().getActiveEditor() == ValidationEditor.this) {
+										 handleActivate();
+									 }
+								 }
+							 });
+					}
+				}
+				catch (CoreException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * Handles activation of the editor or it's associated views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleActivate() {
+		// Recompute the read only state.
+		//
+		if (editingDomain.getResourceToReadOnlyMap() != null) {
+		  editingDomain.getResourceToReadOnlyMap().clear();
+
+		  // Refresh any actions that may become enabled or disabled.
+		  //
+		  setSelection(getSelection());
+		}
+
+		if (!removedResources.isEmpty()) {
+			if (handleDirtyConflict()) {
+				getSite().getPage().closeEditor(ValidationEditor.this, false);
+			}
+			else {
+				removedResources.clear();
+				changedResources.clear();
+				savedResources.clear();
+			}
+		}
+		else if (!changedResources.isEmpty()) {
+			changedResources.removeAll(savedResources);
+			handleChangedResources();
+			changedResources.clear();
+			savedResources.clear();
+		}
+	}
+
+	/**
+	 * Handles what to do with changed resources on activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleChangedResources() {
+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+			if (isDirty()) {
+				changedResources.addAll(editingDomain.getResourceSet().getResources());
+			}
+			editingDomain.getCommandStack().flush();
+
+			updateProblemIndication = false;
+			for (Resource resource : changedResources) {
+				if (resource.isLoaded()) {
+					resource.unload();
+					try {
+						resource.load(Collections.EMPTY_MAP);
+					}
+					catch (IOException exception) {
+						if (!resourceToDiagnosticMap.containsKey(resource)) {
+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+						}
+					}
+				}
+			}
+
+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+				setSelection(StructuredSelection.EMPTY);
+			}
+
+			updateProblemIndication = true;
+			updateProblemIndication();
+		}
+	}
+
+	/**
+	 * Updates the problems indication with the information described in the specified diagnostic.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void updateProblemIndication() {
+		if (updateProblemIndication) {
+			BasicDiagnostic diagnostic =
+				new BasicDiagnostic
+					(Diagnostic.OK,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 null,
+					 new Object [] { editingDomain.getResourceSet() });
+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+					diagnostic.add(childDiagnostic);
+				}
+			}
+
+			int lastEditorPage = getPageCount() - 1;
+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					setActivePage(lastEditorPage);
+				}
+			}
+			else if (diagnostic.getSeverity() != Diagnostic.OK) {
+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+				problemEditorPart.setDiagnostic(diagnostic);
+				problemEditorPart.setMarkerHelper(markerHelper);
+				try {
+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+					setPageText(lastEditorPage, problemEditorPart.getPartName());
+					setActivePage(lastEditorPage);
+					showTabs();
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+
+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+				markerHelper.deleteMarkers(editingDomain.getResourceSet());
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					try {
+						markerHelper.createMarkers(diagnostic);
+					}
+					catch (CoreException exception) {
+						ECViewCoreEditorPlugin.INSTANCE.log(exception);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Shows a dialog that asks if conflicting changes should be discarded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean handleDirtyConflict() {
+		return
+			MessageDialog.openQuestion
+				(getSite().getShell(),
+				 getString("_UI_FileConflict_label"),
+				 getString("_WARN_FileConflict"));
+	}
+
+	/**
+	 * This creates a model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValidationEditor() {
+		super();
+		initializeEditingDomain();
+	}
+
+	/**
+	 * This sets up the editing domain for the model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void initializeEditingDomain() {
+		// Create an adapter factory that yields item providers.
+		//
+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new BindingItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new CoreModelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ValidationItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new DatatypesItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new VisibilityItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+		// Create the command stack that will notify this editor as commands are executed.
+		//
+		BasicCommandStack commandStack = new BasicCommandStack();
+
+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+		//
+		commandStack.addCommandStackListener
+			(new CommandStackListener() {
+				 public void commandStackChanged(final EventObject event) {
+					 getContainer().getDisplay().asyncExec
+						 (new Runnable() {
+							  public void run() {
+								  firePropertyChange(IEditorPart.PROP_DIRTY);
+
+								  // Try to select the affected objects.
+								  //
+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+								  if (mostRecentCommand != null) {
+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+								  }
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
+								  }
+							  }
+						  });
+				 }
+			 });
+
+		// Create the editing domain with a special command stack.
+		//
+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+	}
+
+	/**
+	 * This is here for the listener to be able to call it.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+			@Override
+	protected void firePropertyChange(int action) {
+		super.firePropertyChange(action);
+	}
+
+	/**
+	 * This sets the selection into whichever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectionToViewer(Collection<?> collection) {
+		final Collection<?> theSelection = collection;
+		// Make sure it's okay.
+		//
+		if (theSelection != null && !theSelection.isEmpty()) {
+			Runnable runnable =
+				new Runnable() {
+					public void run() {
+						// Try to select the items in the current content viewer of the editor.
+						//
+						if (currentViewer != null) {
+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+						}
+					}
+				};
+			getSite().getShell().getDisplay().asyncExec(runnable);
+		}
+	}
+
+	/**
+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+			super(adapterFactory);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getElements(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getChildren(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public boolean hasChildren(Object object) {
+			Object parent = super.getParent(object);
+			return parent != null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object getParent(Object object) {
+			return null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewerPane(ViewerPane viewerPane) {
+		if (currentViewerPane != viewerPane) {
+			if (currentViewerPane != null) {
+				currentViewerPane.showFocus(false);
+			}
+			currentViewerPane = viewerPane;
+		}
+		setCurrentViewer(currentViewerPane.getViewer());
+	}
+
+	/**
+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+	 * is the current one.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewer(Viewer viewer) {
+		// If it is changing...
+		//
+		if (currentViewer != viewer) {
+			if (selectionChangedListener == null) {
+				// Create the listener on demand.
+				//
+				selectionChangedListener =
+					new ISelectionChangedListener() {
+						// This just notifies those things that are affected by the section.
+						//
+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+							setSelection(selectionChangedEvent.getSelection());
+						}
+					};
+			}
+
+			// Stop listening to the old one.
+			//
+			if (currentViewer != null) {
+				currentViewer.removeSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Start listening to the new one.
+			//
+			if (viewer != null) {
+				viewer.addSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Remember it.
+			//
+			currentViewer = viewer;
+
+			// Set the editors selection based on the current viewer's selection.
+			//
+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+		}
+	}
+
+	/**
+	 * This returns the viewer as required by the {@link IViewerProvider} interface.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Viewer getViewer() {
+		return currentViewer;
+	}
+
+	/**
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createContextMenuFor(StructuredViewer viewer) {
+		MenuManager contextMenu = new MenuManager("#PopUp");
+		contextMenu.add(new Separator("additions"));
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(this);
+		Menu menu= contextMenu.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+	}
+
+	/**
+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createModel() {
+		URI resourceURI = EditUIUtil.getURI(getEditorInput());
+		Exception exception = null;
+		Resource resource = null;
+		try {
+			// Load the resource through the editing domain.
+			//
+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+		}
+		catch (Exception e) {
+			exception = e;
+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+		}
+
+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+		if (diagnostic.getSeverity() != Diagnostic.OK) {
+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
+		}
+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+	}
+
+	/**
+	 * Returns a diagnostic describing the errors and warnings listed in the resource
+	 * and the specified exception (if any).
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+		if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+			BasicDiagnostic basicDiagnostic =
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object [] { exception == null ? (Object)resource : exception });
+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+			return basicDiagnostic;
+		}
+		else if (exception != null) {
+			return
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object[] { exception });
+		}
+		else {
+			return Diagnostic.OK_INSTANCE;
+		}
+	}
+
+	/**
+	 * This is the method used by the framework to install your own controls.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void createPages() {
+		// Creates the model from the editor input
+		//
+		createModel();
+
+		// Only creates the other pages if there is something that can be edited
+		//
+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+			// Create a page for the selection tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ValidationEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				selectionViewer = (TreeViewer)viewerPane.getViewer();
+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				selectionViewer.setInput(editingDomain.getResourceSet());
+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+				viewerPane.setTitle(editingDomain.getResourceSet());
+
+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(selectionViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+			}
+
+			// Create a page for the parent tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ValidationEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				parentViewer = (TreeViewer)viewerPane.getViewer();
+				parentViewer.setAutoExpandLevel(30);
+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(parentViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ParentPage_label"));
+			}
+
+			// This is the page for the list viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ValidationEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new ListViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				listViewer = (ListViewer)viewerPane.getViewer();
+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(listViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ListPage_label"));
+			}
+
+			// This is the page for the tree viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ValidationEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				treeViewer = (TreeViewer)viewerPane.getViewer();
+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(treeViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreePage_label"));
+			}
+
+			// This is the page for the table viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ValidationEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TableViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				tableViewer = (TableViewer)viewerPane.getViewer();
+
+				Table table = tableViewer.getTable();
+				TableLayout layout = new TableLayout();
+				table.setLayout(layout);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
+
+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(3, 100, true));
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+
+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(2, 100, true));
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+
+				tableViewer.setColumnProperties(new String [] {"a", "b"});
+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(tableViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TablePage_label"));
+			}
+
+			// This is the page for the table tree viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ValidationEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+				Tree tree = treeViewerWithColumns.getTree();
+				tree.setLayoutData(new FillLayout());
+				tree.setHeaderVisible(true);
+				tree.setLinesVisible(true);
+
+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+				objectColumn.setWidth(250);
+
+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+				selfColumn.setWidth(200);
+
+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(treeViewerWithColumns);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+			}
+
+			getSite().getShell().getDisplay().asyncExec
+				(new Runnable() {
+					 public void run() {
+						 setActivePage(0);
+					 }
+				 });
+		}
+
+		// Ensures that this editor will only display the page's tab
+		// area if there are more than one page
+		//
+		getContainer().addControlListener
+			(new ControlAdapter() {
+				boolean guard = false;
+				@Override
+				public void controlResized(ControlEvent event) {
+					if (!guard) {
+						guard = true;
+						hideTabs();
+						guard = false;
+					}
+				}
+			 });
+
+		getSite().getShell().getDisplay().asyncExec
+			(new Runnable() {
+				 public void run() {
+					 updateProblemIndication();
+				 }
+			 });
+	}
+
+	/**
+	 * If there is just one page in the multi-page editor part,
+	 * this hides the single tab at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void hideTabs() {
+		if (getPageCount() <= 1) {
+			setPageText(0, "");
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(1);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y + 6);
+			}
+		}
+	}
+
+	/**
+	 * If there is more than one page in the multi-page editor part,
+	 * this shows the tabs at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void showTabs() {
+		if (getPageCount() > 1) {
+			setPageText(0, getString("_UI_SelectionPage_label"));
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y - 6);
+			}
+		}
+	}
+
+	/**
+	 * This is used to track the active viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void pageChange(int pageIndex) {
+		super.pageChange(pageIndex);
+
+		if (contentOutlinePage != null) {
+			handleContentOutlineSelection(contentOutlinePage.getSelection());
+		}
+	}
+
+	/**
+	 * This is how the framework determines which interfaces we implement.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("rawtypes")
+	@Override
+	public Object getAdapter(Class key) {
+		if (key.equals(IContentOutlinePage.class)) {
+			return showOutlineView() ? getContentOutlinePage() : null;
+		}
+		else if (key.equals(IPropertySheetPage.class)) {
+			return getPropertySheetPage();
+		}
+		else if (key.equals(IGotoMarker.class)) {
+			return this;
+		}
+		else {
+			return super.getAdapter(key);
+		}
+	}
+
+	/**
+	 * This accesses a cached version of the content outliner.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IContentOutlinePage getContentOutlinePage() {
+		if (contentOutlinePage == null) {
+			// The content outline is just a tree.
+			//
+			class MyContentOutlinePage extends ContentOutlinePage {
+				@Override
+				public void createControl(Composite parent) {
+					super.createControl(parent);
+					contentOutlineViewer = getTreeViewer();
+					contentOutlineViewer.addSelectionChangedListener(this);
+
+					// Set up the tree viewer.
+					//
+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+					contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+					// Make sure our popups work.
+					//
+					createContextMenuFor(contentOutlineViewer);
+
+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+					  // Select the root object in the view.
+					  //
+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+					}
+				}
+
+				@Override
+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+					super.makeContributions(menuManager, toolBarManager, statusLineManager);
+					contentOutlineStatusLineManager = statusLineManager;
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			}
+
+			contentOutlinePage = new MyContentOutlinePage();
+
+			// Listen to selection so that we can handle it is a special way.
+			//
+			contentOutlinePage.addSelectionChangedListener
+				(new ISelectionChangedListener() {
+					 // This ensures that we handle selections correctly.
+					 //
+					 public void selectionChanged(SelectionChangedEvent event) {
+						 handleContentOutlineSelection(event.getSelection());
+					 }
+				 });
+		}
+
+		return contentOutlinePage;
+	}
+
+	/**
+	 * This accesses a cached version of the property sheet.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPropertySheetPage getPropertySheetPage() {
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					ValidationEditor.this.setSelectionToViewer(selection);
+					ValidationEditor.this.setFocus();
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
+
+		return propertySheetPage;
+	}
+
+	/**
+	 * This deals with how we want selection in the outliner to affect the other views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void handleContentOutlineSelection(ISelection selection) {
+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+			if (selectedElements.hasNext()) {
+				// Get the first selected element.
+				//
+				Object selectedElement = selectedElements.next();
+
+				// If it's the selection viewer, then we want it to select the same selection as this selection.
+				//
+				if (currentViewerPane.getViewer() == selectionViewer) {
+					ArrayList<Object> selectionList = new ArrayList<Object>();
+					selectionList.add(selectedElement);
+					while (selectedElements.hasNext()) {
+						selectionList.add(selectedElements.next());
+					}
+
+					// Set the selection to the widget.
+					//
+					selectionViewer.setSelection(new StructuredSelection(selectionList));
+				}
+				else {
+					// Set the input to the widget.
+					//
+					if (currentViewerPane.getViewer().getInput() != selectedElement) {
+						currentViewerPane.getViewer().setInput(selectedElement);
+						currentViewerPane.setTitle(selectedElement);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isDirty() {
+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply saves the model file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSave(IProgressMonitor progressMonitor) {
+		// Save only resources that have actually changed.
+		//
+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+		// Do the work within an operation because this is a long running activity that modifies the workbench.
+		//
+		WorkspaceModifyOperation operation =
+			new WorkspaceModifyOperation() {
+				// This is the method that gets invoked when the operation runs.
+				//
+				@Override
+				public void execute(IProgressMonitor monitor) {
+					// Save the resources to the file system.
+					//
+					boolean first = true;
+					for (Resource resource : editingDomain.getResourceSet().getResources()) {
+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+							try {
+								long timeStamp = resource.getTimeStamp();
+								resource.save(saveOptions);
+								if (resource.getTimeStamp() != timeStamp) {
+									savedResources.add(resource);
+								}
+							}
+							catch (Exception exception) {
+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+							}
+							first = false;
+						}
+					}
+				}
+			};
+
+		updateProblemIndication = false;
+		try {
+			// This runs the options, and shows progress.
+			//
+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+			// Refresh the necessary state.
+			//
+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+			firePropertyChange(IEditorPart.PROP_DIRTY);
+		}
+		catch (Exception exception) {
+			// Something went wrong that shouldn't.
+			//
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+		}
+		updateProblemIndication = true;
+		updateProblemIndication();
+	}
+
+	/**
+	 * This returns whether something has been persisted to the URI of the specified resource.
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean isPersisted(Resource resource) {
+		boolean result = false;
+		try {
+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+			if (stream != null) {
+				result = true;
+				stream.close();
+			}
+		}
+		catch (IOException e) {
+			// Ignore
+		}
+		return result;
+	}
+
+	/**
+	 * This always returns true because it is not currently supported.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return true;
+	}
+
+	/**
+	 * This also changes the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSaveAs() {
+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+		saveAsDialog.open();
+		IPath path = saveAsDialog.getResult();
+		if (path != null) {
+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			if (file != null) {
+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+			}
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void doSaveAs(URI uri, IEditorInput editorInput) {
+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		IProgressMonitor progressMonitor =
+			getActionBars().getStatusLineManager() != null ?
+				getActionBars().getStatusLineManager().getProgressMonitor() :
+				new NullProgressMonitor();
+		doSave(progressMonitor);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void gotoMarker(IMarker marker) {
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
+		}
+	}
+
+	/**
+	 * This is called during startup.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput editorInput) {
+		setSite(site);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		site.setSelectionProvider(this);
+		site.getPage().addPartListener(partListener);
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFocus() {
+		if (currentViewerPane != null) {
+			currentViewerPane.setFocus();
+		}
+		else {
+			getControl(getActivePage()).setFocus();
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.add(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.remove(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISelection getSelection() {
+		return editorSelection;
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+	 * Calling this result will notify the listeners.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelection(ISelection selection) {
+		editorSelection = selection;
+
+		for (ISelectionChangedListener listener : selectionChangedListeners) {
+			listener.selectionChanged(new SelectionChangedEvent(this, selection));
+		}
+		setStatusLineManager(selection);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStatusLineManager(ISelection selection) {
+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+		if (statusLineManager != null) {
+			if (selection instanceof IStructuredSelection) {
+				Collection<?> collection = ((IStructuredSelection)selection).toList();
+				switch (collection.size()) {
+					case 0: {
+						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+						break;
+					}
+					case 1: {
+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+						break;
+					}
+					default: {
+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+						break;
+					}
+				}
+			}
+			else {
+				statusLineManager.setMessage("");
+			}
+		}
+	}
+
+	/**
+	 * This looks up a string in the plugin's plugin.properties file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key);
+	}
+
+	/**
+	 * This looks up a string in plugin.properties, making a substitution.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key, Object s1) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void menuAboutToShow(IMenuManager menuManager) {
+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomainActionBarContributor getActionBarContributor() {
+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IActionBars getActionBars() {
+		return getActionBarContributor().getActionBars();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdapterFactory getAdapterFactory() {
+		return adapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void dispose() {
+		updateProblemIndication = false;
+
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+		getSite().getPage().removePartListener(partListener);
+
+		adapterFactory.dispose();
+
+		if (getActionBarContributor().getActiveEditor() == this) {
+			getActionBarContributor().setActiveEditor(null);
+		}
+
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
+			propertySheetPage.dispose();
+		}
+
+		if (contentOutlinePage != null) {
+			contentOutlinePage.dispose();
+		}
+
+		super.dispose();
+	}
+
+	/**
+	 * Returns whether the outline view should be presented to the user.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean showOutlineView() {
+		return true;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/validation/presentation/ValidationModelWizard.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/validation/presentation/ValidationModelWizard.java
new file mode 100644
index 0000000..6124519
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/validation/presentation/ValidationModelWizard.java
@@ -0,0 +1,641 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.validation.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValidationModelWizard extends Wizard implements INewWizard {
+	/**
+	 * The supported extensions for created files.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<String> FILE_EXTENSIONS =
+		Collections.unmodifiableList(Arrays.asList(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ValidationEditorFilenameExtensions").split("\\s*,\\s*")));
+
+	/**
+	 * A formatted list of supported file extensions, suitable for display.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String FORMATTED_FILE_EXTENSIONS =
+		ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ValidationEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+	/**
+	 * This caches an instance of the model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ValidationPackage validationPackage = ValidationPackage.eINSTANCE;
+
+	/**
+	 * This caches an instance of the model factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ValidationFactory validationFactory = validationPackage.getValidationFactory();
+
+	/**
+	 * This is the file creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ValidationModelWizardNewFileCreationPage newFileCreationPage;
+
+	/**
+	 * This is the initial object creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ValidationModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+	/**
+	 * Remember the selection during initialization for populating the default container.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStructuredSelection selection;
+
+	/**
+	 * Remember the workbench during initialization.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IWorkbench workbench;
+
+	/**
+	 * Caches the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<String> initialObjectNames;
+
+	/**
+	 * This just records the information.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ECViewCoreEditorPlugin.INSTANCE.getImage("full/wizban/NewValidation")));
+	}
+
+	/**
+	 * Returns the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<String> getInitialObjectNames() {
+		if (initialObjectNames == null) {
+			initialObjectNames = new ArrayList<String>();
+			for (EClassifier eClassifier : validationPackage.getEClassifiers()) {
+				if (eClassifier instanceof EClass) {
+					EClass eClass = (EClass)eClassifier;
+					if (!eClass.isAbstract()) {
+						initialObjectNames.add(eClass.getName());
+					}
+				}
+			}
+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+		}
+		return initialObjectNames;
+	}
+
+	/**
+	 * Create a new model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EObject createInitialModel() {
+		EClass eClass = (EClass)validationPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+		EObject rootObject = validationFactory.create(eClass);
+		return rootObject;
+	}
+
+	/**
+	 * Do the work after everything is specified.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean performFinish() {
+		try {
+			// Remember the file.
+			//
+			final IFile modelFile = getModelFile();
+
+			// Do the work within an operation.
+			//
+			WorkspaceModifyOperation operation =
+				new WorkspaceModifyOperation() {
+					@Override
+					protected void execute(IProgressMonitor progressMonitor) {
+						try {
+							// Create a resource set
+							//
+							ResourceSet resourceSet = new ResourceSetImpl();
+
+							// Get the URI of the model file.
+							//
+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+							// Create a resource for this file.
+							//
+							Resource resource = resourceSet.createResource(fileURI);
+
+							// Add the initial model object to the contents.
+							//
+							EObject rootObject = createInitialModel();
+							if (rootObject != null) {
+								resource.getContents().add(rootObject);
+							}
+
+							// Save the contents of the resource to the file system.
+							//
+							Map<Object, Object> options = new HashMap<Object, Object>();
+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+							resource.save(options);
+						}
+						catch (Exception exception) {
+							ECViewCoreEditorPlugin.INSTANCE.log(exception);
+						}
+						finally {
+							progressMonitor.done();
+						}
+					}
+				};
+
+			getContainer().run(false, false, operation);
+
+			// Select the new file resource in the current view.
+			//
+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			final IWorkbenchPart activePart = page.getActivePart();
+			if (activePart instanceof ISetSelectionTarget) {
+				final ISelection targetSelection = new StructuredSelection(modelFile);
+				getShell().getDisplay().asyncExec
+					(new Runnable() {
+						 public void run() {
+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+						 }
+					 });
+			}
+
+			// Open an editor on the new file.
+			//
+			try {
+				page.openEditor
+					(new FileEditorInput(modelFile),
+					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
+			}
+			catch (PartInitException exception) {
+				MessageDialog.openError(workbenchWindow.getShell(), ECViewCoreEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+				return false;
+			}
+
+			return true;
+		}
+		catch (Exception exception) {
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+			return false;
+		}
+	}
+
+	/**
+	 * This is the one page of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ValidationModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ValidationModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+			super(pageId, selection);
+		}
+
+		/**
+		 * The framework calls this to see if the file is correct.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		protected boolean validatePage() {
+			if (super.validatePage()) {
+				String extension = new Path(getFileName()).getFileExtension();
+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+					setErrorMessage(ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+					return false;
+				}
+				return true;
+			}
+			return false;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public IFile getModelFile() {
+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+		}
+	}
+
+	/**
+	 * This is the page where the type of object to create is selected.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ValidationModelWizardInitialObjectCreationPage extends WizardPage {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo initialObjectField;
+
+		/**
+		 * @generated
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 */
+		protected List<String> encodings;
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo encodingField;
+
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ValidationModelWizardInitialObjectCreationPage(String pageId) {
+			super(pageId);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public void createControl(Composite parent) {
+			Composite composite = new Composite(parent, SWT.NONE);
+			{
+				GridLayout layout = new GridLayout();
+				layout.numColumns = 1;
+				layout.verticalSpacing = 12;
+				composite.setLayout(layout);
+
+				GridData data = new GridData();
+				data.verticalAlignment = GridData.FILL;
+				data.grabExcessVerticalSpace = true;
+				data.horizontalAlignment = GridData.FILL;
+				composite.setLayoutData(data);
+			}
+
+			Label containerLabel = new Label(composite, SWT.LEFT);
+			{
+				containerLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				containerLabel.setLayoutData(data);
+			}
+
+			initialObjectField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				initialObjectField.setLayoutData(data);
+			}
+
+			for (String objectName : getInitialObjectNames()) {
+				initialObjectField.add(getLabel(objectName));
+			}
+
+			if (initialObjectField.getItemCount() == 1) {
+				initialObjectField.select(0);
+			}
+			initialObjectField.addModifyListener(validator);
+
+			Label encodingLabel = new Label(composite, SWT.LEFT);
+			{
+				encodingLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				encodingLabel.setLayoutData(data);
+			}
+			encodingField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				encodingField.setLayoutData(data);
+			}
+
+			for (String encoding : getEncodings()) {
+				encodingField.add(encoding);
+			}
+
+			encodingField.select(0);
+			encodingField.addModifyListener(validator);
+
+			setPageComplete(validatePage());
+			setControl(composite);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected ModifyListener validator =
+			new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					setPageComplete(validatePage());
+				}
+			};
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected boolean validatePage() {
+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public void setVisible(boolean visible) {
+			super.setVisible(visible);
+			if (visible) {
+				if (initialObjectField.getItemCount() == 1) {
+					initialObjectField.clearSelection();
+					encodingField.setFocus();
+				}
+				else {
+					encodingField.clearSelection();
+					initialObjectField.setFocus();
+				}
+			}
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getInitialObjectName() {
+			String label = initialObjectField.getText();
+
+			for (String name : getInitialObjectNames()) {
+				if (getLabel(name).equals(label)) {
+					return name;
+				}
+			}
+			return null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getEncoding() {
+			return encodingField.getText();
+		}
+
+		/**
+		 * Returns the label for the specified type name.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected String getLabel(String typeName) {
+			try {
+				return ECViewCoreEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+			}
+			catch(MissingResourceException mre) {
+				ECViewCoreEditorPlugin.INSTANCE.log(mre);
+			}
+			return typeName;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Collection<String> getEncodings() {
+			if (encodings == null) {
+				encodings = new ArrayList<String>();
+				for (StringTokenizer stringTokenizer = new StringTokenizer(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+					encodings.add(stringTokenizer.nextToken());
+				}
+			}
+			return encodings;
+		}
+	}
+
+	/**
+	 * The framework calls this to create the contents of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+		@Override
+	public void addPages() {
+		// Create a page, set the title, and the initial model file name.
+		//
+		newFileCreationPage = new ValidationModelWizardNewFileCreationPage("Whatever", selection);
+		newFileCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ValidationModelWizard_label"));
+		newFileCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ValidationModelWizard_description"));
+		newFileCreationPage.setFileName(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ValidationEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+		addPage(newFileCreationPage);
+
+		// Try and get the resource selection to determine a current directory for the file dialog.
+		//
+		if (selection != null && !selection.isEmpty()) {
+			// Get the resource...
+			//
+			Object selectedElement = selection.iterator().next();
+			if (selectedElement instanceof IResource) {
+				// Get the resource parent, if its a file.
+				//
+				IResource selectedResource = (IResource)selectedElement;
+				if (selectedResource.getType() == IResource.FILE) {
+					selectedResource = selectedResource.getParent();
+				}
+
+				// This gives us a directory...
+				//
+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+					// Set this for the container.
+					//
+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+					// Make up a unique new name here.
+					//
+					String defaultModelBaseFilename = ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ValidationEditorFilenameDefaultBase");
+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+					}
+					newFileCreationPage.setFileName(modelFilename);
+				}
+			}
+		}
+		initialObjectCreationPage = new ValidationModelWizardInitialObjectCreationPage("Whatever2");
+		initialObjectCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ValidationModelWizard_label"));
+		initialObjectCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+		addPage(initialObjectCreationPage);
+	}
+
+	/**
+	 * Get the file from the page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IFile getModelFile() {
+		return newFileCreationPage.getModelFile();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/visibility/presentation/VisibilityActionBarContributor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/visibility/presentation/VisibilityActionBarContributor.java
new file mode 100644
index 0000000..309e2ef
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/visibility/presentation/VisibilityActionBarContributor.java
@@ -0,0 +1,436 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.visibility.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+/**
+ * This is the action bar contributor for the Visibility model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VisibilityActionBarContributor
+	extends EditingDomainActionBarContributor
+	implements ISelectionChangedListener {
+	/**
+	 * This keeps track of the active editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IEditorPart activeEditorPart;
+
+	/**
+	 * This keeps track of the current selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionProvider selectionProvider;
+
+	/**
+	 * This action opens the Properties view.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction showPropertiesViewAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+			@Override
+			public void run() {
+				try {
+					getPage().showView("org.eclipse.ui.views.PropertySheet");
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * This action refreshes the viewer of the current editor if the editor
+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction refreshViewerAction =
+		new Action(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+			@Override
+			public boolean isEnabled() {
+				return activeEditorPart instanceof IViewerProvider;
+			}
+
+			@Override
+			public void run() {
+				if (activeEditorPart instanceof IViewerProvider) {
+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+					if (viewer != null) {
+						viewer.refresh();
+					}
+				}
+			}
+		};
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createChildActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createChildMenuManager;
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createSiblingActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createSiblingMenuManager;
+
+	/**
+	 * This creates an instance of the contributor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VisibilityActionBarContributor() {
+		super(ADDITIONS_LAST_STYLE);
+		loadResourceAction = new LoadResourceAction();
+		validateAction = new ValidateAction();
+		controlAction = new ControlAction();
+	}
+
+	/**
+	 * This adds Separators for editor additions to the tool bar.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToToolBar(IToolBarManager toolBarManager) {
+		toolBarManager.add(new Separator("visibility-settings"));
+		toolBarManager.add(new Separator("visibility-additions"));
+	}
+
+	/**
+	 * This adds to the menu bar a menu and some separators for editor additions,
+	 * as well as the sub-menus for object creation items.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToMenu(IMenuManager menuManager) {
+		super.contributeToMenu(menuManager);
+
+		IMenuManager submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_VisibilityEditor_menu"), "org.eclipse.osbp.ecview.core.common.model.visibilityMenuID");
+		menuManager.insertAfter("additions", submenuManager);
+		submenuManager.add(new Separator("settings"));
+		submenuManager.add(new Separator("actions"));
+		submenuManager.add(new Separator("additions"));
+		submenuManager.add(new Separator("additions-end"));
+
+		// Prepare for CreateChild item addition or removal.
+		//
+		createChildMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		submenuManager.insertBefore("additions", createChildMenuManager);
+
+		// Prepare for CreateSibling item addition or removal.
+		//
+		createSiblingMenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+		// Force an update because Eclipse hides empty menus now.
+		//
+		submenuManager.addMenuListener
+			(new IMenuListener() {
+				 public void menuAboutToShow(IMenuManager menuManager) {
+					 menuManager.updateAll(true);
+				 }
+			 });
+
+		addGlobalActions(submenuManager);
+	}
+
+	/**
+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setActiveEditor(IEditorPart part) {
+		super.setActiveEditor(part);
+		activeEditorPart = part;
+
+		// Switch to the new selection provider.
+		//
+		if (selectionProvider != null) {
+			selectionProvider.removeSelectionChangedListener(this);
+		}
+		if (part == null) {
+			selectionProvider = null;
+		}
+		else {
+			selectionProvider = part.getSite().getSelectionProvider();
+			selectionProvider.addSelectionChangedListener(this);
+
+			// Fake a selection changed event to update the menus.
+			//
+			if (selectionProvider.getSelection() != null) {
+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+			}
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+	 * that can be added to the selected object and updating the menus accordingly.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		// Remove any menu items for old selection.
+		//
+		if (createChildMenuManager != null) {
+			depopulateManager(createChildMenuManager, createChildActions);
+		}
+		if (createSiblingMenuManager != null) {
+			depopulateManager(createSiblingMenuManager, createSiblingActions);
+		}
+
+		// Query the new selection for appropriate new child/sibling descriptors
+		//
+		Collection<?> newChildDescriptors = null;
+		Collection<?> newSiblingDescriptors = null;
+
+		ISelection selection = event.getSelection();
+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+			Object object = ((IStructuredSelection)selection).getFirstElement();
+
+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+			newChildDescriptors = domain.getNewChildDescriptors(object, null);
+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+		}
+
+		// Generate actions for selection; populate and redraw the menus.
+		//
+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+		if (createChildMenuManager != null) {
+			populateManager(createChildMenuManager, createChildActions, null);
+			createChildMenuManager.update(true);
+		}
+		if (createSiblingMenuManager != null) {
+			populateManager(createSiblingMenuManager, createSiblingActions, null);
+			createSiblingMenuManager.update(true);
+		}
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+	 * by inserting them before the specified contribution item <code>contributionID</code>.
+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+		if (actions != null) {
+			for (IAction action : actions) {
+				if (contributionID != null) {
+					manager.insertBefore(contributionID, action);
+				}
+				else {
+					manager.add(action);
+				}
+			}
+		}
+	}
+		
+	/**
+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+		if (actions != null) {
+			IContributionItem[] items = manager.getItems();
+			for (int i = 0; i < items.length; i++) {
+				// Look into SubContributionItems
+				//
+				IContributionItem contributionItem = items[i];
+				while (contributionItem instanceof SubContributionItem) {
+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+				}
+
+				// Delete the ActionContributionItems with matching action.
+				//
+				if (contributionItem instanceof ActionContributionItem) {
+					IAction action = ((ActionContributionItem)contributionItem).getAction();
+					if (actions.contains(action)) {
+						manager.remove(contributionItem);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This populates the pop-up menu before it appears.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void menuAboutToShow(IMenuManager menuManager) {
+		super.menuAboutToShow(menuManager);
+		MenuManager submenuManager = null;
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		populateManager(submenuManager, createChildActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+
+		submenuManager = new MenuManager(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		populateManager(submenuManager, createSiblingActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+	}
+
+	/**
+	 * This inserts global actions before the "additions-end" separator.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void addGlobalActions(IMenuManager menuManager) {
+		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
+		menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+		super.addGlobalActions(menuManager);
+	}
+
+	/**
+	 * This ensures that a delete action will clean up all references to deleted objects.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean removeAllReferencesOnDelete() {
+		return true;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/visibility/presentation/VisibilityEditor.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/visibility/presentation/VisibilityEditor.java
new file mode 100644
index 0000000..5c2b96d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/visibility/presentation/VisibilityEditor.java
@@ -0,0 +1,1843 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.visibility.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.osbp.ecview.core.common.model.visibility.provider.VisibilityItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.BindingItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.core.provider.CoreModelItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.provider.DatatypesItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.provider.ValidationItemProviderAdapterFactory;
+
+
+/**
+ * This is an example of a Visibility model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VisibilityEditor
+	extends MultiPageEditorPart
+	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+	/**
+	 * This keeps track of the editing domain that is used to track all changes to the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AdapterFactoryEditingDomain editingDomain;
+
+	/**
+	 * This is the one adapter factory used for providing views of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory adapterFactory;
+
+	/**
+	 * This is the content outline page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IContentOutlinePage contentOutlinePage;
+
+	/**
+	 * This is a kludge...
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStatusLineManager contentOutlineStatusLineManager;
+
+	/**
+	 * This is the content outline page's viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer contentOutlineViewer;
+
+	/**
+	 * This is the property sheet page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+	/**
+	 * This is the viewer that shadows the selection in the content outline.
+	 * The parent relation must be correctly defined for this to work.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer selectionViewer;
+
+	/**
+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer parentViewer;
+
+	/**
+	 * This shows how a tree view works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewer;
+
+	/**
+	 * This shows how a list view works.
+	 * A list viewer doesn't support icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ListViewer listViewer;
+
+	/**
+	 * This shows how a table view works.
+	 * A table can be used as a list with icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableViewer tableViewer;
+
+	/**
+	 * This shows how a tree view with columns works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewerWithColumns;
+
+	/**
+	 * This keeps track of the active viewer pane, in the book.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewerPane currentViewerPane;
+
+	/**
+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Viewer currentViewer;
+
+	/**
+	 * This listens to which ever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionChangedListener selectionChangedListener;
+
+	/**
+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+	/**
+	 * This keeps track of the selection of the editor as a whole.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+	/**
+	 * The MarkerHelper is responsible for creating workspace resource markers presented
+	 * in Eclipse's Problems View.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+	/**
+	 * This listens for when the outline becomes active
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPartListener partListener =
+		new IPartListener() {
+			public void partActivated(IWorkbenchPart p) {
+				if (p instanceof ContentOutline) {
+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+						getActionBarContributor().setActiveEditor(VisibilityEditor.this);
+
+						setCurrentViewer(contentOutlineViewer);
+					}
+				}
+				else if (p instanceof PropertySheet) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+						getActionBarContributor().setActiveEditor(VisibilityEditor.this);
+						handleActivate();
+					}
+				}
+				else if (p == VisibilityEditor.this) {
+					handleActivate();
+				}
+			}
+			public void partBroughtToTop(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partClosed(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partDeactivated(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partOpened(IWorkbenchPart p) {
+				// Ignore.
+			}
+		};
+
+	/**
+	 * Resources that have been removed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been changed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been saved.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+	/**
+	 * Map to store the diagnostic associated with a resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+	/**
+	 * Controls whether the problem indication should be updated.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean updateProblemIndication = true;
+
+	/**
+	 * Adapter used to update the problem indication when resources are demanded loaded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EContentAdapter problemIndicationAdapter =
+		new EContentAdapter() {
+			@Override
+			public void notifyChanged(Notification notification) {
+				if (notification.getNotifier() instanceof Resource) {
+					switch (notification.getFeatureID(Resource.class)) {
+						case Resource.RESOURCE__IS_LOADED:
+						case Resource.RESOURCE__ERRORS:
+						case Resource.RESOURCE__WARNINGS: {
+							Resource resource = (Resource)notification.getNotifier();
+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+							if (diagnostic.getSeverity() != Diagnostic.OK) {
+								resourceToDiagnosticMap.put(resource, diagnostic);
+							}
+							else {
+								resourceToDiagnosticMap.remove(resource);
+							}
+
+							if (updateProblemIndication) {
+								getSite().getShell().getDisplay().asyncExec
+									(new Runnable() {
+										 public void run() {
+											 updateProblemIndication();
+										 }
+									 });
+							}
+							break;
+						}
+					}
+				}
+				else {
+					super.notifyChanged(notification);
+				}
+			}
+
+			@Override
+			protected void setTarget(Resource target) {
+				basicSetTarget(target);
+			}
+
+			@Override
+			protected void unsetTarget(Resource target) {
+				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
+			}
+		};
+
+	/**
+	 * This listens for workspace changes.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IResourceChangeListener resourceChangeListener =
+		new IResourceChangeListener() {
+			public void resourceChanged(IResourceChangeEvent event) {
+				IResourceDelta delta = event.getDelta();
+				try {
+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+						protected ResourceSet resourceSet = editingDomain.getResourceSet();
+						protected Collection<Resource> changedResources = new ArrayList<Resource>();
+						protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+						public boolean visit(IResourceDelta delta) {
+							if (delta.getResource().getType() == IResource.FILE) {
+								if (delta.getKind() == IResourceDelta.REMOVED ||
+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+									if (resource != null) {
+										if (delta.getKind() == IResourceDelta.REMOVED) {
+											removedResources.add(resource);
+										}
+										else if (!savedResources.remove(resource)) {
+											changedResources.add(resource);
+										}
+									}
+								}
+								return false;
+							}
+
+							return true;
+						}
+
+						public Collection<Resource> getChangedResources() {
+							return changedResources;
+						}
+
+						public Collection<Resource> getRemovedResources() {
+							return removedResources;
+						}
+					}
+
+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+					delta.accept(visitor);
+
+					if (!visitor.getRemovedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 removedResources.addAll(visitor.getRemovedResources());
+									 if (!isDirty()) {
+										 getSite().getPage().closeEditor(VisibilityEditor.this, false);
+									 }
+								 }
+							 });
+					}
+
+					if (!visitor.getChangedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 changedResources.addAll(visitor.getChangedResources());
+									 if (getSite().getPage().getActiveEditor() == VisibilityEditor.this) {
+										 handleActivate();
+									 }
+								 }
+							 });
+					}
+				}
+				catch (CoreException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * Handles activation of the editor or it's associated views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleActivate() {
+		// Recompute the read only state.
+		//
+		if (editingDomain.getResourceToReadOnlyMap() != null) {
+		  editingDomain.getResourceToReadOnlyMap().clear();
+
+		  // Refresh any actions that may become enabled or disabled.
+		  //
+		  setSelection(getSelection());
+		}
+
+		if (!removedResources.isEmpty()) {
+			if (handleDirtyConflict()) {
+				getSite().getPage().closeEditor(VisibilityEditor.this, false);
+			}
+			else {
+				removedResources.clear();
+				changedResources.clear();
+				savedResources.clear();
+			}
+		}
+		else if (!changedResources.isEmpty()) {
+			changedResources.removeAll(savedResources);
+			handleChangedResources();
+			changedResources.clear();
+			savedResources.clear();
+		}
+	}
+
+	/**
+	 * Handles what to do with changed resources on activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleChangedResources() {
+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+			if (isDirty()) {
+				changedResources.addAll(editingDomain.getResourceSet().getResources());
+			}
+			editingDomain.getCommandStack().flush();
+
+			updateProblemIndication = false;
+			for (Resource resource : changedResources) {
+				if (resource.isLoaded()) {
+					resource.unload();
+					try {
+						resource.load(Collections.EMPTY_MAP);
+					}
+					catch (IOException exception) {
+						if (!resourceToDiagnosticMap.containsKey(resource)) {
+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+						}
+					}
+				}
+			}
+
+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+				setSelection(StructuredSelection.EMPTY);
+			}
+
+			updateProblemIndication = true;
+			updateProblemIndication();
+		}
+	}
+
+	/**
+	 * Updates the problems indication with the information described in the specified diagnostic.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void updateProblemIndication() {
+		if (updateProblemIndication) {
+			BasicDiagnostic diagnostic =
+				new BasicDiagnostic
+					(Diagnostic.OK,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 null,
+					 new Object [] { editingDomain.getResourceSet() });
+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+					diagnostic.add(childDiagnostic);
+				}
+			}
+
+			int lastEditorPage = getPageCount() - 1;
+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					setActivePage(lastEditorPage);
+				}
+			}
+			else if (diagnostic.getSeverity() != Diagnostic.OK) {
+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+				problemEditorPart.setDiagnostic(diagnostic);
+				problemEditorPart.setMarkerHelper(markerHelper);
+				try {
+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+					setPageText(lastEditorPage, problemEditorPart.getPartName());
+					setActivePage(lastEditorPage);
+					showTabs();
+				}
+				catch (PartInitException exception) {
+					ECViewCoreEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+
+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+				markerHelper.deleteMarkers(editingDomain.getResourceSet());
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					try {
+						markerHelper.createMarkers(diagnostic);
+					}
+					catch (CoreException exception) {
+						ECViewCoreEditorPlugin.INSTANCE.log(exception);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Shows a dialog that asks if conflicting changes should be discarded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean handleDirtyConflict() {
+		return
+			MessageDialog.openQuestion
+				(getSite().getShell(),
+				 getString("_UI_FileConflict_label"),
+				 getString("_WARN_FileConflict"));
+	}
+
+	/**
+	 * This creates a model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VisibilityEditor() {
+		super();
+		initializeEditingDomain();
+	}
+
+	/**
+	 * This sets up the editing domain for the model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void initializeEditingDomain() {
+		// Create an adapter factory that yields item providers.
+		//
+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new BindingItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new CoreModelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ValidationItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new DatatypesItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new VisibilityItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+		// Create the command stack that will notify this editor as commands are executed.
+		//
+		BasicCommandStack commandStack = new BasicCommandStack();
+
+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+		//
+		commandStack.addCommandStackListener
+			(new CommandStackListener() {
+				 public void commandStackChanged(final EventObject event) {
+					 getContainer().getDisplay().asyncExec
+						 (new Runnable() {
+							  public void run() {
+								  firePropertyChange(IEditorPart.PROP_DIRTY);
+
+								  // Try to select the affected objects.
+								  //
+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+								  if (mostRecentCommand != null) {
+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+								  }
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
+								  }
+							  }
+						  });
+				 }
+			 });
+
+		// Create the editing domain with a special command stack.
+		//
+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+	}
+
+	/**
+	 * This is here for the listener to be able to call it.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+			@Override
+	protected void firePropertyChange(int action) {
+		super.firePropertyChange(action);
+	}
+
+	/**
+	 * This sets the selection into whichever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectionToViewer(Collection<?> collection) {
+		final Collection<?> theSelection = collection;
+		// Make sure it's okay.
+		//
+		if (theSelection != null && !theSelection.isEmpty()) {
+			Runnable runnable =
+				new Runnable() {
+					public void run() {
+						// Try to select the items in the current content viewer of the editor.
+						//
+						if (currentViewer != null) {
+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+						}
+					}
+				};
+			getSite().getShell().getDisplay().asyncExec(runnable);
+		}
+	}
+
+	/**
+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+			super(adapterFactory);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getElements(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getChildren(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public boolean hasChildren(Object object) {
+			Object parent = super.getParent(object);
+			return parent != null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object getParent(Object object) {
+			return null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewerPane(ViewerPane viewerPane) {
+		if (currentViewerPane != viewerPane) {
+			if (currentViewerPane != null) {
+				currentViewerPane.showFocus(false);
+			}
+			currentViewerPane = viewerPane;
+		}
+		setCurrentViewer(currentViewerPane.getViewer());
+	}
+
+	/**
+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+	 * is the current one.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewer(Viewer viewer) {
+		// If it is changing...
+		//
+		if (currentViewer != viewer) {
+			if (selectionChangedListener == null) {
+				// Create the listener on demand.
+				//
+				selectionChangedListener =
+					new ISelectionChangedListener() {
+						// This just notifies those things that are affected by the section.
+						//
+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+							setSelection(selectionChangedEvent.getSelection());
+						}
+					};
+			}
+
+			// Stop listening to the old one.
+			//
+			if (currentViewer != null) {
+				currentViewer.removeSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Start listening to the new one.
+			//
+			if (viewer != null) {
+				viewer.addSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Remember it.
+			//
+			currentViewer = viewer;
+
+			// Set the editors selection based on the current viewer's selection.
+			//
+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+		}
+	}
+
+	/**
+	 * This returns the viewer as required by the {@link IViewerProvider} interface.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Viewer getViewer() {
+		return currentViewer;
+	}
+
+	/**
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createContextMenuFor(StructuredViewer viewer) {
+		MenuManager contextMenu = new MenuManager("#PopUp");
+		contextMenu.add(new Separator("additions"));
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(this);
+		Menu menu= contextMenu.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+	}
+
+	/**
+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createModel() {
+		URI resourceURI = EditUIUtil.getURI(getEditorInput());
+		Exception exception = null;
+		Resource resource = null;
+		try {
+			// Load the resource through the editing domain.
+			//
+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+		}
+		catch (Exception e) {
+			exception = e;
+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+		}
+
+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+		if (diagnostic.getSeverity() != Diagnostic.OK) {
+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
+		}
+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+	}
+
+	/**
+	 * Returns a diagnostic describing the errors and warnings listed in the resource
+	 * and the specified exception (if any).
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+		if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+			BasicDiagnostic basicDiagnostic =
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object [] { exception == null ? (Object)resource : exception });
+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+			return basicDiagnostic;
+		}
+		else if (exception != null) {
+			return
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.common.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object[] { exception });
+		}
+		else {
+			return Diagnostic.OK_INSTANCE;
+		}
+	}
+
+	/**
+	 * This is the method used by the framework to install your own controls.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void createPages() {
+		// Creates the model from the editor input
+		//
+		createModel();
+
+		// Only creates the other pages if there is something that can be edited
+		//
+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+			// Create a page for the selection tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), VisibilityEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				selectionViewer = (TreeViewer)viewerPane.getViewer();
+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				selectionViewer.setInput(editingDomain.getResourceSet());
+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+				viewerPane.setTitle(editingDomain.getResourceSet());
+
+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(selectionViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+			}
+
+			// Create a page for the parent tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), VisibilityEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				parentViewer = (TreeViewer)viewerPane.getViewer();
+				parentViewer.setAutoExpandLevel(30);
+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(parentViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ParentPage_label"));
+			}
+
+			// This is the page for the list viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), VisibilityEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new ListViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				listViewer = (ListViewer)viewerPane.getViewer();
+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(listViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ListPage_label"));
+			}
+
+			// This is the page for the tree viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), VisibilityEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				treeViewer = (TreeViewer)viewerPane.getViewer();
+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(treeViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreePage_label"));
+			}
+
+			// This is the page for the table viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), VisibilityEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TableViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				tableViewer = (TableViewer)viewerPane.getViewer();
+
+				Table table = tableViewer.getTable();
+				TableLayout layout = new TableLayout();
+				table.setLayout(layout);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
+
+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(3, 100, true));
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+
+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(2, 100, true));
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+
+				tableViewer.setColumnProperties(new String [] {"a", "b"});
+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(tableViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TablePage_label"));
+			}
+
+			// This is the page for the table tree viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), VisibilityEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+				Tree tree = treeViewerWithColumns.getTree();
+				tree.setLayoutData(new FillLayout());
+				tree.setHeaderVisible(true);
+				tree.setLinesVisible(true);
+
+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+				objectColumn.setWidth(250);
+
+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+				selfColumn.setWidth(200);
+
+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(treeViewerWithColumns);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+			}
+
+			getSite().getShell().getDisplay().asyncExec
+				(new Runnable() {
+					 public void run() {
+						 setActivePage(0);
+					 }
+				 });
+		}
+
+		// Ensures that this editor will only display the page's tab
+		// area if there are more than one page
+		//
+		getContainer().addControlListener
+			(new ControlAdapter() {
+				boolean guard = false;
+				@Override
+				public void controlResized(ControlEvent event) {
+					if (!guard) {
+						guard = true;
+						hideTabs();
+						guard = false;
+					}
+				}
+			 });
+
+		getSite().getShell().getDisplay().asyncExec
+			(new Runnable() {
+				 public void run() {
+					 updateProblemIndication();
+				 }
+			 });
+	}
+
+	/**
+	 * If there is just one page in the multi-page editor part,
+	 * this hides the single tab at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void hideTabs() {
+		if (getPageCount() <= 1) {
+			setPageText(0, "");
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(1);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y + 6);
+			}
+		}
+	}
+
+	/**
+	 * If there is more than one page in the multi-page editor part,
+	 * this shows the tabs at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void showTabs() {
+		if (getPageCount() > 1) {
+			setPageText(0, getString("_UI_SelectionPage_label"));
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y - 6);
+			}
+		}
+	}
+
+	/**
+	 * This is used to track the active viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void pageChange(int pageIndex) {
+		super.pageChange(pageIndex);
+
+		if (contentOutlinePage != null) {
+			handleContentOutlineSelection(contentOutlinePage.getSelection());
+		}
+	}
+
+	/**
+	 * This is how the framework determines which interfaces we implement.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("rawtypes")
+	@Override
+	public Object getAdapter(Class key) {
+		if (key.equals(IContentOutlinePage.class)) {
+			return showOutlineView() ? getContentOutlinePage() : null;
+		}
+		else if (key.equals(IPropertySheetPage.class)) {
+			return getPropertySheetPage();
+		}
+		else if (key.equals(IGotoMarker.class)) {
+			return this;
+		}
+		else {
+			return super.getAdapter(key);
+		}
+	}
+
+	/**
+	 * This accesses a cached version of the content outliner.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IContentOutlinePage getContentOutlinePage() {
+		if (contentOutlinePage == null) {
+			// The content outline is just a tree.
+			//
+			class MyContentOutlinePage extends ContentOutlinePage {
+				@Override
+				public void createControl(Composite parent) {
+					super.createControl(parent);
+					contentOutlineViewer = getTreeViewer();
+					contentOutlineViewer.addSelectionChangedListener(this);
+
+					// Set up the tree viewer.
+					//
+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+					contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+					// Make sure our popups work.
+					//
+					createContextMenuFor(contentOutlineViewer);
+
+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+					  // Select the root object in the view.
+					  //
+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+					}
+				}
+
+				@Override
+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+					super.makeContributions(menuManager, toolBarManager, statusLineManager);
+					contentOutlineStatusLineManager = statusLineManager;
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			}
+
+			contentOutlinePage = new MyContentOutlinePage();
+
+			// Listen to selection so that we can handle it is a special way.
+			//
+			contentOutlinePage.addSelectionChangedListener
+				(new ISelectionChangedListener() {
+					 // This ensures that we handle selections correctly.
+					 //
+					 public void selectionChanged(SelectionChangedEvent event) {
+						 handleContentOutlineSelection(event.getSelection());
+					 }
+				 });
+		}
+
+		return contentOutlinePage;
+	}
+
+	/**
+	 * This accesses a cached version of the property sheet.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPropertySheetPage getPropertySheetPage() {
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					VisibilityEditor.this.setSelectionToViewer(selection);
+					VisibilityEditor.this.setFocus();
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
+
+		return propertySheetPage;
+	}
+
+	/**
+	 * This deals with how we want selection in the outliner to affect the other views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void handleContentOutlineSelection(ISelection selection) {
+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+			if (selectedElements.hasNext()) {
+				// Get the first selected element.
+				//
+				Object selectedElement = selectedElements.next();
+
+				// If it's the selection viewer, then we want it to select the same selection as this selection.
+				//
+				if (currentViewerPane.getViewer() == selectionViewer) {
+					ArrayList<Object> selectionList = new ArrayList<Object>();
+					selectionList.add(selectedElement);
+					while (selectedElements.hasNext()) {
+						selectionList.add(selectedElements.next());
+					}
+
+					// Set the selection to the widget.
+					//
+					selectionViewer.setSelection(new StructuredSelection(selectionList));
+				}
+				else {
+					// Set the input to the widget.
+					//
+					if (currentViewerPane.getViewer().getInput() != selectedElement) {
+						currentViewerPane.getViewer().setInput(selectedElement);
+						currentViewerPane.setTitle(selectedElement);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isDirty() {
+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply saves the model file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSave(IProgressMonitor progressMonitor) {
+		// Save only resources that have actually changed.
+		//
+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+		// Do the work within an operation because this is a long running activity that modifies the workbench.
+		//
+		WorkspaceModifyOperation operation =
+			new WorkspaceModifyOperation() {
+				// This is the method that gets invoked when the operation runs.
+				//
+				@Override
+				public void execute(IProgressMonitor monitor) {
+					// Save the resources to the file system.
+					//
+					boolean first = true;
+					for (Resource resource : editingDomain.getResourceSet().getResources()) {
+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+							try {
+								long timeStamp = resource.getTimeStamp();
+								resource.save(saveOptions);
+								if (resource.getTimeStamp() != timeStamp) {
+									savedResources.add(resource);
+								}
+							}
+							catch (Exception exception) {
+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+							}
+							first = false;
+						}
+					}
+				}
+			};
+
+		updateProblemIndication = false;
+		try {
+			// This runs the options, and shows progress.
+			//
+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+			// Refresh the necessary state.
+			//
+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+			firePropertyChange(IEditorPart.PROP_DIRTY);
+		}
+		catch (Exception exception) {
+			// Something went wrong that shouldn't.
+			//
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+		}
+		updateProblemIndication = true;
+		updateProblemIndication();
+	}
+
+	/**
+	 * This returns whether something has been persisted to the URI of the specified resource.
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean isPersisted(Resource resource) {
+		boolean result = false;
+		try {
+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+			if (stream != null) {
+				result = true;
+				stream.close();
+			}
+		}
+		catch (IOException e) {
+			// Ignore
+		}
+		return result;
+	}
+
+	/**
+	 * This always returns true because it is not currently supported.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return true;
+	}
+
+	/**
+	 * This also changes the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSaveAs() {
+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+		saveAsDialog.open();
+		IPath path = saveAsDialog.getResult();
+		if (path != null) {
+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			if (file != null) {
+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+			}
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void doSaveAs(URI uri, IEditorInput editorInput) {
+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		IProgressMonitor progressMonitor =
+			getActionBars().getStatusLineManager() != null ?
+				getActionBars().getStatusLineManager().getProgressMonitor() :
+				new NullProgressMonitor();
+		doSave(progressMonitor);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void gotoMarker(IMarker marker) {
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
+		}
+	}
+
+	/**
+	 * This is called during startup.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput editorInput) {
+		setSite(site);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		site.setSelectionProvider(this);
+		site.getPage().addPartListener(partListener);
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFocus() {
+		if (currentViewerPane != null) {
+			currentViewerPane.setFocus();
+		}
+		else {
+			getControl(getActivePage()).setFocus();
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.add(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.remove(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISelection getSelection() {
+		return editorSelection;
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+	 * Calling this result will notify the listeners.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelection(ISelection selection) {
+		editorSelection = selection;
+
+		for (ISelectionChangedListener listener : selectionChangedListeners) {
+			listener.selectionChanged(new SelectionChangedEvent(this, selection));
+		}
+		setStatusLineManager(selection);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStatusLineManager(ISelection selection) {
+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+		if (statusLineManager != null) {
+			if (selection instanceof IStructuredSelection) {
+				Collection<?> collection = ((IStructuredSelection)selection).toList();
+				switch (collection.size()) {
+					case 0: {
+						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+						break;
+					}
+					case 1: {
+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+						break;
+					}
+					default: {
+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+						break;
+					}
+				}
+			}
+			else {
+				statusLineManager.setMessage("");
+			}
+		}
+	}
+
+	/**
+	 * This looks up a string in the plugin's plugin.properties file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key);
+	}
+
+	/**
+	 * This looks up a string in plugin.properties, making a substitution.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key, Object s1) {
+		return ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void menuAboutToShow(IMenuManager menuManager) {
+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomainActionBarContributor getActionBarContributor() {
+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IActionBars getActionBars() {
+		return getActionBarContributor().getActionBars();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdapterFactory getAdapterFactory() {
+		return adapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void dispose() {
+		updateProblemIndication = false;
+
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+		getSite().getPage().removePartListener(partListener);
+
+		adapterFactory.dispose();
+
+		if (getActionBarContributor().getActiveEditor() == this) {
+			getActionBarContributor().setActiveEditor(null);
+		}
+
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
+			propertySheetPage.dispose();
+		}
+
+		if (contentOutlinePage != null) {
+			contentOutlinePage.dispose();
+		}
+
+		super.dispose();
+	}
+
+	/**
+	 * Returns whether the outline view should be presented to the user.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean showOutlineView() {
+		return true;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/visibility/presentation/VisibilityModelWizard.java b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/visibility/presentation/VisibilityModelWizard.java
new file mode 100644
index 0000000..ecdfc94
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.editor/src/org/eclipse/osbp/ecview/core/common/model/visibility/presentation/VisibilityModelWizard.java
@@ -0,0 +1,641 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.visibility.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityFactory;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.presentation.ECViewCoreEditorPlugin;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VisibilityModelWizard extends Wizard implements INewWizard {
+	/**
+	 * The supported extensions for created files.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<String> FILE_EXTENSIONS =
+		Collections.unmodifiableList(Arrays.asList(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_VisibilityEditorFilenameExtensions").split("\\s*,\\s*")));
+
+	/**
+	 * A formatted list of supported file extensions, suitable for display.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String FORMATTED_FILE_EXTENSIONS =
+		ECViewCoreEditorPlugin.INSTANCE.getString("_UI_VisibilityEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+	/**
+	 * This caches an instance of the model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VisibilityPackage visibilityPackage = VisibilityPackage.eINSTANCE;
+
+	/**
+	 * This caches an instance of the model factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VisibilityFactory visibilityFactory = visibilityPackage.getVisibilityFactory();
+
+	/**
+	 * This is the file creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VisibilityModelWizardNewFileCreationPage newFileCreationPage;
+
+	/**
+	 * This is the initial object creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VisibilityModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+	/**
+	 * Remember the selection during initialization for populating the default container.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStructuredSelection selection;
+
+	/**
+	 * Remember the workbench during initialization.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IWorkbench workbench;
+
+	/**
+	 * Caches the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<String> initialObjectNames;
+
+	/**
+	 * This just records the information.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ECViewCoreEditorPlugin.INSTANCE.getImage("full/wizban/NewVisibility")));
+	}
+
+	/**
+	 * Returns the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<String> getInitialObjectNames() {
+		if (initialObjectNames == null) {
+			initialObjectNames = new ArrayList<String>();
+			for (EClassifier eClassifier : visibilityPackage.getEClassifiers()) {
+				if (eClassifier instanceof EClass) {
+					EClass eClass = (EClass)eClassifier;
+					if (!eClass.isAbstract()) {
+						initialObjectNames.add(eClass.getName());
+					}
+				}
+			}
+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+		}
+		return initialObjectNames;
+	}
+
+	/**
+	 * Create a new model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EObject createInitialModel() {
+		EClass eClass = (EClass)visibilityPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+		EObject rootObject = visibilityFactory.create(eClass);
+		return rootObject;
+	}
+
+	/**
+	 * Do the work after everything is specified.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean performFinish() {
+		try {
+			// Remember the file.
+			//
+			final IFile modelFile = getModelFile();
+
+			// Do the work within an operation.
+			//
+			WorkspaceModifyOperation operation =
+				new WorkspaceModifyOperation() {
+					@Override
+					protected void execute(IProgressMonitor progressMonitor) {
+						try {
+							// Create a resource set
+							//
+							ResourceSet resourceSet = new ResourceSetImpl();
+
+							// Get the URI of the model file.
+							//
+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+							// Create a resource for this file.
+							//
+							Resource resource = resourceSet.createResource(fileURI);
+
+							// Add the initial model object to the contents.
+							//
+							EObject rootObject = createInitialModel();
+							if (rootObject != null) {
+								resource.getContents().add(rootObject);
+							}
+
+							// Save the contents of the resource to the file system.
+							//
+							Map<Object, Object> options = new HashMap<Object, Object>();
+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+							resource.save(options);
+						}
+						catch (Exception exception) {
+							ECViewCoreEditorPlugin.INSTANCE.log(exception);
+						}
+						finally {
+							progressMonitor.done();
+						}
+					}
+				};
+
+			getContainer().run(false, false, operation);
+
+			// Select the new file resource in the current view.
+			//
+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			final IWorkbenchPart activePart = page.getActivePart();
+			if (activePart instanceof ISetSelectionTarget) {
+				final ISelection targetSelection = new StructuredSelection(modelFile);
+				getShell().getDisplay().asyncExec
+					(new Runnable() {
+						 public void run() {
+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+						 }
+					 });
+			}
+
+			// Open an editor on the new file.
+			//
+			try {
+				page.openEditor
+					(new FileEditorInput(modelFile),
+					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
+			}
+			catch (PartInitException exception) {
+				MessageDialog.openError(workbenchWindow.getShell(), ECViewCoreEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+				return false;
+			}
+
+			return true;
+		}
+		catch (Exception exception) {
+			ECViewCoreEditorPlugin.INSTANCE.log(exception);
+			return false;
+		}
+	}
+
+	/**
+	 * This is the one page of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class VisibilityModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public VisibilityModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+			super(pageId, selection);
+		}
+
+		/**
+		 * The framework calls this to see if the file is correct.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		protected boolean validatePage() {
+			if (super.validatePage()) {
+				String extension = new Path(getFileName()).getFileExtension();
+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+					setErrorMessage(ECViewCoreEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+					return false;
+				}
+				return true;
+			}
+			return false;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public IFile getModelFile() {
+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+		}
+	}
+
+	/**
+	 * This is the page where the type of object to create is selected.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class VisibilityModelWizardInitialObjectCreationPage extends WizardPage {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo initialObjectField;
+
+		/**
+		 * @generated
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 */
+		protected List<String> encodings;
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo encodingField;
+
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public VisibilityModelWizardInitialObjectCreationPage(String pageId) {
+			super(pageId);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public void createControl(Composite parent) {
+			Composite composite = new Composite(parent, SWT.NONE);
+			{
+				GridLayout layout = new GridLayout();
+				layout.numColumns = 1;
+				layout.verticalSpacing = 12;
+				composite.setLayout(layout);
+
+				GridData data = new GridData();
+				data.verticalAlignment = GridData.FILL;
+				data.grabExcessVerticalSpace = true;
+				data.horizontalAlignment = GridData.FILL;
+				composite.setLayoutData(data);
+			}
+
+			Label containerLabel = new Label(composite, SWT.LEFT);
+			{
+				containerLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				containerLabel.setLayoutData(data);
+			}
+
+			initialObjectField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				initialObjectField.setLayoutData(data);
+			}
+
+			for (String objectName : getInitialObjectNames()) {
+				initialObjectField.add(getLabel(objectName));
+			}
+
+			if (initialObjectField.getItemCount() == 1) {
+				initialObjectField.select(0);
+			}
+			initialObjectField.addModifyListener(validator);
+
+			Label encodingLabel = new Label(composite, SWT.LEFT);
+			{
+				encodingLabel.setText(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				encodingLabel.setLayoutData(data);
+			}
+			encodingField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				encodingField.setLayoutData(data);
+			}
+
+			for (String encoding : getEncodings()) {
+				encodingField.add(encoding);
+			}
+
+			encodingField.select(0);
+			encodingField.addModifyListener(validator);
+
+			setPageComplete(validatePage());
+			setControl(composite);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected ModifyListener validator =
+			new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					setPageComplete(validatePage());
+				}
+			};
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected boolean validatePage() {
+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public void setVisible(boolean visible) {
+			super.setVisible(visible);
+			if (visible) {
+				if (initialObjectField.getItemCount() == 1) {
+					initialObjectField.clearSelection();
+					encodingField.setFocus();
+				}
+				else {
+					encodingField.clearSelection();
+					initialObjectField.setFocus();
+				}
+			}
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getInitialObjectName() {
+			String label = initialObjectField.getText();
+
+			for (String name : getInitialObjectNames()) {
+				if (getLabel(name).equals(label)) {
+					return name;
+				}
+			}
+			return null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getEncoding() {
+			return encodingField.getText();
+		}
+
+		/**
+		 * Returns the label for the specified type name.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected String getLabel(String typeName) {
+			try {
+				return ECViewCoreEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+			}
+			catch(MissingResourceException mre) {
+				ECViewCoreEditorPlugin.INSTANCE.log(mre);
+			}
+			return typeName;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Collection<String> getEncodings() {
+			if (encodings == null) {
+				encodings = new ArrayList<String>();
+				for (StringTokenizer stringTokenizer = new StringTokenizer(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+					encodings.add(stringTokenizer.nextToken());
+				}
+			}
+			return encodings;
+		}
+	}
+
+	/**
+	 * The framework calls this to create the contents of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+		@Override
+	public void addPages() {
+		// Create a page, set the title, and the initial model file name.
+		//
+		newFileCreationPage = new VisibilityModelWizardNewFileCreationPage("Whatever", selection);
+		newFileCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_VisibilityModelWizard_label"));
+		newFileCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_VisibilityModelWizard_description"));
+		newFileCreationPage.setFileName(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_VisibilityEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+		addPage(newFileCreationPage);
+
+		// Try and get the resource selection to determine a current directory for the file dialog.
+		//
+		if (selection != null && !selection.isEmpty()) {
+			// Get the resource...
+			//
+			Object selectedElement = selection.iterator().next();
+			if (selectedElement instanceof IResource) {
+				// Get the resource parent, if its a file.
+				//
+				IResource selectedResource = (IResource)selectedElement;
+				if (selectedResource.getType() == IResource.FILE) {
+					selectedResource = selectedResource.getParent();
+				}
+
+				// This gives us a directory...
+				//
+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+					// Set this for the container.
+					//
+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+					// Make up a unique new name here.
+					//
+					String defaultModelBaseFilename = ECViewCoreEditorPlugin.INSTANCE.getString("_UI_VisibilityEditorFilenameDefaultBase");
+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+					}
+					newFileCreationPage.setFileName(modelFilename);
+				}
+			}
+		}
+		initialObjectCreationPage = new VisibilityModelWizardInitialObjectCreationPage("Whatever2");
+		initialObjectCreationPage.setTitle(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_VisibilityModelWizard_label"));
+		initialObjectCreationPage.setDescription(ECViewCoreEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+		addPage(initialObjectCreationPage);
+	}
+
+	/**
+	 * Get the file from the page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IFile getModelFile() {
+		return newFileCreationPage.getModelFile();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.tests/.project b/org.eclipse.osbp.ecview.core.common.model.tests/.project
new file mode 100644
index 0000000..b328f36
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.tests/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.common.model.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.common.model.tests/LICENSE.txt b/org.eclipse.osbp.ecview.core.common.model.tests/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.tests/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.model.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.common.model.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..56e089e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.common.model.tests
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.common.model.tests
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Require-Bundle: org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)",
+ org.junit;bundle-version="4.10.0",
+ org.eclipse.equinox.ds;bundle-version="1.4.100"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emf.ecore.xmi.impl
diff --git a/org.eclipse.osbp.ecview.core.common.model.tests/build.properties b/org.eclipse.osbp.ecview.core.common.model.tests/build.properties
new file mode 100644
index 0000000..56d0227
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.tests/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+bin.includes = META-INF/,\
+               .,\
+               target/classes/,\
+               LICENSE.txt
+output.. = target/classes
+src.includes = LICENSE.txt
diff --git a/org.eclipse.osbp.ecview.core.common.model.tests/plugin.properties b/org.eclipse.osbp.ecview.core.common.model.tests/plugin.properties
new file mode 100644
index 0000000..8251de1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.tests/plugin.properties
@@ -0,0 +1,3 @@
+#
+pluginName = Model Tests
+providerName = www.eclipse.org/ecp
diff --git a/org.eclipse.osbp.ecview.core.common.model.tests/pom.xml b/org.eclipse.osbp.ecview.core.common.model.tests/pom.xml
new file mode 100644
index 0000000..3cc78b8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.tests/pom.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.osbp.ecview.core</groupId>
+    <artifactId>org.eclipse.osbp.ecview.core</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>org.eclipse.osbp.ecview.core.common.model.tests</artifactId>
+  <packaging>eclipse-test-plugin</packaging>
+  <description>Tests for core model</description>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<configuration>
+					<includes>
+						<include>**/*Test.class</include>
+					</includes>
+					<failIfNoTests>false</failIfNoTests>
+					<showEclipseLog>true</showEclipseLog>
+					<!-- <argLine>${ui.test.vmargs}</argLine> -->
+					<bundleStartLevel>
+						<bundle>
+							<id>org.eclipse.osgi</id>
+							<level>-1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.equinox.common</id>
+							<level>1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.equinox.ds</id>
+							<level>2</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.equinox.log</id>
+							<level>1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.osgi.services</id>
+							<level>1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.osbp.ecview.core.common.model.tests</id>
+							<level>4</level>
+							<autoStart>true</autoStart>
+						</bundle>
+					</bundleStartLevel>
+
+					<dependencies>
+						<!-- Plugins -->
+						<dependency>
+							<type>eclipse-plugin</type>
+							<artifactId>org.eclipse.equinox.ds</artifactId>
+							<version>0.0.0</version>
+						</dependency>
+						<dependency>
+							<type>eclipse-plugin</type>
+							<artifactId>org.eclipse.equinox.util</artifactId>
+							<version>0.0.0</version>
+						</dependency>
+					</dependencies>
+
+					<useUIHarness>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.common.model.tests/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingSetTest.java b/org.eclipse.osbp.ecview.core.common.model.tests/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingSetTest.java
new file mode 100644
index 0000000..424ceaa
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.tests/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingSetTest.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.junit.Test;
+
+public class YBindingSetTest {
+	private BindingFactory factory = BindingFactory.eINSTANCE;
+
+	@Test
+	public void test_addBinding() {
+		YBindingSet set = factory.createYBindingSet();
+		assertEquals(0, set.getBindings().size());
+
+		YValueBindingEndpoint value1 = CoreModelFactory.eINSTANCE
+				.createYContextValueBindingEndpoint();
+		YValueBindingEndpoint value2 = CoreModelFactory.eINSTANCE
+				.createYContextValueBindingEndpoint();
+
+		YBinding binding = set.addBinding(value1, value2);
+		assertEquals(1, set.getBindings().size());
+		assertSame(value1, binding.getTargetEndpoint());
+		assertSame(value2, binding.getModelEndpoint());
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model.tests/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YLayoutTest.java b/org.eclipse.osbp.ecview.core.common.model.tests/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YLayoutTest.java
new file mode 100644
index 0000000..cb9f106
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model.tests/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YLayoutTest.java
@@ -0,0 +1,158 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertSame;
+import static junit.framework.Assert.assertTrue;
+import static junit.framework.Assert.fail;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.junit.Test;
+
+public class YLayoutTest {
+
+	private CoreModelFactory factory = CoreModelFactory.eINSTANCE;
+
+	@Test
+	public void test_addElement() {
+		YLayout layout = factory.createYLayout();
+		assertEquals(0, layout.getElements().size());
+		YField field1 = factory.createYField();
+		assertTrue(layout.addElement(field1));
+		assertEquals(1, layout.getElements().size());
+		YField field2 = factory.createYField();
+		assertTrue(layout.addElement(field2));
+		assertEquals(2, layout.getElements().size());
+
+		// add same field twice
+		assertFalse(layout.addElement(field2));
+		assertEquals(2, layout.getElements().size());
+	}
+
+	@Test
+	public void test_insertElement() {
+		YLayout layout = factory.createYLayout();
+		assertEquals(0, layout.getElements().size());
+
+		YField field1 = factory.createYField();
+		layout.insertElement(0, field1);
+		assertEquals(1, layout.getElements().size());
+
+		YField field2 = factory.createYField();
+		layout.insertElement(0, field2);
+		assertEquals(2, layout.getElements().size());
+		assertEquals(0, layout.getElements().indexOf(field2));
+		assertEquals(1, layout.getElements().indexOf(field1));
+
+		YField field3 = factory.createYField();
+		layout.insertElement(99, field3);
+		assertEquals(3, layout.getElements().size());
+		assertEquals(2, layout.getElements().indexOf(field3));
+		assertEquals(0, layout.getElements().indexOf(field2));
+		assertEquals(1, layout.getElements().indexOf(field1));
+
+		// add same field twice
+		try {
+			layout.insertElement(0, field2);
+			fail();
+		} catch (IllegalArgumentException e) {
+			// expected
+		}
+	}
+
+	@Test
+	public void test_moveElement() {
+		YLayout layout = factory.createYLayout();
+		assertEquals(0, layout.getElements().size());
+
+		YField field1 = factory.createYField();
+		layout.addElement(field1);
+		YField field2 = factory.createYField();
+		layout.addElement(field2);
+		YField field3 = factory.createYField();
+		layout.addElement(field3);
+		assertEquals(0, layout.getElements().indexOf(field1));
+		assertEquals(1, layout.getElements().indexOf(field2));
+		assertEquals(2, layout.getElements().indexOf(field3));
+
+		// move field1 to between field2 and field3
+		layout.moveElement(1, field1);
+		assertEquals(0, layout.getElements().indexOf(field2));
+		assertEquals(1, layout.getElements().indexOf(field1));
+		assertEquals(2, layout.getElements().indexOf(field3));
+
+		// move field1 to its current place
+		layout.moveElement(0, field2);
+		assertEquals(0, layout.getElements().indexOf(field2));
+		assertEquals(1, layout.getElements().indexOf(field1));
+		assertEquals(2, layout.getElements().indexOf(field3));
+	}
+
+	@Test
+	public void test_removeElement() {
+		YLayout layout = factory.createYLayout();
+		assertEquals(0, layout.getElements().size());
+
+		YField field1 = factory.createYField();
+		layout.addElement(field1);
+		YField field2 = factory.createYField();
+		layout.addElement(field2);
+		YField field3 = factory.createYField();
+		layout.addElement(field3);
+		assertEquals(3, layout.getElements().size());
+
+		// move field1 to between field2 and field3
+		layout.removeElement(field1);
+		assertEquals(2, layout.getElements().size());
+		assertFalse(layout.getElements().contains(field1));
+	}
+
+	@Test
+	public void test_getIndex() {
+		YLayout layout = factory.createYLayout();
+		assertEquals(0, layout.getElements().size());
+
+		YField field1 = factory.createYField();
+		layout.addElement(field1);
+		YField field2 = factory.createYField();
+		layout.addElement(field2);
+		YField field3 = factory.createYField();
+		layout.addElement(field3);
+		assertEquals(3, layout.getElements().size());
+
+		assertEquals(0, layout.getIndex(field1));
+		assertEquals(1, layout.getIndex(field2));
+		assertEquals(2, layout.getIndex(field3));
+	}
+
+	@Test
+	public void test_getElement() {
+		YLayout layout = factory.createYLayout();
+		assertEquals(0, layout.getElements().size());
+
+		YField field1 = factory.createYField();
+		layout.addElement(field1);
+		YField field2 = factory.createYField();
+		layout.addElement(field2);
+		YField field3 = factory.createYField();
+		layout.addElement(field3);
+		assertEquals(3, layout.getElements().size());
+
+		assertSame(field1, layout.getElement(0));
+		assertSame(field2, layout.getElement(1));
+		assertSame(field3, layout.getElement(2));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/.project b/org.eclipse.osbp.ecview.core.common.model/.project
new file mode 100644
index 0000000..6f23df2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.common.model</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.common.model/LICENSE.txt b/org.eclipse.osbp.ecview.core.common.model/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.model/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.common.model/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..34f7c07
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/META-INF/MANIFEST.MF
@@ -0,0 +1,84 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.common.model
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.common.model;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: Eclipse OSBP
+ Germany)
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.osbp.ecview.core.common.model.binding;version="0.9.0";
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.common.util,
+   org.eclipse.osbp.ecview.core.common.model.core",
+ org.eclipse.osbp.ecview.core.common.model.binding.impl;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.binding.util;version="0.9.0";
+  uses:="org.eclipse.emf.ecore.util,
+   org.eclipse.osbp.ecview.core.common.model.binding,
+   org.eclipse.emf.ecore,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.osbp.ecview.core.common.model.core,
+   org.eclipse.emf.common.notify",
+ org.eclipse.osbp.ecview.core.common.model.core;version="0.9.0";
+  uses:="org.eclipse.osbp.ecview.core.common.model.visibility,
+   org.eclipse.osbp.ecview.core.common.model.binding,
+   org.eclipse.emf.ecore,
+   org.eclipse.emf.common.util,
+   org.eclipse.osbp.ecview.core.common.model.core.listeners,
+   org.eclipse.osbp.ecview.core.common.model.datatypes",
+ org.eclipse.osbp.ecview.core.common.model.core.authorization,
+ org.eclipse.osbp.ecview.core.common.model.core.authorization.impl,
+ org.eclipse.osbp.ecview.core.common.model.core.authorization.util,
+ org.eclipse.osbp.ecview.core.common.model.core.impl;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.core.impl.custom;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.core.listeners;version="0.9.0";
+  uses:="org.eclipse.osbp.ecview.core.common.model.core",
+ org.eclipse.osbp.ecview.core.common.model.core.util;version="0.9.0";
+  uses:="org.eclipse.emf.ecore.util,
+   org.eclipse.osbp.ecview.core.common.model.binding,
+   org.eclipse.emf.ecore,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.osbp.ecview.core.common.model.datatypes,
+   org.eclipse.osbp.ecview.core.common.model.core,
+   org.eclipse.emf.common.notify",
+ org.eclipse.osbp.ecview.core.common.model.datatypes;version="0.9.0";
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.common.util,
+   org.eclipse.osbp.ecview.core.common.model.core",
+ org.eclipse.osbp.ecview.core.common.model.datatypes.impl;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.datatypes.util;version="0.9.0";
+  uses:="org.eclipse.emf.ecore.util,
+   org.eclipse.emf.ecore,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.osbp.ecview.core.common.model.datatypes,
+   org.eclipse.osbp.ecview.core.common.model.core,
+   org.eclipse.emf.common.notify",
+ org.eclipse.osbp.ecview.core.common.model.validation;version="0.9.0";
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.osbp.ecview.core.common.model.core",
+ org.eclipse.osbp.ecview.core.common.model.validation.impl;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.validation.util;version="0.9.0";
+  uses:="org.eclipse.emf.ecore.util,
+   org.eclipse.emf.ecore,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.osbp.ecview.core.common.model.validation,
+   org.eclipse.osbp.ecview.core.common.model.core,
+   org.eclipse.emf.common.notify",
+ org.eclipse.osbp.ecview.core.common.model.visibility;version="0.9.0";
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.common.util,
+   org.eclipse.osbp.ecview.core.common.model.core",
+ org.eclipse.osbp.ecview.core.common.model.visibility.impl;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.model.visibility.util;version="0.9.0";
+  uses:="org.eclipse.osbp.ecview.core.common.model.visibility,
+   org.eclipse.emf.ecore.util,
+   org.eclipse.emf.ecore,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.osbp.ecview.core.common.model.core,
+   org.eclipse.emf.common.notify"
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)"
+Bundle-ActivationPolicy: lazy
+Import-Package: org.apache.commons.beanutils
diff --git a/org.eclipse.osbp.ecview.core.common.model/about.html b/org.eclipse.osbp.ecview.core.common.model/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.model/about.ini b/org.eclipse.osbp.ecview.core.common.model/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.common.model/about.mappings b/org.eclipse.osbp.ecview.core.common.model/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.common.model/about.properties b/org.eclipse.osbp.ecview.core.common.model/about.properties
new file mode 100644
index 0000000..34429ae
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.common.model
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.common.model/build.properties b/org.eclipse.osbp.ecview.core.common.model/build.properties
new file mode 100644
index 0000000..d4f43cd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/build.properties
@@ -0,0 +1,13 @@
+#
+output.. = target/classes/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               LICENSE.txt,\
+               license.html
+jars.compile.order = .
+source.. = src/
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.common.model/license.html b/org.eclipse.osbp.ecview.core.common.model/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.model/model/binding.ecore b/org.eclipse.osbp.ecview.core.common.model/model/binding.ecore
new file mode 100644
index 0000000..9d6d416
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/model/binding.ecore
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="binding" nsURI="http://osbp.eclipse.org/ecview/v1/core/binding"
+    nsPrefix="binding">
+  <eClassifiers xsi:type="ecore:EClass" name="YBindingSet" eSuperTypes="core.ecore#//YElement">
+    <eOperations name="addBinding" eType="#//YValueBinding">
+      <eParameters name="targetValue" lowerBound="1" eType="#//YValueBindingEndpoint"/>
+      <eParameters name="modelValue" lowerBound="1" eType="#//YValueBindingEndpoint"/>
+    </eOperations>
+    <eOperations name="addBinding" eType="#//YListBinding">
+      <eParameters name="targetValue" lowerBound="1" eType="#//YListBindingEndpoint"/>
+      <eParameters name="modelValue" lowerBound="1" eType="#//YListBindingEndpoint"/>
+    </eOperations>
+    <eOperations name="addBinding" eType="#//YValueBinding">
+      <eParameters name="targetValue" lowerBound="1" eType="#//YValueBindingEndpoint"/>
+      <eParameters name="modelValue" lowerBound="1" eType="#//YValueBindingEndpoint"/>
+      <eParameters name="targetToModelStrategy" lowerBound="1" eType="#//YBindingUpdateStrategy"/>
+      <eParameters name="modelToTargetStrategy" lowerBound="1" eType="#//YBindingUpdateStrategy"/>
+    </eOperations>
+    <eOperations name="addBinding" eType="#//YListBinding">
+      <eParameters name="targetValue" lowerBound="1" eType="#//YListBindingEndpoint"/>
+      <eParameters name="modelValue" lowerBound="1" eType="#//YListBindingEndpoint"/>
+      <eParameters name="targetToModelStrategy" lowerBound="1" eType="#//YBindingUpdateStrategy"/>
+      <eParameters name="modelToTargetStrategy" lowerBound="1" eType="#//YBindingUpdateStrategy"/>
+    </eOperations>
+    <eOperations name="getView" eType="ecore:EClass core.ecore#//YView"/>
+    <eOperations name="addBinding">
+      <eParameters name="binding" lowerBound="1" eType="#//YBinding"/>
+    </eOperations>
+    <eOperations name="removeBinding">
+      <eParameters name="binding" lowerBound="1" eType="#//YBinding"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="bindings" upperBound="-1"
+        eType="#//YBinding" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="transientBindings" upperBound="-1"
+        eType="#//YBinding" transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBindingEndpoint" abstract="true" eSuperTypes="core.ecore#//YElement">
+    <eOperations name="getBinding" eType="#//YBinding"/>
+    <eOperations name="isBindsElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="element" lowerBound="1" eType="ecore:EClass core.ecore#//YElement"/>
+    </eOperations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YValueBindingEndpoint" abstract="true"
+      eSuperTypes="#//YBindingEndpoint">
+    <eOperations name="createDetailValueEndpoint" eType="#//YDetailValueBindingEndpoint"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBeanValueBindingEndpoint" eSuperTypes="#//YValueBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="bean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YDetailValueBindingEndpoint" eSuperTypes="#//YValueBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="masterObservable" lowerBound="1"
+        eType="#//YValueBindingEndpoint" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
+        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YListBindingEndpoint" abstract="true"
+      eSuperTypes="#//YBindingEndpoint"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YBinding" abstract="true" eSuperTypes="core.ecore#//YElement">
+    <eOperations name="getBindingSet" eType="#//YBindingSet"/>
+    <eOperations name="isBindsElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="element" lowerBound="1" eType="ecore:EClass core.ecore#//YElement"/>
+    </eOperations>
+    <eOperations name="getTargetEndpoint" eType="#//YBindingEndpoint"/>
+    <eOperations name="getModelEndpoint" eType="#//YBindingEndpoint"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelToTargetStrategy"
+        eType="#//YBindingUpdateStrategy" defaultValueLiteral="UPDATE"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetToModelStrategy"
+        eType="#//YBindingUpdateStrategy" defaultValueLiteral="UPDATE"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YValueBinding" eSuperTypes="#//YBinding">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetEndpoint" lowerBound="1"
+        eType="#//YValueBindingEndpoint" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="modelEndpoint" lowerBound="1"
+        eType="#//YValueBindingEndpoint" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YListBinding" eSuperTypes="#//YBinding">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetEndpoint" lowerBound="1"
+        eType="#//YListBindingEndpoint" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="modelEndpoint" lowerBound="1"
+        eType="#//YListBindingEndpoint" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YBindingUpdateStrategy">
+    <eLiterals name="UPDATE" literal="UPDATE"/>
+    <eLiterals name="ON_REQUEST" value="1" literal="ON_REQUEST"/>
+    <eLiterals name="NEVER" value="2" literal="NEVER"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEnumListBindingEndpoint" eSuperTypes="#//YListBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="enum" lowerBound="1">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YECViewModelValueBindingEndpoint" eSuperTypes="#//YValueBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
+        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YECViewModelListBindingEndpoint" eSuperTypes="#//YListBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
+        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YVisibilityProcessorValueBindingEndpoint"
+      eSuperTypes="#//YValueBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="processorInstance" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YNoOpValueBindingEndpoint" eSuperTypes="#//YValueBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="ecore:EClass core.ecore#//YElement"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YNoOpListBindingEndpoint" eSuperTypes="#//YListBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="ecore:EClass core.ecore#//YElement"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.ecview.core.common.model/model/core.ecore b/org.eclipse.osbp.ecview.core.common.model/model/core.ecore
new file mode 100644
index 0000000..83af7b9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/model/core.ecore
@@ -0,0 +1,474 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="core" nsURI="http://osbp.eclipse.org/ecview/v1/core/view" nsPrefix="core">
+  <eClassifiers xsi:type="ecore:EClass" name="YElement" abstract="true" interface="true"
+      eSuperTypes="#//YTaggable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        iD="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+        eType="#//YStringToStringMap" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YStringToStringMap" instanceClassName="java.util.Map$Entry">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        iD="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YLayout" eSuperTypes="#//YEmbeddable #//YEditable #//YEnable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+        eType="#//YEmbeddable" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YHelperLayoutProvider" abstract="true"
+      interface="true">
+    <eOperations name="getHelperLayout" eType="#//YHelperLayout"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YHelperLayout" eSuperTypes="#//YLayout">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="virtualElements" upperBound="-1"
+        eType="#//YEmbeddable"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YField" eSuperTypes="#//YEmbeddable #//YEditable #//YEnable #//YFocusable">
+    <eOperations name="addValueChangeListener" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="listener" eType="#//YValueChangeListener"/>
+    </eOperations>
+    <eOperations name="removeValueChangeListener" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="listener" eType="#//YValueChangeListener"/>
+    </eOperations>
+    <eOperations name="removeAllValueChangListeners"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="validators" upperBound="-1"
+        eType="ecore:EClass validation.ecore#//YValidator" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="internalValidators" upperBound="-1"
+        eType="ecore:EClass validation.ecore#//YValidator" transient="true" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="converter" eType="#//YConverter"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YView" eSuperTypes="#//YElement #//YCssAble #//YMarginable #//YAlignmentContainer">
+    <eOperations name="getOrCreateBindingSet" eType="ecore:EClass binding.ecore#//YBindingSet"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="root" eType="#//YViewSet"
+        eOpposite="#//YViewSet/views"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="content" eType="#//YEmbeddable"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="bindingSet" eType="ecore:EClass binding.ecore#//YBindingSet"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="beanSlots" upperBound="-1"
+        eType="#//YBeanSlot" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="commandSet" eType="#//YCommandSet"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dialogs" upperBound="-1"
+        eType="#//YDialog" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="deviceType" eType="#//YDeviceType"
+        defaultValueLiteral="IDE"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="contentAlignment" eType="#//YAlignment"
+        defaultValueLiteral="FILL_FILL"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="visibilityProcessors" upperBound="-1"
+        eType="ecore:EClass visibility.ecore#//YVisibilityProcessor" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="transientVisibilityProcessors"
+        upperBound="-1" eType="ecore:EClass visibility.ecore#//YVisibilityProcessor"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="exposedActions" upperBound="-1"
+        eType="#//YExposedAction" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sharedStateGroup" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="initialFocus" eType="#//YFocusable"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="currentFocus" eType="#//YFocusable"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="disabledElements" upperBound="-1"
+        eType="#//YEmbeddable"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="authorizationStore" eType="#//authorization/YAuthorizationStore"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YDeviceType">
+    <eLiterals name="IDE" literal="IDE"/>
+    <eLiterals name="MOBILE" value="1" literal="MOBILE"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YViewSet" eSuperTypes="#//YElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="views" upperBound="-1"
+        eType="#//YView" eOpposite="#//YView/root"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="beanSlots" upperBound="-1"
+        eType="#//YBeanSlot" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YAlignment">
+    <eLiterals name="BOTTOM_LEFT"/>
+    <eLiterals name="BOTTOM_CENTER" value="1" literal="BOTTOM_CENTER"/>
+    <eLiterals name="BOTTOM_RIGHT" value="2" literal="BOTTOM_RIGHT"/>
+    <eLiterals name="BOTTOM_FILL" value="3" literal="BOTTOM_FILL"/>
+    <eLiterals name="MIDDLE_LEFT" value="4" literal="MIDDLE_LEFT"/>
+    <eLiterals name="MIDDLE_CENTER" value="5" literal="MIDDLE_CENTER"/>
+    <eLiterals name="MIDDLE_RIGHT" value="6" literal="MIDDLE_RIGHT"/>
+    <eLiterals name="MIDDLE_FILL" value="7" literal="MIDDLE_FILL"/>
+    <eLiterals name="TOP_LEFT" value="8"/>
+    <eLiterals name="TOP_CENTER" value="9" literal="TOP_CENTER"/>
+    <eLiterals name="TOP_RIGHT" value="10" literal="TOP_RIGHT"/>
+    <eLiterals name="TOP_FILL" value="11" literal="TOP_FILL"/>
+    <eLiterals name="FILL_FILL" value="12" literal="FILL_FILL"/>
+    <eLiterals name="FILL_LEFT" value="13" literal="FILL_LEFT"/>
+    <eLiterals name="FILL_CENTER" value="14" literal="FILL_CENTER"/>
+    <eLiterals name="FILL_RIGHT" value="15" literal="FILL_RIGHT"/>
+    <eLiterals name="UNDEFINED" value="16" literal="UNDEFINED"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YAlignmentContainer" abstract="true"
+      interface="true">
+    <eOperations name="applyAlignment">
+      <eParameters name="child" eType="#//YEmbeddable"/>
+      <eParameters name="alignment" eType="#//YAlignment"/>
+    </eOperations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YFlatAlignment">
+    <eLiterals name="LEFT" literal="LEFT"/>
+    <eLiterals name="CENTER" value="1" literal="CENTER"/>
+    <eLiterals name="RIGHT" value="2" literal="RIGHT"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBeanSlot" eSuperTypes="#//YBindable #//YTaggable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueType">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueTypeQualifiedName"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="eventTopic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="redirectEvents" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YDetailBeanSlot" eSuperTypes="#//YBeanSlot">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="masterBeanSlot" eType="#//YBeanSlot"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEmbeddable" abstract="true" eSuperTypes="#//YElement #//YCssAble #//YVisibleable #//YAuthorizationable">
+    <eOperations name="getView" eType="#//YView"/>
+    <eOperations name="getParent" eType="#//YLayout"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="orphanDatatypes" upperBound="-1"
+        eType="ecore:EClass datatypes.ecore#//YDatatype" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="orphanDatadescriptions"
+        upperBound="-1" eType="ecore:EClass datatypes.ecore#//YDatadescription" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mementoEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mementoId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        defaultValueLiteral=""/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        volatile="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelI18nKey" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        volatile="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YDialog" eSuperTypes="#//YElement #//YValueBindable #//YCssAble">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="content" eType="#//YEmbeddable"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="modal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="draggable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="closable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass datatypes.ecore#//YDatadescription"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YCssAble" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cssClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cssID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YMarginable" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="margin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSpacingable" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="spacing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YUnit">
+    <eLiterals name="Pixel" literal="PIXEL"/>
+    <eLiterals name="Em" value="1" literal="EM"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YHeightable" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="100"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="heightUnit" eType="#//YUnit"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YWidthable" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="100"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="widthUnit" eType="#//YUnit"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EDataType" name="YURI" instanceClassName="java.net.URI"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YActivateable" abstract="true" interface="true"
+      eSuperTypes="#//YBindable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialActivated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="activated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        transient="true" defaultValueLiteral="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YVisibleable" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialVisible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="visible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        transient="true" defaultValueLiteral="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEditable" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialEditable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="editable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        transient="true" defaultValueLiteral="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEnable" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        transient="true" defaultValueLiteral="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YFocusable" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tabIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="-1"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YAction" eSuperTypes="#//YEmbeddable #//YEnable"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YBindable" abstract="true" interface="true"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YValueBindable" abstract="true" interface="true"
+      eSuperTypes="#//YBindable">
+    <eOperations name="createValueEndpoint" eType="#//YEmbeddableValueEndpoint"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueBindingEndpoint" eType="#//YEmbeddableValueEndpoint"
+        eOpposite="#//YEmbeddableValueEndpoint/element"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSelectionBindable" abstract="true"
+      interface="true" eSuperTypes="#//YBindable">
+    <eOperations name="createSelectionEndpoint" eType="#//YEmbeddableSelectionEndpoint"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="selectionBindingEndpoint"
+        eType="#//YEmbeddableSelectionEndpoint" eOpposite="#//YEmbeddableSelectionEndpoint/element"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YMultiSelectionBindable" abstract="true"
+      interface="true" eSuperTypes="#//YBindable">
+    <eOperations name="createMultiSelectionEndpoint" eType="#//YEmbeddableMultiSelectionEndpoint"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="multiSelectionBindingEndpoint"
+        eType="#//YEmbeddableMultiSelectionEndpoint" eOpposite="#//YEmbeddableMultiSelectionEndpoint/element"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YCollectionBindable" abstract="true"
+      interface="true" eSuperTypes="#//YBindable">
+    <eOperations name="createCollectionEndpoint" eType="#//YEmbeddableCollectionEndpoint"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="collectionBindingEndpoint"
+        eType="#//YEmbeddableCollectionEndpoint" eOpposite="#//YEmbeddableCollectionEndpoint/element"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YContextValueBindingEndpoint" eSuperTypes="binding.ecore#//YValueBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="urlString" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBeanSlotValueBindingEndpoint" eSuperTypes="binding.ecore#//YValueBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributePath" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="beanSlot" lowerBound="1"
+        eType="#//YBeanSlot"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBeanSlotListBindingEndpoint" eSuperTypes="binding.ecore#//YListBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributePath" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="beanSlot" lowerBound="1"
+        eType="#//YBeanSlot"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collectionType">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collectionTypeQualifiedName"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEmbeddableBindingEndpoint" abstract="true"
+      interface="true">
+    <eOperations name="getElement" eType="#//YBindable"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEmbeddableValueEndpoint" eSuperTypes="binding.ecore#//YValueBindingEndpoint #//YEmbeddableBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+        eType="#//YValueBindable" eOpposite="#//YValueBindable/valueBindingEndpoint"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEmbeddableSelectionEndpoint" eSuperTypes="binding.ecore#//YValueBindingEndpoint #//YEmbeddableBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+        eType="#//YSelectionBindable" eOpposite="#//YSelectionBindable/selectionBindingEndpoint"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributePath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEmbeddableMultiSelectionEndpoint" eSuperTypes="binding.ecore#//YListBindingEndpoint #//YEmbeddableBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+        eType="#//YMultiSelectionBindable" eOpposite="#//YMultiSelectionBindable/multiSelectionBindingEndpoint"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEmbeddableCollectionEndpoint" eSuperTypes="binding.ecore#//YListBindingEndpoint #//YEmbeddableBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+        eType="#//YCollectionBindable" eOpposite="#//YCollectionBindable/collectionBindingEndpoint"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YActivatedEndpoint" eSuperTypes="binding.ecore#//YValueBindingEndpoint #//YEmbeddableBindingEndpoint">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+        eType="#//YActivateable"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EDataType" name="YValueChangeListener" instanceClassName="org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YDtWrapper" eSuperTypes="datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YCommand" abstract="true" interface="true"
+      eSuperTypes="#//YElement">
+    <eOperations name="getView" eType="#//YView"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YCommandSet" eSuperTypes="#//YElement">
+    <eOperations name="getView" eType="#//YView"/>
+    <eOperations name="addCommand">
+      <eParameters name="command" lowerBound="1" eType="#//YCommand"/>
+    </eOperations>
+    <eOperations name="removeCommand">
+      <eParameters name="command" lowerBound="1" eType="#//YCommand"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="commands" upperBound="-1"
+        eType="#//YCommand" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="transientCommands" upperBound="-1"
+        eType="#//YCommand" transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YOpenDialogCommand" eSuperTypes="#//YCommand">
+    <eOperations name="getView" eType="#//YView"/>
+    <eOperations name="createTriggerDialogEndpoint" eType="ecore:EClass binding.ecore#//YECViewModelValueBindingEndpoint"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dialog" eType="#//YDialog"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YExposedAction" eSuperTypes="#//YElement #//YEnable">
+    <eOperations name="getView" eType="#//YView"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="icon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelI18nKey" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="externalClickTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="internalClickTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="executedNotificationTime"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="canceledNotificationTime"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="checkDirty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="externalCommandId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSendEventCommand" eSuperTypes="#//YCommand">
+    <eOperations name="getView" eType="#//YView"/>
+    <eOperations name="createTriggerEndpoint" eType="ecore:EClass binding.ecore#//YECViewModelValueBindingEndpoint"/>
+    <eOperations name="createMessageEndpoint" eType="ecore:EClass binding.ecore#//YECViewModelValueBindingEndpoint"/>
+    <eOperations name="createAutoTriggerEndpoint" eType="ecore:EClass binding.ecore#//YECViewModelValueBindingEndpoint"/>
+    <eOperations name="createEventTopicEndpoint" eType="ecore:EClass binding.ecore#//YECViewModelValueBindingEndpoint"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="eventTopic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="autoTrigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YKeyCode">
+    <eLiterals name="ENTER" value="13" literal="ENTER"/>
+    <eLiterals name="ESCAPE" value="27" literal="ESCAPE"/>
+    <eLiterals name="PAGE_UP" value="33" literal="PAGE_UP"/>
+    <eLiterals name="PAGE_DOWN" value="34" literal="PAGE_DOWN"/>
+    <eLiterals name="TAB" value="9" literal="TAB"/>
+    <eLiterals name="ARROW_LEFT" value="37" literal="ARROW_LEFT"/>
+    <eLiterals name="ARROW_UP" value="38" literal="ARROW_UP"/>
+    <eLiterals name="ARROW_RIGHT" value="39" literal="ARROW_RIGHT"/>
+    <eLiterals name="ARROW_DOWN" value="40" literal="ARROW_DOWN"/>
+    <eLiterals name="BACKSPACE" value="8" literal="BACKSPACE"/>
+    <eLiterals name="DELETE" value="46" literal="DELETE"/>
+    <eLiterals name="INSERT" value="45" literal="INSERT"/>
+    <eLiterals name="END" value="35" literal="END"/>
+    <eLiterals name="HOME" value="36" literal="HOME"/>
+    <eLiterals name="F1" value="112" literal="F1"/>
+    <eLiterals name="F2" value="113" literal="F2"/>
+    <eLiterals name="F3" value="114" literal="F3"/>
+    <eLiterals name="F4" value="115" literal="F4"/>
+    <eLiterals name="F5" value="116" literal="F5"/>
+    <eLiterals name="F6" value="117" literal="F6"/>
+    <eLiterals name="F7" value="118" literal="F7"/>
+    <eLiterals name="F8" value="119" literal="F8"/>
+    <eLiterals name="F9" value="120" literal="F9"/>
+    <eLiterals name="F10" value="121" literal="F10"/>
+    <eLiterals name="F11" value="122" literal="F11"/>
+    <eLiterals name="F12" value="123" literal="F12"/>
+    <eLiterals name="A" value="65" literal="A"/>
+    <eLiterals name="B" value="66" literal="B"/>
+    <eLiterals name="C" value="67" literal="C"/>
+    <eLiterals name="D" value="68" literal="D"/>
+    <eLiterals name="E" value="69" literal="E"/>
+    <eLiterals name="F" value="70" literal="F"/>
+    <eLiterals name="G" value="71" literal="G"/>
+    <eLiterals name="H" value="72" literal="H"/>
+    <eLiterals name="I" value="73" literal="I"/>
+    <eLiterals name="J" value="74" literal="J"/>
+    <eLiterals name="K" value="75" literal="K"/>
+    <eLiterals name="L" value="76" literal="L"/>
+    <eLiterals name="M" value="77" literal="M"/>
+    <eLiterals name="N" value="78" literal="N"/>
+    <eLiterals name="O" value="79" literal="O"/>
+    <eLiterals name="P" value="80" literal="P"/>
+    <eLiterals name="Q" value="81" literal="Q"/>
+    <eLiterals name="R" value="82" literal="R"/>
+    <eLiterals name="S" value="83" literal="S"/>
+    <eLiterals name="T" value="84" literal="T"/>
+    <eLiterals name="U" value="85" literal="U"/>
+    <eLiterals name="V" value="86" literal="V"/>
+    <eLiterals name="W" value="87" literal="W"/>
+    <eLiterals name="X" value="88" literal="X"/>
+    <eLiterals name="Y" value="89" literal="Y"/>
+    <eLiterals name="Z" value="90" literal="Z"/>
+    <eLiterals name="NUM0" value="48" literal="NUM0"/>
+    <eLiterals name="NUM1" value="49" literal="NUM1"/>
+    <eLiterals name="NUM2" value="50" literal="NUM2"/>
+    <eLiterals name="NUM3" value="51" literal="NUM3"/>
+    <eLiterals name="NUM4" value="52" literal="NUM4"/>
+    <eLiterals name="NUM5" value="53" literal="NUM5"/>
+    <eLiterals name="NUM6" value="54" literal="NUM6"/>
+    <eLiterals name="NUM7" value="55" literal="NUM7"/>
+    <eLiterals name="NUM8" value="56" literal="NUM8"/>
+    <eLiterals name="NUM9" value="57" literal="NUM9"/>
+    <eLiterals name="SPACEBAR" value="32" literal="SPACEBAR"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YModifierKey">
+    <eLiterals name="SHIFT" value="16" literal="SHIFT"/>
+    <eLiterals name="CTRL" value="17" literal="CTRL"/>
+    <eLiterals name="ALT" value="18" literal="ALT"/>
+    <eLiterals name="META" value="91" literal="META"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YKeyStrokeDefinition" eSuperTypes="#//YElement">
+    <eOperations name="getView" eType="#//YView"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="keyCode" eType="#//YKeyCode"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="modifierKeys" upperBound="-1"
+        eType="#//YModifierKey"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YConverter" abstract="true" interface="true"
+      eSuperTypes="#//YElement"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YDelegateConverter" eSuperTypes="#//YConverter">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="converterId" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YOrientation">
+    <eLiterals name="HORIZONTAL" literal="HORIZONTAL"/>
+    <eLiterals name="VERTICAL" value="1" literal="VERTICAL"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YMemento" abstract="true" interface="true"
+      eSuperTypes="#//YElement"/>
+  <eClassifiers xsi:type="ecore:EEnum" name="YCompare">
+    <eLiterals name="Equal" literal="EQ"/>
+    <eLiterals name="GreaterThan" value="1" literal="GT"/>
+    <eLiterals name="GreaterEqual" value="2" literal="GE"/>
+    <eLiterals name="LowerThan" value="3" literal="LT"/>
+    <eLiterals name="LowerEqual" value="4" literal="LE"/>
+    <eLiterals name="NotEqual" value="5" literal="NEQ"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YAuthorizationable" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="authorizationGroup" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="authorizationId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YTaggable" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tags" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eSubpackages name="authorization" nsURI="http://osbp.eclipse.org/ecview/v1/core/view/authorization"
+      nsPrefix="authorization">
+    <eClassifiers xsi:type="ecore:EClass" name="YAuthorizationStore">
+      <eStructuralFeatures xsi:type="ecore:EReference" name="authorizations" upperBound="-1"
+          eType="#//authorization/YAuthorization" containment="true"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="YAuthorization" abstract="true" interface="true"/>
+    <eClassifiers xsi:type="ecore:EClass" name="YFieldAuthorization" eSuperTypes="#//authorization/YAuthorization">
+      <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//YEmbeddable"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="roles" upperBound="-1"
+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="actions" upperBound="-1"
+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+  </eSubpackages>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.ecview.core.common.model/model/core.genmodel b/org.eclipse.osbp.ecview.core.common.model/model/core.genmodel
new file mode 100644
index 0000000..63ad59f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/model/core.genmodel
@@ -0,0 +1,568 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.osbp.ecview.core.common.model/src"
+    modelPluginID="org.eclipse.osbp.ecview.core.common.model" modelName="ECViewCore"
+    rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore"
+    containmentProxies="true" complianceLevel="6.0" copyrightFields="false" importOrganizing="true">
+  <foreignModel>binding.ecore</foreignModel>
+  <genPackages prefix="Binding" basePackage="org.eclipse.osbp.ecview.core.common.model"
+      disposableProviderFactory="true" extensibleProviderFactory="true" childCreationExtenders="true"
+      ecorePackage="binding.ecore#/">
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="binding.ecore#//YBindingUpdateStrategy">
+      <genEnumLiterals ecoreEnumLiteral="binding.ecore#//YBindingUpdateStrategy/UPDATE"/>
+      <genEnumLiterals ecoreEnumLiteral="binding.ecore#//YBindingUpdateStrategy/ON_REQUEST"/>
+      <genEnumLiterals ecoreEnumLiteral="binding.ecore#//YBindingUpdateStrategy/NEVER"/>
+    </genEnums>
+    <genClasses ecoreClass="binding.ecore#//YBindingSet">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference binding.ecore#//YBindingSet/bindings"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference binding.ecore#//YBindingSet/transientBindings"/>
+      <genOperations ecoreOperation="binding.ecore#//YBindingSet/addBinding">
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding/targetValue"/>
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding/modelValue"/>
+      </genOperations>
+      <genOperations ecoreOperation="binding.ecore#//YBindingSet/addBinding.1">
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.1/targetValue"/>
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.1/modelValue"/>
+      </genOperations>
+      <genOperations ecoreOperation="binding.ecore#//YBindingSet/addBinding.2">
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.2/targetValue"/>
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.2/modelValue"/>
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.2/targetToModelStrategy"/>
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.2/modelToTargetStrategy"/>
+      </genOperations>
+      <genOperations ecoreOperation="binding.ecore#//YBindingSet/addBinding.3">
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.3/targetValue"/>
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.3/modelValue"/>
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.3/targetToModelStrategy"/>
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.3/modelToTargetStrategy"/>
+      </genOperations>
+      <genOperations ecoreOperation="binding.ecore#//YBindingSet/getView"/>
+      <genOperations ecoreOperation="binding.ecore#//YBindingSet/addBinding.4">
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/addBinding.4/binding"/>
+      </genOperations>
+      <genOperations ecoreOperation="binding.ecore#//YBindingSet/removeBinding">
+        <genParameters ecoreParameter="binding.ecore#//YBindingSet/removeBinding/binding"/>
+      </genOperations>
+    </genClasses>
+    <genClasses image="false" ecoreClass="binding.ecore#//YBindingEndpoint">
+      <genOperations ecoreOperation="binding.ecore#//YBindingEndpoint/getBinding"/>
+      <genOperations ecoreOperation="binding.ecore#//YBindingEndpoint/isBindsElement">
+        <genParameters ecoreParameter="binding.ecore#//YBindingEndpoint/isBindsElement/element"/>
+      </genOperations>
+    </genClasses>
+    <genClasses image="false" ecoreClass="binding.ecore#//YValueBindingEndpoint">
+      <genOperations ecoreOperation="binding.ecore#//YValueBindingEndpoint/createDetailValueEndpoint"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YBeanValueBindingEndpoint">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YBeanValueBindingEndpoint/bean"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YBeanValueBindingEndpoint/propertyPath"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YDetailValueBindingEndpoint">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference binding.ecore#//YDetailValueBindingEndpoint/masterObservable"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference binding.ecore#//YDetailValueBindingEndpoint/features"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YDetailValueBindingEndpoint/propertyPath"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YDetailValueBindingEndpoint/type"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="binding.ecore#//YListBindingEndpoint"/>
+    <genClasses image="false" ecoreClass="binding.ecore#//YBinding">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YBinding/modelToTargetStrategy"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YBinding/targetToModelStrategy"/>
+      <genOperations ecoreOperation="binding.ecore#//YBinding/getBindingSet"/>
+      <genOperations ecoreOperation="binding.ecore#//YBinding/isBindsElement">
+        <genParameters ecoreParameter="binding.ecore#//YBinding/isBindsElement/element"/>
+      </genOperations>
+      <genOperations ecoreOperation="binding.ecore#//YBinding/getTargetEndpoint"/>
+      <genOperations ecoreOperation="binding.ecore#//YBinding/getModelEndpoint"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YValueBinding">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference binding.ecore#//YValueBinding/targetEndpoint"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference binding.ecore#//YValueBinding/modelEndpoint"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YListBinding">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference binding.ecore#//YListBinding/targetEndpoint"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference binding.ecore#//YListBinding/modelEndpoint"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YEnumListBindingEndpoint">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YEnumListBindingEndpoint/enum"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YECViewModelValueBindingEndpoint">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference binding.ecore#//YECViewModelValueBindingEndpoint/element"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference binding.ecore#//YECViewModelValueBindingEndpoint/features"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YECViewModelValueBindingEndpoint/propertyPath"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YECViewModelValueBindingEndpoint/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YECViewModelValueBindingEndpoint/typeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YECViewModelValueBindingEndpoint/emfNsURI"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YECViewModelListBindingEndpoint">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference binding.ecore#//YECViewModelListBindingEndpoint/element"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference binding.ecore#//YECViewModelListBindingEndpoint/features"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YECViewModelListBindingEndpoint/propertyPath"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YECViewModelListBindingEndpoint/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YECViewModelListBindingEndpoint/typeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YECViewModelListBindingEndpoint/emfNsURI"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YVisibilityProcessorValueBindingEndpoint">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YVisibilityProcessorValueBindingEndpoint/processorInstance"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute binding.ecore#//YVisibilityProcessorValueBindingEndpoint/property"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YNoOpValueBindingEndpoint">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference binding.ecore#//YNoOpValueBindingEndpoint/element"/>
+    </genClasses>
+    <genClasses ecoreClass="binding.ecore#//YNoOpListBindingEndpoint">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference binding.ecore#//YNoOpListBindingEndpoint/element"/>
+    </genClasses>
+  </genPackages>
+  <genPackages prefix="CoreModel" basePackage="org.eclipse.osbp.ecview.core.common.model"
+      disposableProviderFactory="true" extensibleProviderFactory="true" childCreationExtenders="true"
+      ecorePackage="core.ecore#/">
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//YDeviceType">
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YDeviceType/IDE"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YDeviceType/MOBILE"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//YAlignment">
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/BOTTOM_LEFT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/BOTTOM_CENTER"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/BOTTOM_RIGHT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/BOTTOM_FILL"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/MIDDLE_LEFT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/MIDDLE_CENTER"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/MIDDLE_RIGHT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/MIDDLE_FILL"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/TOP_LEFT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/TOP_CENTER"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/TOP_RIGHT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/TOP_FILL"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/FILL_FILL"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/FILL_LEFT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/FILL_CENTER"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/FILL_RIGHT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YAlignment/UNDEFINED"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//YFlatAlignment">
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YFlatAlignment/LEFT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YFlatAlignment/CENTER"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YFlatAlignment/RIGHT"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//YUnit">
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YUnit/Pixel"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YUnit/Em"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//YKeyCode">
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/ENTER"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/ESCAPE"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/PAGE_UP"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/PAGE_DOWN"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/TAB"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/ARROW_LEFT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/ARROW_UP"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/ARROW_RIGHT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/ARROW_DOWN"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/BACKSPACE"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/DELETE"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/INSERT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/END"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/HOME"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F1"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F2"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F3"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F4"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F5"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F6"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F7"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F8"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F9"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F10"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F11"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F12"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/A"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/B"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/C"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/D"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/E"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/F"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/G"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/H"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/I"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/J"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/K"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/L"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/M"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/N"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/O"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/P"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/Q"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/R"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/S"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/T"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/U"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/V"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/W"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/X"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/Y"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/Z"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM0"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM1"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM2"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM3"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM4"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM5"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM6"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM7"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM8"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/NUM9"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YKeyCode/SPACEBAR"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//YModifierKey">
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YModifierKey/SHIFT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YModifierKey/CTRL"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YModifierKey/ALT"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YModifierKey/META"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//YOrientation">
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YOrientation/HORIZONTAL"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YOrientation/VERTICAL"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//YCompare">
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YCompare/Equal"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YCompare/GreaterThan"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YCompare/GreaterEqual"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YCompare/LowerThan"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YCompare/LowerEqual"/>
+      <genEnumLiterals ecoreEnumLiteral="core.ecore#//YCompare/NotEqual"/>
+    </genEnums>
+    <genDataTypes ecoreDataType="core.ecore#//YURI"/>
+    <genDataTypes ecoreDataType="core.ecore#//YValueChangeListener"/>
+    <genClasses image="false" ecoreClass="core.ecore#//YElement">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YElement/id"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YElement/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YElement/tags"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YElement/properties"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YStringToStringMap">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YStringToStringMap/key"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YStringToStringMap/value"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YLayout">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YLayout/elements"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YHelperLayoutProvider">
+      <genOperations ecoreOperation="core.ecore#//YHelperLayoutProvider/getHelperLayout"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YHelperLayout">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YHelperLayout/virtualElements"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YField">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YField/validators"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YField/internalValidators"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YField/converter"/>
+      <genOperations ecoreOperation="core.ecore#//YField/addValueChangeListener">
+        <genParameters ecoreParameter="core.ecore#//YField/addValueChangeListener/listener"/>
+      </genOperations>
+      <genOperations ecoreOperation="core.ecore#//YField/removeValueChangeListener">
+        <genParameters ecoreParameter="core.ecore#//YField/removeValueChangeListener/listener"/>
+      </genOperations>
+      <genOperations ecoreOperation="core.ecore#//YField/removeAllValueChangListeners"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YView">
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference core.ecore#//YView/root"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YView/viewName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YView/version"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YView/content"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YView/bindingSet"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YView/beanSlots"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YView/commandSet"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YView/dialogs"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YView/deviceType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YView/contentAlignment"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YView/visibilityProcessors"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YView/transientVisibilityProcessors"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YView/exposedActions"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YView/sharedStateGroup"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YView/category"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YView/initialFocus"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YView/currentFocus"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YView/disabledElements"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YView/authorizationStore"/>
+      <genOperations ecoreOperation="core.ecore#//YView/getOrCreateBindingSet"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YViewSet">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YViewSet/views"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YViewSet/beanSlots"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YAlignmentContainer">
+      <genOperations ecoreOperation="core.ecore#//YAlignmentContainer/applyAlignment">
+        <genParameters ecoreParameter="core.ecore#//YAlignmentContainer/applyAlignment/child"/>
+        <genParameters ecoreParameter="core.ecore#//YAlignmentContainer/applyAlignment/alignment"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YBeanSlot">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YBeanSlot/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YBeanSlot/valueType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YBeanSlot/valueTypeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YBeanSlot/eventTopic"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YBeanSlot/redirectEvents"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YEmbeddable">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YEmbeddable/orphanDatatypes"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YEmbeddable/orphanDatadescriptions"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YEmbeddable/mementoEnabled"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YEmbeddable/mementoId"/>
+      <genOperations ecoreOperation="core.ecore#//YEmbeddable/getView"/>
+      <genOperations ecoreOperation="core.ecore#//YEmbeddable/getParent"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YDialog">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YDialog/content"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YDialog/modal"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YDialog/resizeable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YDialog/draggable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YDialog/closable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YDialog/value"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YDialog/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YDialog/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YDialog/typeQualifiedName"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YDialog/datadescription"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YCssAble">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YCssAble/cssClass"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YCssAble/cssID"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YMarginable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YMarginable/margin"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YSpacingable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YSpacingable/spacing"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YHeightable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YHeightable/height"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YHeightable/heightUnit"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YWidthable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YWidthable/width"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YWidthable/widthUnit"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YActivateable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YActivateable/initialActivated"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YActivateable/activated"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YVisibleable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YVisibleable/initialVisible"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YVisibleable/visible"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YEditable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YEditable/initialEditable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YEditable/editable"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YEnable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YEnable/initialEnabled"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YEnable/enabled"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YFocusable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YFocusable/tabIndex"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YAction"/>
+    <genClasses image="false" ecoreClass="core.ecore#//YBindable"/>
+    <genClasses image="false" ecoreClass="core.ecore#//YValueBindable">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YValueBindable/valueBindingEndpoint"/>
+      <genOperations ecoreOperation="core.ecore#//YValueBindable/createValueEndpoint"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YSelectionBindable">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YSelectionBindable/selectionBindingEndpoint"/>
+      <genOperations ecoreOperation="core.ecore#//YSelectionBindable/createSelectionEndpoint"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YMultiSelectionBindable">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YMultiSelectionBindable/multiSelectionBindingEndpoint"/>
+      <genOperations ecoreOperation="core.ecore#//YMultiSelectionBindable/createMultiSelectionEndpoint"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YCollectionBindable">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YCollectionBindable/collectionBindingEndpoint"/>
+      <genOperations ecoreOperation="core.ecore#//YCollectionBindable/createCollectionEndpoint"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YContextValueBindingEndpoint">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YContextValueBindingEndpoint/urlString"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YBeanSlotValueBindingEndpoint">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YBeanSlotValueBindingEndpoint/attributePath"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YBeanSlotValueBindingEndpoint/beanSlot"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YBeanSlotListBindingEndpoint">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YBeanSlotListBindingEndpoint/attributePath"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YBeanSlotListBindingEndpoint/beanSlot"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YBeanSlotListBindingEndpoint/collectionType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YBeanSlotListBindingEndpoint/collectionTypeQualifiedName"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YEmbeddableBindingEndpoint">
+      <genOperations ecoreOperation="core.ecore#//YEmbeddableBindingEndpoint/getElement"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YEmbeddableValueEndpoint">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YEmbeddableValueEndpoint/element"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YEmbeddableSelectionEndpoint">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YEmbeddableSelectionEndpoint/element"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YEmbeddableSelectionEndpoint/attributePath"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YEmbeddableMultiSelectionEndpoint">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YEmbeddableMultiSelectionEndpoint/element"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YEmbeddableCollectionEndpoint">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YEmbeddableCollectionEndpoint/element"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YActivatedEndpoint">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YActivatedEndpoint/element"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YDtWrapper"/>
+    <genClasses image="false" ecoreClass="core.ecore#//YCommand">
+      <genOperations ecoreOperation="core.ecore#//YCommand/getView"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YCommandSet">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//YCommandSet/commands"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YCommandSet/transientCommands"/>
+      <genOperations ecoreOperation="core.ecore#//YCommandSet/getView"/>
+      <genOperations ecoreOperation="core.ecore#//YCommandSet/addCommand">
+        <genParameters ecoreParameter="core.ecore#//YCommandSet/addCommand/command"/>
+      </genOperations>
+      <genOperations ecoreOperation="core.ecore#//YCommandSet/removeCommand">
+        <genParameters ecoreParameter="core.ecore#//YCommandSet/removeCommand/command"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YOpenDialogCommand">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//YOpenDialogCommand/dialog"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YOpenDialogCommand/trigger"/>
+      <genOperations ecoreOperation="core.ecore#//YOpenDialogCommand/getView"/>
+      <genOperations ecoreOperation="core.ecore#//YOpenDialogCommand/createTriggerDialogEndpoint"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YExposedAction">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YExposedAction/icon"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YExposedAction/label"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YExposedAction/labelI18nKey"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YExposedAction/externalClickTime"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YExposedAction/internalClickTime"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YExposedAction/executedNotificationTime"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YExposedAction/canceledNotificationTime"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YExposedAction/checkDirty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YExposedAction/externalCommandId"/>
+      <genOperations ecoreOperation="core.ecore#//YExposedAction/getView"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YSendEventCommand">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YSendEventCommand/eventTopic"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YSendEventCommand/message"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YSendEventCommand/trigger"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YSendEventCommand/autoTrigger"/>
+      <genOperations ecoreOperation="core.ecore#//YSendEventCommand/getView"/>
+      <genOperations ecoreOperation="core.ecore#//YSendEventCommand/createTriggerEndpoint"/>
+      <genOperations ecoreOperation="core.ecore#//YSendEventCommand/createMessageEndpoint"/>
+      <genOperations ecoreOperation="core.ecore#//YSendEventCommand/createAutoTriggerEndpoint"/>
+      <genOperations ecoreOperation="core.ecore#//YSendEventCommand/createEventTopicEndpoint"/>
+    </genClasses>
+    <genClasses ecoreClass="core.ecore#//YKeyStrokeDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YKeyStrokeDefinition/keyCode"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YKeyStrokeDefinition/modifierKeys"/>
+      <genOperations ecoreOperation="core.ecore#//YKeyStrokeDefinition/getView"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YConverter"/>
+    <genClasses ecoreClass="core.ecore#//YDelegateConverter">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YDelegateConverter/converterId"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="core.ecore#//YMemento"/>
+    <genClasses image="false" ecoreClass="core.ecore#//YAuthorizationable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YAuthorizationable/authorizationGroup"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//YAuthorizationable/authorizationId"/>
+    </genClasses>
+    <nestedGenPackages prefix="Authorization" disposableProviderFactory="true" ecorePackage="core.ecore#//authorization">
+      <genClasses ecoreClass="core.ecore#//authorization/YAuthorizationStore">
+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//authorization/YAuthorizationStore/authorizations"/>
+      </genClasses>
+      <genClasses image="false" ecoreClass="core.ecore#//authorization/YAuthorization"/>
+      <genClasses ecoreClass="core.ecore#//authorization/YFieldAuthorization">
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference core.ecore#//authorization/YFieldAuthorization/target"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//authorization/YFieldAuthorization/roles"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//authorization/YFieldAuthorization/actions"/>
+      </genClasses>
+    </nestedGenPackages>
+  </genPackages>
+  <genPackages prefix="Validation" basePackage="org.eclipse.osbp.ecview.core.common.model"
+      disposableProviderFactory="true" extensibleProviderFactory="true" childCreationExtenders="true"
+      ecorePackage="validation.ecore#/">
+    <genClasses image="false" ecoreClass="validation.ecore#//YValidator">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YValidator/type"/>
+    </genClasses>
+    <genClasses ecoreClass="validation.ecore#//YMinLengthValidator"/>
+    <genClasses ecoreClass="validation.ecore#//YMaxLengthValidator"/>
+    <genClasses ecoreClass="validation.ecore#//YRegexpValidator"/>
+    <genClasses ecoreClass="validation.ecore#//YClassDelegateValidator"/>
+    <genClasses ecoreClass="validation.ecore#//YBeanValidationValidator"/>
+    <genClasses image="false" ecoreClass="validation.ecore#//YValidationConfig">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YValidationConfig/errorCode"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YValidationConfig/defaultErrorMessage"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="validation.ecore#//YMinLengthValidationConfig">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YMinLengthValidationConfig/minLength"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="validation.ecore#//YMaxLengthValidationConfig">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YMaxLengthValidationConfig/maxLength"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="validation.ecore#//YRegexpValidationConfig">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YRegexpValidationConfig/regExpression"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="validation.ecore#//YClassDelegateValidationConfig">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YClassDelegateValidationConfig/className"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="validation.ecore#//YBeanValidationValidatorConfig">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YBeanValidationValidatorConfig/bvalClass"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YBeanValidationValidatorConfig/bvalClassFullyQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute validation.ecore#//YBeanValidationValidatorConfig/bvalProperty"/>
+    </genClasses>
+  </genPackages>
+  <genPackages prefix="Datatypes" basePackage="org.eclipse.osbp.ecview.core.common.model"
+      disposableProviderFactory="true" extensibleProviderFactory="true" childCreationExtenders="true"
+      ecorePackage="datatypes.ecore#/">
+    <genClasses image="false" ecoreClass="datatypes.ecore#//YDtBase">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute datatypes.ecore#//YDtBase/description"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="datatypes.ecore#//YDatatype">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference datatypes.ecore#//YDatatype/validators"/>
+    </genClasses>
+    <genClasses ecoreClass="datatypes.ecore#//YDatadescription">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute datatypes.ecore#//YDatadescription/label"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute datatypes.ecore#//YDatadescription/labelI18nKey"/>
+    </genClasses>
+  </genPackages>
+  <genPackages prefix="Visibility" basePackage="org.eclipse.osbp.ecview.core.common.model"
+      disposableProviderFactory="true" extensibleProviderFactory="true" childCreationExtenders="true"
+      ecorePackage="visibility.ecore#/">
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="visibility.ecore#//YColor">
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/UNDEFINED"/>
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/GREEN"/>
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/BLUE"/>
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/YELLOW"/>
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/RED"/>
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/BLACK"/>
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/WHITE"/>
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/GRAY"/>
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/LIGHT_GRAY"/>
+      <genEnumLiterals ecoreEnumLiteral="visibility.ecore#//YColor/DARK_GRAY"/>
+    </genEnums>
+    <genClasses image="false" ecoreClass="visibility.ecore#//YVisibilityProcessor">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference visibility.ecore#//YVisibilityProcessor/dataUsed"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference visibility.ecore#//YVisibilityProcessor/triggersOn"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProcessor/delegate"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProcessor/delegateQualifiedName"/>
+    </genClasses>
+    <genClasses ecoreClass="visibility.ecore#//YVisibilityProperties">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/visible"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/editable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/enabled"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/border"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/bold"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/italic"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/strikethrough"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/underline"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/backgroundColor"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/foregroundColor"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/backgroundColorCode"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/foregroundColorCode"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/cssClass"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute visibility.ecore#//YVisibilityProperties/cssId"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore b/org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore
new file mode 100644
index 0000000..22ee776
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="datatypes" nsURI="http://osbp.eclipse.org/ecview/v1/core/datatypes"
+    nsPrefix="datatypes">
+  <eClassifiers xsi:type="ecore:EClass" name="YDtBase" abstract="true" interface="true"
+      eSuperTypes="core.ecore#//YElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YDatatype" abstract="true" interface="true"
+      eSuperTypes="#//YDtBase">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="validators" upperBound="-1"
+        eType="ecore:EClass validation.ecore#//YValidator"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YDatadescription" eSuperTypes="#//YDtBase">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelI18nKey" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.ecview.core.common.model/model/validation.ecore b/org.eclipse.osbp.ecview.core.common.model/model/validation.ecore
new file mode 100644
index 0000000..cf4ec73
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/model/validation.ecore
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="validation" nsURI="http://osbp.eclipse.org/ecview/v1/core/validation"
+    nsPrefix="validation">
+  <eClassifiers xsi:type="ecore:EClass" name="YValidator" abstract="true" eSuperTypes="core.ecore#//YElement core.ecore#//YBindable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YMinLengthValidator" eSuperTypes="#//YValidator #//YMinLengthValidationConfig"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YMaxLengthValidator" eSuperTypes="#//YValidator #//YMaxLengthValidationConfig"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YRegexpValidator" eSuperTypes="#//YValidator #//YRegexpValidationConfig"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YClassDelegateValidator" eSuperTypes="#//YValidator #//YClassDelegateValidationConfig"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YBeanValidationValidator" eSuperTypes="#//YValidator #//YBeanValidationValidatorConfig"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YValidationConfig" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="errorCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultErrorMessage" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YMinLengthValidationConfig" abstract="true"
+      interface="true" eSuperTypes="#//YValidationConfig">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minLength" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YMaxLengthValidationConfig" abstract="true"
+      interface="true" eSuperTypes="#//YValidationConfig">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxLength" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YRegexpValidationConfig" abstract="true"
+      interface="true" eSuperTypes="#//YValidationConfig">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="regExpression" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YClassDelegateValidationConfig" abstract="true"
+      interface="true" eSuperTypes="#//YValidationConfig">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBeanValidationValidatorConfig" abstract="true"
+      interface="true" eSuperTypes="#//YValidationConfig">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="bvalClass">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="bvalClassFullyQualifiedName"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="bvalProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.ecview.core.common.model/model/visibility.ecore b/org.eclipse.osbp.ecview.core.common.model/model/visibility.ecore
new file mode 100644
index 0000000..d9addda
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/model/visibility.ecore
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="visibility" nsURI="http://osbp.eclipse.org/ecview/v1/core/visibility"
+    nsPrefix="visibility">
+  <eClassifiers xsi:type="ecore:EClass" name="YVisibilityProcessor" eSuperTypes="core.ecore#//YElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dataUsed" upperBound="-1"
+        eType="ecore:EClass binding.ecore#//YBinding" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="triggersOn" upperBound="-1"
+        eType="ecore:EClass binding.ecore#//YBinding" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="delegate">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="delegateQualifiedName"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YVisibilityProperties" eSuperTypes="core.ecore#//YElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="visible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="editable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="border" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="bold" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="italic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="strikethrough" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="underline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="#//YColor"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="#//YColor"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColorCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColorCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cssClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cssId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YColor">
+    <eLiterals name="UNDEFINED" literal="UNDEFINED"/>
+    <eLiterals name="GREEN" value="1" literal="green"/>
+    <eLiterals name="BLUE" value="2" literal="blue"/>
+    <eLiterals name="YELLOW" value="3" literal="yellow"/>
+    <eLiterals name="RED" value="4" literal="red"/>
+    <eLiterals name="BLACK" value="5" literal="black"/>
+    <eLiterals name="WHITE" value="6" literal="white"/>
+    <eLiterals name="GRAY" value="7" literal="gray"/>
+    <eLiterals name="LIGHT_GRAY" value="8" literal="light-gray"/>
+    <eLiterals name="DARK_GRAY" value="9" literal="dark-gray"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.ecview.core.common.model/plugin.properties b/org.eclipse.osbp.ecview.core.common.model/plugin.properties
new file mode 100644
index 0000000..ad12832
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = Core ECView Model
+providerName = 
diff --git a/org.eclipse.osbp.ecview.core.common.model/plugin.xml b/org.eclipse.osbp.ecview.core.common.model/plugin.xml
new file mode 100644
index 0000000..588bf78
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/plugin.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http://eclipse.org/emf/ecp/ecview/core/view"
+            class="org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage"
+            genModel="model/core.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated core -->
+      <package
+            uri="http://osbp.eclipse.org/ecview/v1/core/view/authorization"
+            class="org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage"
+            genModel="model/core.genmodel"/>
+   </extension>
+
+  <extension point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http://eclipse.org/emf/ecp/ecview/core/datatypes"
+            class="org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage"
+            genModel="model/core.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated core -->
+      <package
+            uri="http://osbp.eclipse.org/ecview/v1/core/visibility"
+            class="org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage"
+            genModel="model/core.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated binding -->
+      <package
+            uri="http://eclipse.org/emf/ecp/ecview/core/binding"
+            class="org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage"
+            genModel="model/core.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated validation -->
+      <package
+            uri="http://eclipse.org/emf/ecp/ecview/core/validation"
+            class="org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage"
+            genModel="model/core.genmodel"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.ecview.core.common.model/pom.xml b/org.eclipse.osbp.ecview.core.common.model/pom.xml
new file mode 100644
index 0000000..8aa4a1b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.common.model</artifactId>
+  <description>Contains the core ECView-Model</description>
+  <packaging>eclipse-plugin</packaging>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	 <version>0.9.0-SNAPSHOT</version>
+  </parent>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/BindingFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/BindingFactory.java
new file mode 100644
index 0000000..d38f5a1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/BindingFactory.java
@@ -0,0 +1,140 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage
+ * @generated
+ */
+public interface BindingFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	BindingFactory eINSTANCE = org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>YBinding Set</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBinding Set</em>'.
+	 * @generated
+	 */
+	YBindingSet createYBindingSet();
+
+	/**
+	 * Returns a new object of class '<em>YBean Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBean Value Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YBeanValueBindingEndpoint createYBeanValueBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YValue Binding</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YValue Binding</em>'.
+	 * @generated
+	 */
+	YValueBinding createYValueBinding();
+
+	/**
+	 * Returns a new object of class '<em>YList Binding</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YList Binding</em>'.
+	 * @generated
+	 */
+	YListBinding createYListBinding();
+
+	/**
+	 * Returns a new object of class '<em>YEnum List Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEnum List Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YEnumListBindingEndpoint createYEnumListBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YEC View Model Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEC View Model Value Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YECViewModelValueBindingEndpoint createYECViewModelValueBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YEC View Model List Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEC View Model List Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YECViewModelListBindingEndpoint createYECViewModelListBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YVisibility Processor Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YVisibility Processor Value Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YVisibilityProcessorValueBindingEndpoint createYVisibilityProcessorValueBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YNo Op Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YNo Op Value Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YNoOpValueBindingEndpoint createYNoOpValueBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YNo Op List Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YNo Op List Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YNoOpListBindingEndpoint createYNoOpListBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YDetail Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDetail Value Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YDetailValueBindingEndpoint createYDetailValueBindingEndpoint();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	BindingPackage getBindingPackage();
+
+} //BindingFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/BindingPackage.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/BindingPackage.java
new file mode 100644
index 0000000..924466e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/BindingPackage.java
@@ -0,0 +1,2152 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface BindingPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "binding";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/ecview/v1/core/binding";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "binding";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	BindingPackage eINSTANCE = org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl <em>YBinding Set</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBindingSet()
+	 * @generated
+	 */
+	int YBINDING_SET = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_SET__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_SET__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_SET__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_SET__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Bindings</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_SET__BINDINGS = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Transient Bindings</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_SET__TRANSIENT_BINDINGS = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YBinding Set</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_SET_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl <em>YBinding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBindingEndpoint()
+	 * @generated
+	 */
+	int YBINDING_ENDPOINT = 1;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_ENDPOINT__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_ENDPOINT__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_ENDPOINT__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_ENDPOINT__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The number of structural features of the '<em>YBinding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_ENDPOINT_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingEndpointImpl <em>YValue Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYValueBindingEndpoint()
+	 * @generated
+	 */
+	int YVALUE_BINDING_ENDPOINT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING_ENDPOINT__TAGS = YBINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING_ENDPOINT__ID = YBINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING_ENDPOINT__NAME = YBINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING_ENDPOINT__PROPERTIES = YBINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The number of structural features of the '<em>YValue Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING_ENDPOINT_FEATURE_COUNT = YBINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBeanValueBindingEndpointImpl <em>YBean Value Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBeanValueBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBeanValueBindingEndpoint()
+	 * @generated
+	 */
+	int YBEAN_VALUE_BINDING_ENDPOINT = 3;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALUE_BINDING_ENDPOINT__TAGS = YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALUE_BINDING_ENDPOINT__ID = YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALUE_BINDING_ENDPOINT__NAME = YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALUE_BINDING_ENDPOINT__PROPERTIES = YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Bean</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALUE_BINDING_ENDPOINT__BEAN = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YBean Value Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALUE_BINDING_ENDPOINT_FEATURE_COUNT = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingEndpointImpl <em>YList Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYListBindingEndpoint()
+	 * @generated
+	 */
+	int YLIST_BINDING_ENDPOINT = 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl <em>YBinding</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBinding()
+	 * @generated
+	 */
+	int YBINDING = 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingImpl <em>YValue Binding</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYValueBinding()
+	 * @generated
+	 */
+	int YVALUE_BINDING = 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingImpl <em>YList Binding</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYListBinding()
+	 * @generated
+	 */
+	int YLIST_BINDING = 8;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YDetailValueBindingEndpointImpl <em>YDetail Value Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YDetailValueBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYDetailValueBindingEndpoint()
+	 * @generated
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT = 4;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT__TAGS = YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT__ID = YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT__NAME = YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTIES = YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Master Observable</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Features</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT__FEATURES = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT__TYPE = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YDetail Value Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_VALUE_BINDING_ENDPOINT_FEATURE_COUNT = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING_ENDPOINT__TAGS = YBINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING_ENDPOINT__ID = YBINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING_ENDPOINT__NAME = YBINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING_ENDPOINT__PROPERTIES = YBINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The number of structural features of the '<em>YList Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING_ENDPOINT_FEATURE_COUNT = YBINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Model To Target Strategy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING__MODEL_TO_TARGET_STRATEGY = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Target To Model Strategy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING__TARGET_TO_MODEL_STRATEGY = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YBinding</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDING_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING__TAGS = YBINDING__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING__ID = YBINDING__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING__NAME = YBINDING__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING__PROPERTIES = YBINDING__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Model To Target Strategy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING__MODEL_TO_TARGET_STRATEGY = YBINDING__MODEL_TO_TARGET_STRATEGY;
+
+	/**
+	 * The feature id for the '<em><b>Target To Model Strategy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING__TARGET_TO_MODEL_STRATEGY = YBINDING__TARGET_TO_MODEL_STRATEGY;
+
+	/**
+	 * The feature id for the '<em><b>Target Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING__TARGET_ENDPOINT = YBINDING_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Model Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING__MODEL_ENDPOINT = YBINDING_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YValue Binding</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDING_FEATURE_COUNT = YBINDING_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING__TAGS = YBINDING__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING__ID = YBINDING__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING__NAME = YBINDING__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING__PROPERTIES = YBINDING__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Model To Target Strategy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING__MODEL_TO_TARGET_STRATEGY = YBINDING__MODEL_TO_TARGET_STRATEGY;
+
+	/**
+	 * The feature id for the '<em><b>Target To Model Strategy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING__TARGET_TO_MODEL_STRATEGY = YBINDING__TARGET_TO_MODEL_STRATEGY;
+
+	/**
+	 * The feature id for the '<em><b>Target Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING__TARGET_ENDPOINT = YBINDING_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Model Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING__MODEL_ENDPOINT = YBINDING_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YList Binding</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_BINDING_FEATURE_COUNT = YBINDING_FEATURE_COUNT + 2;
+
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YEnumListBindingEndpointImpl <em>YEnum List Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YEnumListBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYEnumListBindingEndpoint()
+	 * @generated
+	 */
+	int YENUM_LIST_BINDING_ENDPOINT = 9;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST_BINDING_ENDPOINT__TAGS = YLIST_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST_BINDING_ENDPOINT__ID = YLIST_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST_BINDING_ENDPOINT__NAME = YLIST_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST_BINDING_ENDPOINT__PROPERTIES = YLIST_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Enum</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST_BINDING_ENDPOINT__ENUM = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YEnum List Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST_BINDING_ENDPOINT_FEATURE_COUNT = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl <em>YEC View Model Value Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYECViewModelValueBindingEndpoint()
+	 * @generated
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT = 10;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TAGS = YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ID = YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__NAME = YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTIES = YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Features</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__FEATURES = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>YEC View Model Value Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT_FEATURE_COUNT = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl <em>YEC View Model List Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYECViewModelListBindingEndpoint()
+	 * @generated
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT = 11;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TAGS = YLIST_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ID = YLIST_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__NAME = YLIST_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTIES = YLIST_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Features</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__FEATURES = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>YEC View Model List Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT_FEATURE_COUNT = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YVisibilityProcessorValueBindingEndpointImpl <em>YVisibility Processor Value Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YVisibilityProcessorValueBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYVisibilityProcessorValueBindingEndpoint()
+	 * @generated
+	 */
+	int YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT = 12;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__TAGS = YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__ID = YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__NAME = YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTIES = YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Processor Instance</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YVisibility Processor Value Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT_FEATURE_COUNT = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpValueBindingEndpointImpl <em>YNo Op Value Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpValueBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYNoOpValueBindingEndpoint()
+	 * @generated
+	 */
+	int YNO_OP_VALUE_BINDING_ENDPOINT = 13;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_VALUE_BINDING_ENDPOINT__TAGS = YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_VALUE_BINDING_ENDPOINT__ID = YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_VALUE_BINDING_ENDPOINT__NAME = YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_VALUE_BINDING_ENDPOINT__PROPERTIES = YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YNo Op Value Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_VALUE_BINDING_ENDPOINT_FEATURE_COUNT = YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpListBindingEndpointImpl <em>YNo Op List Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpListBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYNoOpListBindingEndpoint()
+	 * @generated
+	 */
+	int YNO_OP_LIST_BINDING_ENDPOINT = 14;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_LIST_BINDING_ENDPOINT__TAGS = YLIST_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_LIST_BINDING_ENDPOINT__ID = YLIST_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_LIST_BINDING_ENDPOINT__NAME = YLIST_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_LIST_BINDING_ENDPOINT__PROPERTIES = YLIST_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YNo Op List Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNO_OP_LIST_BINDING_ENDPOINT_FEATURE_COUNT = YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy <em>YBinding Update Strategy</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBindingUpdateStrategy()
+	 * @generated
+	 */
+	int YBINDING_UPDATE_STRATEGY = 15;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet <em>YBinding Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBinding Set</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet
+	 * @generated
+	 */
+	EClass getYBindingSet();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet#getBindings <em>Bindings</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Bindings</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet#getBindings()
+	 * @see #getYBindingSet()
+	 * @generated
+	 */
+	EReference getYBindingSet_Bindings();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet#getTransientBindings <em>Transient Bindings</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Transient Bindings</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet#getTransientBindings()
+	 * @see #getYBindingSet()
+	 * @generated
+	 */
+	EReference getYBindingSet_TransientBindings();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint <em>YBinding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBinding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint
+	 * @generated
+	 */
+	EClass getYBindingEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint <em>YValue Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YValue Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint
+	 * @generated
+	 */
+	EClass getYValueBindingEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint <em>YBean Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBean Value Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint
+	 * @generated
+	 */
+	EClass getYBeanValueBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint#getBean <em>Bean</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bean</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint#getBean()
+	 * @see #getYBeanValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYBeanValueBindingEndpoint_Bean();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint#getPropertyPath()
+	 * @see #getYBeanValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYBeanValueBindingEndpoint_PropertyPath();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint <em>YList Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YList Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint
+	 * @generated
+	 */
+	EClass getYListBindingEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding <em>YBinding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBinding</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBinding
+	 * @generated
+	 */
+	EClass getYBinding();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding#getModelToTargetStrategy <em>Model To Target Strategy</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Model To Target Strategy</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBinding#getModelToTargetStrategy()
+	 * @see #getYBinding()
+	 * @generated
+	 */
+	EAttribute getYBinding_ModelToTargetStrategy();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding#getTargetToModelStrategy <em>Target To Model Strategy</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Target To Model Strategy</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBinding#getTargetToModelStrategy()
+	 * @see #getYBinding()
+	 * @generated
+	 */
+	EAttribute getYBinding_TargetToModelStrategy();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding <em>YValue Binding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YValue Binding</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding
+	 * @generated
+	 */
+	EClass getYValueBinding();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding#getTargetEndpoint <em>Target Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Target Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding#getTargetEndpoint()
+	 * @see #getYValueBinding()
+	 * @generated
+	 */
+	EReference getYValueBinding_TargetEndpoint();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding#getModelEndpoint <em>Model Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Model Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding#getModelEndpoint()
+	 * @see #getYValueBinding()
+	 * @generated
+	 */
+	EReference getYValueBinding_ModelEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding <em>YList Binding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YList Binding</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YListBinding
+	 * @generated
+	 */
+	EClass getYListBinding();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding#getTargetEndpoint <em>Target Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Target Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YListBinding#getTargetEndpoint()
+	 * @see #getYListBinding()
+	 * @generated
+	 */
+	EReference getYListBinding_TargetEndpoint();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding#getModelEndpoint <em>Model Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Model Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YListBinding#getModelEndpoint()
+	 * @see #getYListBinding()
+	 * @generated
+	 */
+	EReference getYListBinding_ModelEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint <em>YEnum List Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEnum List Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint
+	 * @generated
+	 */
+	EClass getYEnumListBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint#getEnum <em>Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Enum</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint#getEnum()
+	 * @see #getYEnumListBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYEnumListBindingEndpoint_Enum();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint <em>YEC View Model Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEC View Model Value Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint
+	 * @generated
+	 */
+	EClass getYECViewModelValueBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getElement()
+	 * @see #getYECViewModelValueBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYECViewModelValueBindingEndpoint_Element();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getFeatures <em>Features</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Features</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getFeatures()
+	 * @see #getYECViewModelValueBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYECViewModelValueBindingEndpoint_Features();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getPropertyPath()
+	 * @see #getYECViewModelValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYECViewModelValueBindingEndpoint_PropertyPath();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getType()
+	 * @see #getYECViewModelValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYECViewModelValueBindingEndpoint_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getTypeQualifiedName()
+	 * @see #getYECViewModelValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYECViewModelValueBindingEndpoint_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getEmfNsURI()
+	 * @see #getYECViewModelValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYECViewModelValueBindingEndpoint_EmfNsURI();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint <em>YEC View Model List Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEC View Model List Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint
+	 * @generated
+	 */
+	EClass getYECViewModelListBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getElement()
+	 * @see #getYECViewModelListBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYECViewModelListBindingEndpoint_Element();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getFeatures <em>Features</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Features</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getFeatures()
+	 * @see #getYECViewModelListBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYECViewModelListBindingEndpoint_Features();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getPropertyPath()
+	 * @see #getYECViewModelListBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYECViewModelListBindingEndpoint_PropertyPath();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getType()
+	 * @see #getYECViewModelListBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYECViewModelListBindingEndpoint_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getTypeQualifiedName()
+	 * @see #getYECViewModelListBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYECViewModelListBindingEndpoint_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getEmfNsURI()
+	 * @see #getYECViewModelListBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYECViewModelListBindingEndpoint_EmfNsURI();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint <em>YVisibility Processor Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YVisibility Processor Value Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint
+	 * @generated
+	 */
+	EClass getYVisibilityProcessorValueBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint#getProcessorInstance <em>Processor Instance</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Processor Instance</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint#getProcessorInstance()
+	 * @see #getYVisibilityProcessorValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProcessorValueBindingEndpoint_ProcessorInstance();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint#getProperty <em>Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint#getProperty()
+	 * @see #getYVisibilityProcessorValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProcessorValueBindingEndpoint_Property();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint <em>YNo Op Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YNo Op Value Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint
+	 * @generated
+	 */
+	EClass getYNoOpValueBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint#getElement()
+	 * @see #getYNoOpValueBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYNoOpValueBindingEndpoint_Element();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint <em>YNo Op List Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YNo Op List Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint
+	 * @generated
+	 */
+	EClass getYNoOpListBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint#getElement()
+	 * @see #getYNoOpListBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYNoOpListBindingEndpoint_Element();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy <em>YBinding Update Strategy</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YBinding Update Strategy</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy
+	 * @generated
+	 */
+	EEnum getYBindingUpdateStrategy();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint <em>YDetail Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDetail Value Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint
+	 * @generated
+	 */
+	EClass getYDetailValueBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getMasterObservable <em>Master Observable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Master Observable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getMasterObservable()
+	 * @see #getYDetailValueBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYDetailValueBindingEndpoint_MasterObservable();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getFeatures <em>Features</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Features</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getFeatures()
+	 * @see #getYDetailValueBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYDetailValueBindingEndpoint_Features();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getPropertyPath()
+	 * @see #getYDetailValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYDetailValueBindingEndpoint_PropertyPath();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getType()
+	 * @see #getYDetailValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYDetailValueBindingEndpoint_Type();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	BindingFactory getBindingFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl <em>YBinding Set</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBindingSet()
+		 * @generated
+		 */
+		EClass YBINDING_SET = eINSTANCE.getYBindingSet();
+
+		/**
+		 * The meta object literal for the '<em><b>Bindings</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YBINDING_SET__BINDINGS = eINSTANCE.getYBindingSet_Bindings();
+
+		/**
+		 * The meta object literal for the '<em><b>Transient Bindings</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YBINDING_SET__TRANSIENT_BINDINGS = eINSTANCE.getYBindingSet_TransientBindings();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl <em>YBinding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBindingEndpoint()
+		 * @generated
+		 */
+		EClass YBINDING_ENDPOINT = eINSTANCE.getYBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingEndpointImpl <em>YValue Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYValueBindingEndpoint()
+		 * @generated
+		 */
+		EClass YVALUE_BINDING_ENDPOINT = eINSTANCE.getYValueBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBeanValueBindingEndpointImpl <em>YBean Value Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBeanValueBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBeanValueBindingEndpoint()
+		 * @generated
+		 */
+		EClass YBEAN_VALUE_BINDING_ENDPOINT = eINSTANCE.getYBeanValueBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Bean</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_VALUE_BINDING_ENDPOINT__BEAN = eINSTANCE.getYBeanValueBindingEndpoint_Bean();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH = eINSTANCE.getYBeanValueBindingEndpoint_PropertyPath();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingEndpointImpl <em>YList Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYListBindingEndpoint()
+		 * @generated
+		 */
+		EClass YLIST_BINDING_ENDPOINT = eINSTANCE.getYListBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl <em>YBinding</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBinding()
+		 * @generated
+		 */
+		EClass YBINDING = eINSTANCE.getYBinding();
+
+		/**
+		 * The meta object literal for the '<em><b>Model To Target Strategy</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBINDING__MODEL_TO_TARGET_STRATEGY = eINSTANCE.getYBinding_ModelToTargetStrategy();
+
+		/**
+		 * The meta object literal for the '<em><b>Target To Model Strategy</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBINDING__TARGET_TO_MODEL_STRATEGY = eINSTANCE.getYBinding_TargetToModelStrategy();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingImpl <em>YValue Binding</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYValueBinding()
+		 * @generated
+		 */
+		EClass YVALUE_BINDING = eINSTANCE.getYValueBinding();
+
+		/**
+		 * The meta object literal for the '<em><b>Target Endpoint</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVALUE_BINDING__TARGET_ENDPOINT = eINSTANCE.getYValueBinding_TargetEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Model Endpoint</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVALUE_BINDING__MODEL_ENDPOINT = eINSTANCE.getYValueBinding_ModelEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingImpl <em>YList Binding</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYListBinding()
+		 * @generated
+		 */
+		EClass YLIST_BINDING = eINSTANCE.getYListBinding();
+
+		/**
+		 * The meta object literal for the '<em><b>Target Endpoint</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YLIST_BINDING__TARGET_ENDPOINT = eINSTANCE.getYListBinding_TargetEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Model Endpoint</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YLIST_BINDING__MODEL_ENDPOINT = eINSTANCE.getYListBinding_ModelEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YEnumListBindingEndpointImpl <em>YEnum List Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YEnumListBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYEnumListBindingEndpoint()
+		 * @generated
+		 */
+		EClass YENUM_LIST_BINDING_ENDPOINT = eINSTANCE.getYEnumListBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Enum</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_LIST_BINDING_ENDPOINT__ENUM = eINSTANCE.getYEnumListBindingEndpoint_Enum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl <em>YEC View Model Value Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYECViewModelValueBindingEndpoint()
+		 * @generated
+		 */
+		EClass YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT = eINSTANCE.getYECViewModelValueBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT = eINSTANCE.getYECViewModelValueBindingEndpoint_Element();
+
+		/**
+		 * The meta object literal for the '<em><b>Features</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__FEATURES = eINSTANCE.getYECViewModelValueBindingEndpoint_Features();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH = eINSTANCE.getYECViewModelValueBindingEndpoint_PropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE = eINSTANCE.getYECViewModelValueBindingEndpoint_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME = eINSTANCE.getYECViewModelValueBindingEndpoint_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI = eINSTANCE.getYECViewModelValueBindingEndpoint_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl <em>YEC View Model List Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYECViewModelListBindingEndpoint()
+		 * @generated
+		 */
+		EClass YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT = eINSTANCE.getYECViewModelListBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT = eINSTANCE.getYECViewModelListBindingEndpoint_Element();
+
+		/**
+		 * The meta object literal for the '<em><b>Features</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__FEATURES = eINSTANCE.getYECViewModelListBindingEndpoint_Features();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH = eINSTANCE.getYECViewModelListBindingEndpoint_PropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE = eINSTANCE.getYECViewModelListBindingEndpoint_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME = eINSTANCE.getYECViewModelListBindingEndpoint_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI = eINSTANCE.getYECViewModelListBindingEndpoint_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YVisibilityProcessorValueBindingEndpointImpl <em>YVisibility Processor Value Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YVisibilityProcessorValueBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYVisibilityProcessorValueBindingEndpoint()
+		 * @generated
+		 */
+		EClass YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT = eINSTANCE.getYVisibilityProcessorValueBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Processor Instance</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE = eINSTANCE.getYVisibilityProcessorValueBindingEndpoint_ProcessorInstance();
+
+		/**
+		 * The meta object literal for the '<em><b>Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY = eINSTANCE.getYVisibilityProcessorValueBindingEndpoint_Property();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpValueBindingEndpointImpl <em>YNo Op Value Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpValueBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYNoOpValueBindingEndpoint()
+		 * @generated
+		 */
+		EClass YNO_OP_VALUE_BINDING_ENDPOINT = eINSTANCE.getYNoOpValueBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT = eINSTANCE.getYNoOpValueBindingEndpoint_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpListBindingEndpointImpl <em>YNo Op List Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpListBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYNoOpListBindingEndpoint()
+		 * @generated
+		 */
+		EClass YNO_OP_LIST_BINDING_ENDPOINT = eINSTANCE.getYNoOpListBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT = eINSTANCE.getYNoOpListBindingEndpoint_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy <em>YBinding Update Strategy</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYBindingUpdateStrategy()
+		 * @generated
+		 */
+		EEnum YBINDING_UPDATE_STRATEGY = eINSTANCE.getYBindingUpdateStrategy();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YDetailValueBindingEndpointImpl <em>YDetail Value Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YDetailValueBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl#getYDetailValueBindingEndpoint()
+		 * @generated
+		 */
+		EClass YDETAIL_VALUE_BINDING_ENDPOINT = eINSTANCE.getYDetailValueBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Master Observable</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE = eINSTANCE.getYDetailValueBindingEndpoint_MasterObservable();
+
+		/**
+		 * The meta object literal for the '<em><b>Features</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDETAIL_VALUE_BINDING_ENDPOINT__FEATURES = eINSTANCE.getYDetailValueBindingEndpoint_Features();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH = eINSTANCE.getYDetailValueBindingEndpoint_PropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDETAIL_VALUE_BINDING_ENDPOINT__TYPE = eINSTANCE.getYDetailValueBindingEndpoint_Type();
+
+	}
+
+} //BindingPackage
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBeanValueBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBeanValueBindingEndpoint.java
new file mode 100644
index 0000000..b31d0fa
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBeanValueBindingEndpoint.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBean Value Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint#getBean <em>Bean</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint#getPropertyPath <em>Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBeanValueBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YBeanValueBindingEndpoint extends YValueBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Bean</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bean</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bean</em>' attribute.
+	 * @see #setBean(Object)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBeanValueBindingEndpoint_Bean()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getBean();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint#getBean <em>Bean</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bean</em>' attribute.
+	 * @see #getBean()
+	 * @generated
+	 */
+	void setBean(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBeanValueBindingEndpoint_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+} // YBeanValueBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBinding.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBinding.java
new file mode 100644
index 0000000..ce1b07f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBinding.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBinding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding#getModelToTargetStrategy <em>Model To Target Strategy</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding#getTargetToModelStrategy <em>Target To Model Strategy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBinding()
+ * @model abstract="true"
+ * @generated
+ */
+public interface YBinding extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Model To Target Strategy</b></em>' attribute.
+	 * The default value is <code>"UPDATE"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Model To Target Strategy</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Model To Target Strategy</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy
+	 * @see #setModelToTargetStrategy(YBindingUpdateStrategy)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBinding_ModelToTargetStrategy()
+	 * @model default="UPDATE"
+	 * @generated
+	 */
+	YBindingUpdateStrategy getModelToTargetStrategy();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding#getModelToTargetStrategy <em>Model To Target Strategy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Model To Target Strategy</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy
+	 * @see #getModelToTargetStrategy()
+	 * @generated
+	 */
+	void setModelToTargetStrategy(YBindingUpdateStrategy value);
+
+	/**
+	 * Returns the value of the '<em><b>Target To Model Strategy</b></em>' attribute.
+	 * The default value is <code>"UPDATE"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target To Model Strategy</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target To Model Strategy</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy
+	 * @see #setTargetToModelStrategy(YBindingUpdateStrategy)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBinding_TargetToModelStrategy()
+	 * @model default="UPDATE"
+	 * @generated
+	 */
+	YBindingUpdateStrategy getTargetToModelStrategy();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding#getTargetToModelStrategy <em>Target To Model Strategy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target To Model Strategy</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy
+	 * @see #getTargetToModelStrategy()
+	 * @generated
+	 */
+	void setTargetToModelStrategy(YBindingUpdateStrategy value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the binding set
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YBindingSet getBindingSet();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param element
+	 *            the element
+	 * @return true, if is binds element
+	 * @model elementRequired="true"
+	 * @generated
+	 */
+	boolean isBindsElement(YElement element);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the target endpoint
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YBindingEndpoint getTargetEndpoint();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the model endpoint
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YBindingEndpoint getModelEndpoint();
+
+} // YBinding
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBindingEndpoint.java
new file mode 100644
index 0000000..2eedda3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBindingEndpoint.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YBinding Endpoint</b></em>'. <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBindingEndpoint()
+ * @model abstract="true"
+ * @generated
+ */
+public interface YBindingEndpoint extends YElement {
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the binding
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YBinding getBinding();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param element
+	 *            the element
+	 * @return true, if is binds element
+	 * @model elementRequired="true"
+	 * @generated
+	 */
+	boolean isBindsElement(YElement element);
+
+//	/**
+//	 * Returns the type of bound feature. It is used to validate, whether two
+//	 * endpoints are compatible.
+//	 * 
+//	 * @return
+//	 */
+//	Class<?> getType();
+//
+//	/**
+//	 * Checks whether the endpoints are compatible to each other.
+//	 * 
+//	 * @param other
+//	 * @return
+//	 */
+//	IStatus isCompatible(YBindingEndpoint other);
+
+} // YBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBindingSet.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBindingSet.java
new file mode 100644
index 0000000..f040965
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBindingSet.java
@@ -0,0 +1,249 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YBinding Set</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet#getBindings <em>Bindings</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet#getTransientBindings <em>Transient Bindings</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBindingSet()
+ * @model
+ * @generated
+ */
+public interface YBindingSet extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Bindings</b></em>' containment reference
+	 * list. The list contents are of type
+	 * {@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bindings</em>' containment reference list
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Bindings</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBindingSet_Bindings()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YBinding> getBindings();
+
+	/**
+	 * Returns the value of the '<em><b>Transient Bindings</b></em>' reference
+	 * list. The list contents are of type
+	 * {@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Transient Bindings</em>' reference list isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Transient Bindings</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBindingSet_TransientBindings()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<YBinding> getTransientBindings();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y value binding
+	 * @model targetValueRequired="true" modelValueRequired="true"
+	 * @generated
+	 */
+	YValueBinding addBinding(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y list binding
+	 * @model targetValueRequired="true" modelValueRequired="true"
+	 * @generated
+	 */
+	YListBinding addBinding(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y value binding
+	 * @model targetValueRequired="true" modelValueRequired="true"
+	 *        targetToModelStrategyRequired="true"
+	 *        modelToTargetStrategyRequired="true"
+	 * @generated
+	 */
+	YValueBinding addBinding(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y list binding
+	 * @model targetValueRequired="true" modelValueRequired="true"
+	 *        targetToModelStrategyRequired="true"
+	 *        modelToTargetStrategyRequired="true"
+	 * @generated
+	 */
+	YListBinding addBinding(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YView getView();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param binding
+	 *            the binding
+	 * @model bindingRequired="true"
+	 * @generated
+	 */
+	void addBinding(YBinding binding);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param binding
+	 *            the binding
+	 * @model bindingRequired="true"
+	 * @generated
+	 */
+	void removeBinding(YBinding binding);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param binding
+	 *            the binding
+	 * @model bindingRequired="true"
+	 */
+	void addTransientBinding(YBinding binding);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y list binding
+	 * @model targetValueRequired="true" modelValueRequired="true"
+	 */
+	YListBinding addTransientBinding(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y list binding
+	 * @model targetValueRequired="true" modelValueRequired="true"
+	 *        targetToModelStrategyRequired="true"
+	 *        modelToTargetStrategyRequired="true"
+	 */
+	YListBinding addTransientBinding(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y value binding
+	 * @model targetValueRequired="true" modelValueRequired="true"
+	 */
+	YValueBinding addTransientBinding(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y value binding
+	 * @model targetValueRequired="true" modelValueRequired="true"
+	 *        targetToModelStrategyRequired="true"
+	 *        modelToTargetStrategyRequired="true"
+	 */
+	YValueBinding addTransientBinding(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy);
+
+} // YBindingSet
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBindingUpdateStrategy.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBindingUpdateStrategy.java
new file mode 100644
index 0000000..57fe924
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YBindingUpdateStrategy.java
@@ -0,0 +1,243 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YBinding Update Strategy</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYBindingUpdateStrategy()
+ * @model
+ * @generated
+ */
+public enum YBindingUpdateStrategy implements Enumerator {
+	/**
+	 * The '<em><b>UPDATE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UPDATE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UPDATE(0, "UPDATE", "UPDATE"),
+
+	/**
+	 * The '<em><b>ON REQUEST</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ON_REQUEST_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ON_REQUEST(1, "ON_REQUEST", "ON_REQUEST"),
+
+	/**
+	 * The '<em><b>NEVER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NEVER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NEVER(2, "NEVER", "NEVER");
+
+	/**
+	 * The '<em><b>UPDATE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>UPDATE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #UPDATE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UPDATE_VALUE = 0;
+
+	/**
+	 * The '<em><b>ON REQUEST</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ON REQUEST</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ON_REQUEST
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ON_REQUEST_VALUE = 1;
+
+	/**
+	 * The '<em><b>NEVER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NEVER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NEVER
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NEVER_VALUE = 2;
+
+	/**
+	 * An array of all the '<em><b>YBinding Update Strategy</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YBindingUpdateStrategy[] VALUES_ARRAY =
+		new YBindingUpdateStrategy[] {
+			UPDATE,
+			ON_REQUEST,
+			NEVER,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YBinding Update Strategy</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YBindingUpdateStrategy> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YBinding Update Strategy</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YBindingUpdateStrategy get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YBindingUpdateStrategy result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YBinding Update Strategy</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YBindingUpdateStrategy getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YBindingUpdateStrategy result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YBinding Update Strategy</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YBindingUpdateStrategy get(int value) {
+		switch (value) {
+			case UPDATE_VALUE: return UPDATE;
+			case ON_REQUEST_VALUE: return ON_REQUEST;
+			case NEVER_VALUE: return NEVER;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YBindingUpdateStrategy(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YBindingUpdateStrategy
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YDetailValueBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YDetailValueBindingEndpoint.java
new file mode 100644
index 0000000..f3535ac
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YDetailValueBindingEndpoint.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YDetail Value Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getMasterObservable <em>Master Observable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getFeatures <em>Features</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYDetailValueBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YDetailValueBindingEndpoint extends YValueBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Master Observable</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Master Observable</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Master Observable</em>' containment reference.
+	 * @see #setMasterObservable(YValueBindingEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYDetailValueBindingEndpoint_MasterObservable()
+	 * @model containment="true" resolveProxies="true" required="true"
+	 * @generated
+	 */
+	YValueBindingEndpoint getMasterObservable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getMasterObservable <em>Master Observable</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Master Observable</em>' containment reference.
+	 * @see #getMasterObservable()
+	 * @generated
+	 */
+	void setMasterObservable(YValueBindingEndpoint value);
+
+	/**
+	 * Returns the value of the '<em><b>Features</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.emf.ecore.EStructuralFeature}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Features</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Features</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYDetailValueBindingEndpoint_Features()
+	 * @model
+	 * @generated
+	 */
+	EList<EStructuralFeature> getFeatures();
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYDetailValueBindingEndpoint_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYDetailValueBindingEndpoint_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+} // YDetailValueBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YECViewModelListBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YECViewModelListBindingEndpoint.java
new file mode 100644
index 0000000..9bb4ec4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YECViewModelListBindingEndpoint.java
@@ -0,0 +1,185 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEC View Model List Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getElement <em>Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getFeatures <em>Features</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelListBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YECViewModelListBindingEndpoint extends YListBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element</em>' reference.
+	 * @see #setElement(EObject)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelListBindingEndpoint_Element()
+	 * @model required="true"
+	 * @generated
+	 */
+	EObject getElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getElement <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element</em>' reference.
+	 * @see #getElement()
+	 * @generated
+	 */
+	void setElement(EObject value);
+
+	/**
+	 * Returns the value of the '<em><b>Features</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.emf.ecore.EStructuralFeature}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Features</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Features</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelListBindingEndpoint_Features()
+	 * @model
+	 * @generated
+	 */
+	EList<EStructuralFeature> getFeatures();
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelListBindingEndpoint_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelListBindingEndpoint_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelListBindingEndpoint_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelListBindingEndpoint_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+} // YECViewModelListBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YECViewModelValueBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YECViewModelValueBindingEndpoint.java
new file mode 100644
index 0000000..5bae5a6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YECViewModelValueBindingEndpoint.java
@@ -0,0 +1,185 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEC View Model Value Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getElement <em>Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getFeatures <em>Features</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelValueBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YECViewModelValueBindingEndpoint extends YValueBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element</em>' reference.
+	 * @see #setElement(EObject)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelValueBindingEndpoint_Element()
+	 * @model required="true"
+	 * @generated
+	 */
+	EObject getElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getElement <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element</em>' reference.
+	 * @see #getElement()
+	 * @generated
+	 */
+	void setElement(EObject value);
+
+	/**
+	 * Returns the value of the '<em><b>Features</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.emf.ecore.EStructuralFeature}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Features</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Features</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelValueBindingEndpoint_Features()
+	 * @model
+	 * @generated
+	 */
+	EList<EStructuralFeature> getFeatures();
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelValueBindingEndpoint_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelValueBindingEndpoint_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelValueBindingEndpoint_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYECViewModelValueBindingEndpoint_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+} // YECViewModelValueBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YEnumListBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YEnumListBindingEndpoint.java
new file mode 100644
index 0000000..803299e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YEnumListBindingEndpoint.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEnum List Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint#getEnum <em>Enum</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYEnumListBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YEnumListBindingEndpoint extends YListBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Enum</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Enum</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Enum</em>' attribute.
+	 * @see #setEnum(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYEnumListBindingEndpoint_Enum()
+	 * @model required="true"
+	 * @generated
+	 */
+	Class<?> getEnum();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint#getEnum <em>Enum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Enum</em>' attribute.
+	 * @see #getEnum()
+	 * @generated
+	 */
+	void setEnum(Class<?> value);
+
+} // YEnumListBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YListBinding.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YListBinding.java
new file mode 100644
index 0000000..5fc55b3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YListBinding.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YList Binding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding#getTargetEndpoint <em>Target Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding#getModelEndpoint <em>Model Endpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYListBinding()
+ * @model
+ * @generated
+ */
+public interface YListBinding extends YBinding {
+	/**
+	 * Returns the value of the '<em><b>Target Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target Endpoint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target Endpoint</em>' containment reference.
+	 * @see #setTargetEndpoint(YListBindingEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYListBinding_TargetEndpoint()
+	 * @model containment="true" resolveProxies="true" required="true"
+	 * @generated
+	 */
+	YListBindingEndpoint getTargetEndpoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding#getTargetEndpoint <em>Target Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target Endpoint</em>' containment reference.
+	 * @see #getTargetEndpoint()
+	 * @generated
+	 */
+	void setTargetEndpoint(YListBindingEndpoint value);
+
+	/**
+	 * Returns the value of the '<em><b>Model Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Model Endpoint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Model Endpoint</em>' containment reference.
+	 * @see #setModelEndpoint(YListBindingEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYListBinding_ModelEndpoint()
+	 * @model containment="true" resolveProxies="true" required="true"
+	 * @generated
+	 */
+	YListBindingEndpoint getModelEndpoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding#getModelEndpoint <em>Model Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Model Endpoint</em>' containment reference.
+	 * @see #getModelEndpoint()
+	 * @generated
+	 */
+	void setModelEndpoint(YListBindingEndpoint value);
+
+} // YListBinding
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YListBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YListBindingEndpoint.java
new file mode 100644
index 0000000..7e6fb30
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YListBindingEndpoint.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YList Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYListBindingEndpoint()
+ * @model abstract="true"
+ * @generated
+ */
+public interface YListBindingEndpoint extends YBindingEndpoint {
+} // YListBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YNoOpListBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YNoOpListBindingEndpoint.java
new file mode 100644
index 0000000..400dd3c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YNoOpListBindingEndpoint.java
@@ -0,0 +1,62 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YNo Op List Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYNoOpListBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YNoOpListBindingEndpoint extends YListBindingEndpoint {
+
+	/**
+	 * Returns the value of the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element</em>' reference.
+	 * @see #setElement(YElement)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYNoOpListBindingEndpoint_Element()
+	 * @model
+	 * @generated
+	 */
+	YElement getElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint#getElement <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element</em>' reference.
+	 * @see #getElement()
+	 * @generated
+	 */
+	void setElement(YElement value);
+} // YNoOpListBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YNoOpValueBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YNoOpValueBindingEndpoint.java
new file mode 100644
index 0000000..2fe3be5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YNoOpValueBindingEndpoint.java
@@ -0,0 +1,62 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YNo Op Value Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYNoOpValueBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YNoOpValueBindingEndpoint extends YValueBindingEndpoint {
+
+	/**
+	 * Returns the value of the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element</em>' reference.
+	 * @see #setElement(YElement)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYNoOpValueBindingEndpoint_Element()
+	 * @model
+	 * @generated
+	 */
+	YElement getElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint#getElement <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element</em>' reference.
+	 * @see #getElement()
+	 * @generated
+	 */
+	void setElement(YElement value);
+} // YNoOpValueBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YValueBinding.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YValueBinding.java
new file mode 100644
index 0000000..93f0bb9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YValueBinding.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YValue Binding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding#getTargetEndpoint <em>Target Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding#getModelEndpoint <em>Model Endpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYValueBinding()
+ * @model
+ * @generated
+ */
+public interface YValueBinding extends YBinding {
+	/**
+	 * Returns the value of the '<em><b>Target Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target Endpoint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target Endpoint</em>' containment reference.
+	 * @see #setTargetEndpoint(YValueBindingEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYValueBinding_TargetEndpoint()
+	 * @model containment="true" resolveProxies="true" required="true"
+	 * @generated
+	 */
+	YValueBindingEndpoint getTargetEndpoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding#getTargetEndpoint <em>Target Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target Endpoint</em>' containment reference.
+	 * @see #getTargetEndpoint()
+	 * @generated
+	 */
+	void setTargetEndpoint(YValueBindingEndpoint value);
+
+	/**
+	 * Returns the value of the '<em><b>Model Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Model Endpoint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Model Endpoint</em>' containment reference.
+	 * @see #setModelEndpoint(YValueBindingEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYValueBinding_ModelEndpoint()
+	 * @model containment="true" resolveProxies="true" required="true"
+	 * @generated
+	 */
+	YValueBindingEndpoint getModelEndpoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding#getModelEndpoint <em>Model Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Model Endpoint</em>' containment reference.
+	 * @see #getModelEndpoint()
+	 * @generated
+	 */
+	void setModelEndpoint(YValueBindingEndpoint value);
+
+} // YValueBinding
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YValueBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YValueBindingEndpoint.java
new file mode 100644
index 0000000..73b1120
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YValueBindingEndpoint.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YValue Binding Endpoint</b></em>'. <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYValueBindingEndpoint()
+ * @model abstract="true"
+ * @generated
+ */
+public interface YValueBindingEndpoint extends YBindingEndpoint {
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y detail value binding endpoint
+	 * @model
+	 * @generated
+	 */
+	YDetailValueBindingEndpoint createDetailValueEndpoint();
+
+	/**
+	 * Returns a string, that is unique for the current binding. Each type of
+	 * binding like BeanSlotBinding, YEmbeddableBinding,... will create a unique
+	 * value. Also masterEndpoints are included to the value.
+	 * <p>
+	 * See subclasses for details.
+	 *
+	 * @return the binding id string
+	 */
+	String getBindingIdString();
+
+} // YValueBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YVisibilityProcessorValueBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YVisibilityProcessorValueBindingEndpoint.java
new file mode 100644
index 0000000..54396e8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/YVisibilityProcessorValueBindingEndpoint.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YVisibility Processor Value Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint#getProcessorInstance <em>Processor Instance</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint#getProperty <em>Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYVisibilityProcessorValueBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YVisibilityProcessorValueBindingEndpoint extends YValueBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Processor Instance</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Processor Instance</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Processor Instance</em>' attribute.
+	 * @see #setProcessorInstance(Object)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYVisibilityProcessorValueBindingEndpoint_ProcessorInstance()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getProcessorInstance();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint#getProcessorInstance <em>Processor Instance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Processor Instance</em>' attribute.
+	 * @see #getProcessorInstance()
+	 * @generated
+	 */
+	void setProcessorInstance(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property</em>' attribute.
+	 * @see #setProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#getYVisibilityProcessorValueBindingEndpoint_Property()
+	 * @model
+	 * @generated
+	 */
+	String getProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint#getProperty <em>Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property</em>' attribute.
+	 * @see #getProperty()
+	 * @generated
+	 */
+	void setProperty(String value);
+
+} // YVisibilityProcessorValueBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/BindingFactoryImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/BindingFactoryImpl.java
new file mode 100644
index 0000000..2f1a73b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/BindingFactoryImpl.java
@@ -0,0 +1,274 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
+import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BindingFactoryImpl extends EFactoryImpl implements BindingFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BindingFactory init() {
+		try {
+			BindingFactory theBindingFactory = (BindingFactory)EPackage.Registry.INSTANCE.getEFactory(BindingPackage.eNS_URI);
+			if (theBindingFactory != null) {
+				return theBindingFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new BindingFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BindingFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case BindingPackage.YBINDING_SET: return createYBindingSet();
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT: return createYBeanValueBindingEndpoint();
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT: return createYDetailValueBindingEndpoint();
+			case BindingPackage.YVALUE_BINDING: return createYValueBinding();
+			case BindingPackage.YLIST_BINDING: return createYListBinding();
+			case BindingPackage.YENUM_LIST_BINDING_ENDPOINT: return createYEnumListBindingEndpoint();
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT: return createYECViewModelValueBindingEndpoint();
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT: return createYECViewModelListBindingEndpoint();
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT: return createYVisibilityProcessorValueBindingEndpoint();
+			case BindingPackage.YNO_OP_VALUE_BINDING_ENDPOINT: return createYNoOpValueBindingEndpoint();
+			case BindingPackage.YNO_OP_LIST_BINDING_ENDPOINT: return createYNoOpListBindingEndpoint();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case BindingPackage.YBINDING_UPDATE_STRATEGY:
+				return createYBindingUpdateStrategyFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case BindingPackage.YBINDING_UPDATE_STRATEGY:
+				return convertYBindingUpdateStrategyToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingSet createYBindingSet() {
+		YBindingSetImpl yBindingSet = new YBindingSetImpl();
+		return yBindingSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanValueBindingEndpoint createYBeanValueBindingEndpoint() {
+		YBeanValueBindingEndpointImpl yBeanValueBindingEndpoint = new YBeanValueBindingEndpointImpl();
+		return yBeanValueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YValueBinding createYValueBinding() {
+		YValueBindingImpl yValueBinding = new YValueBindingImpl();
+		return yValueBinding;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YListBinding createYListBinding() {
+		YListBindingImpl yListBinding = new YListBindingImpl();
+		return yListBinding;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEnumListBindingEndpoint createYEnumListBindingEndpoint() {
+		YEnumListBindingEndpointImpl yEnumListBindingEndpoint = new YEnumListBindingEndpointImpl();
+		return yEnumListBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YECViewModelValueBindingEndpoint createYECViewModelValueBindingEndpoint() {
+		YECViewModelValueBindingEndpointImpl yecViewModelValueBindingEndpoint = new YECViewModelValueBindingEndpointImpl();
+		return yecViewModelValueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YECViewModelListBindingEndpoint createYECViewModelListBindingEndpoint() {
+		YECViewModelListBindingEndpointImpl yecViewModelListBindingEndpoint = new YECViewModelListBindingEndpointImpl();
+		return yecViewModelListBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YVisibilityProcessorValueBindingEndpoint createYVisibilityProcessorValueBindingEndpoint() {
+		YVisibilityProcessorValueBindingEndpointImpl yVisibilityProcessorValueBindingEndpoint = new YVisibilityProcessorValueBindingEndpointImpl();
+		return yVisibilityProcessorValueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YNoOpValueBindingEndpoint createYNoOpValueBindingEndpoint() {
+		YNoOpValueBindingEndpointImpl yNoOpValueBindingEndpoint = new YNoOpValueBindingEndpointImpl();
+		return yNoOpValueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YNoOpListBindingEndpoint createYNoOpListBindingEndpoint() {
+		YNoOpListBindingEndpointImpl yNoOpListBindingEndpoint = new YNoOpListBindingEndpointImpl();
+		return yNoOpListBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingUpdateStrategy createYBindingUpdateStrategyFromString(EDataType eDataType, String initialValue) {
+		YBindingUpdateStrategy result = YBindingUpdateStrategy.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertYBindingUpdateStrategyToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDetailValueBindingEndpoint createYDetailValueBindingEndpoint() {
+		YDetailValueBindingEndpointImpl yDetailValueBindingEndpoint = new YDetailValueBindingEndpointImpl();
+		return yDetailValueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BindingPackage getBindingPackage() {
+		return (BindingPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static BindingPackage getPackage() {
+		return BindingPackage.eINSTANCE;
+	}
+
+} //BindingFactoryImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/BindingPackageImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/BindingPackageImpl.java
new file mode 100644
index 0000000..47a463e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/BindingPackageImpl.java
@@ -0,0 +1,938 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
+import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BindingPackageImpl extends EPackageImpl implements BindingPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBindingSetEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yValueBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBeanValueBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yListBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBindingEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yValueBindingEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yListBindingEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yEnumListBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yecViewModelValueBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yecViewModelListBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yVisibilityProcessorValueBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yNoOpValueBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yNoOpListBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yBindingUpdateStrategyEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yDetailValueBindingEndpointEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private BindingPackageImpl() {
+		super(eNS_URI, BindingFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link BindingPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static BindingPackage init() {
+		if (isInited) return (BindingPackage)EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI);
+
+		// Obtain or create and register package
+		BindingPackageImpl theBindingPackage = (BindingPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof BindingPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new BindingPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		CoreModelPackageImpl theCoreModelPackage = (CoreModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) instanceof CoreModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) : CoreModelPackage.eINSTANCE);
+		AuthorizationPackageImpl theAuthorizationPackage = (AuthorizationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) instanceof AuthorizationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) : AuthorizationPackage.eINSTANCE);
+		ValidationPackageImpl theValidationPackage = (ValidationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) instanceof ValidationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) : ValidationPackage.eINSTANCE);
+		DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) instanceof DatatypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) : DatatypesPackage.eINSTANCE);
+		VisibilityPackageImpl theVisibilityPackage = (VisibilityPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) instanceof VisibilityPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) : VisibilityPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theBindingPackage.createPackageContents();
+		theCoreModelPackage.createPackageContents();
+		theAuthorizationPackage.createPackageContents();
+		theValidationPackage.createPackageContents();
+		theDatatypesPackage.createPackageContents();
+		theVisibilityPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theBindingPackage.initializePackageContents();
+		theCoreModelPackage.initializePackageContents();
+		theAuthorizationPackage.initializePackageContents();
+		theValidationPackage.initializePackageContents();
+		theDatatypesPackage.initializePackageContents();
+		theVisibilityPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theBindingPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(BindingPackage.eNS_URI, theBindingPackage);
+		return theBindingPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBindingSet() {
+		return yBindingSetEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYBindingSet_Bindings() {
+		return (EReference)yBindingSetEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYBindingSet_TransientBindings() {
+		return (EReference)yBindingSetEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBindingEndpoint() {
+		return yBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYValueBindingEndpoint() {
+		return yValueBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBeanValueBindingEndpoint() {
+		return yBeanValueBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanValueBindingEndpoint_Bean() {
+		return (EAttribute)yBeanValueBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanValueBindingEndpoint_PropertyPath() {
+		return (EAttribute)yBeanValueBindingEndpointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYListBindingEndpoint() {
+		return yListBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBinding() {
+		return yBindingEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBinding_ModelToTargetStrategy() {
+		return (EAttribute)yBindingEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBinding_TargetToModelStrategy() {
+		return (EAttribute)yBindingEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYValueBinding() {
+		return yValueBindingEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYValueBinding_TargetEndpoint() {
+		return (EReference)yValueBindingEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYValueBinding_ModelEndpoint() {
+		return (EReference)yValueBindingEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYListBinding() {
+		return yListBindingEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYListBinding_TargetEndpoint() {
+		return (EReference)yListBindingEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYListBinding_ModelEndpoint() {
+		return (EReference)yListBindingEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYEnumListBindingEndpoint() {
+		return yEnumListBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEnumListBindingEndpoint_Enum() {
+		return (EAttribute)yEnumListBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYECViewModelValueBindingEndpoint() {
+		return yecViewModelValueBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYECViewModelValueBindingEndpoint_Element() {
+		return (EReference)yecViewModelValueBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYECViewModelValueBindingEndpoint_Features() {
+		return (EReference)yecViewModelValueBindingEndpointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYECViewModelValueBindingEndpoint_PropertyPath() {
+		return (EAttribute)yecViewModelValueBindingEndpointEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYECViewModelValueBindingEndpoint_Type() {
+		return (EAttribute)yecViewModelValueBindingEndpointEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYECViewModelValueBindingEndpoint_TypeQualifiedName() {
+		return (EAttribute)yecViewModelValueBindingEndpointEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYECViewModelValueBindingEndpoint_EmfNsURI() {
+		return (EAttribute)yecViewModelValueBindingEndpointEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYECViewModelListBindingEndpoint() {
+		return yecViewModelListBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYECViewModelListBindingEndpoint_Element() {
+		return (EReference)yecViewModelListBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYECViewModelListBindingEndpoint_Features() {
+		return (EReference)yecViewModelListBindingEndpointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYECViewModelListBindingEndpoint_PropertyPath() {
+		return (EAttribute)yecViewModelListBindingEndpointEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYECViewModelListBindingEndpoint_Type() {
+		return (EAttribute)yecViewModelListBindingEndpointEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYECViewModelListBindingEndpoint_TypeQualifiedName() {
+		return (EAttribute)yecViewModelListBindingEndpointEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYECViewModelListBindingEndpoint_EmfNsURI() {
+		return (EAttribute)yecViewModelListBindingEndpointEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYVisibilityProcessorValueBindingEndpoint() {
+		return yVisibilityProcessorValueBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProcessorValueBindingEndpoint_ProcessorInstance() {
+		return (EAttribute)yVisibilityProcessorValueBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProcessorValueBindingEndpoint_Property() {
+		return (EAttribute)yVisibilityProcessorValueBindingEndpointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYNoOpValueBindingEndpoint() {
+		return yNoOpValueBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYNoOpValueBindingEndpoint_Element() {
+		return (EReference)yNoOpValueBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYNoOpListBindingEndpoint() {
+		return yNoOpListBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYNoOpListBindingEndpoint_Element() {
+		return (EReference)yNoOpListBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYBindingUpdateStrategy() {
+		return yBindingUpdateStrategyEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYDetailValueBindingEndpoint() {
+		return yDetailValueBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYDetailValueBindingEndpoint_MasterObservable() {
+		return (EReference)yDetailValueBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYDetailValueBindingEndpoint_Features() {
+		return (EReference)yDetailValueBindingEndpointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDetailValueBindingEndpoint_PropertyPath() {
+		return (EAttribute)yDetailValueBindingEndpointEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDetailValueBindingEndpoint_Type() {
+		return (EAttribute)yDetailValueBindingEndpointEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BindingFactory getBindingFactory() {
+		return (BindingFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		yBindingSetEClass = createEClass(YBINDING_SET);
+		createEReference(yBindingSetEClass, YBINDING_SET__BINDINGS);
+		createEReference(yBindingSetEClass, YBINDING_SET__TRANSIENT_BINDINGS);
+
+		yBindingEndpointEClass = createEClass(YBINDING_ENDPOINT);
+
+		yValueBindingEndpointEClass = createEClass(YVALUE_BINDING_ENDPOINT);
+
+		yBeanValueBindingEndpointEClass = createEClass(YBEAN_VALUE_BINDING_ENDPOINT);
+		createEAttribute(yBeanValueBindingEndpointEClass, YBEAN_VALUE_BINDING_ENDPOINT__BEAN);
+		createEAttribute(yBeanValueBindingEndpointEClass, YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH);
+
+		yDetailValueBindingEndpointEClass = createEClass(YDETAIL_VALUE_BINDING_ENDPOINT);
+		createEReference(yDetailValueBindingEndpointEClass, YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE);
+		createEReference(yDetailValueBindingEndpointEClass, YDETAIL_VALUE_BINDING_ENDPOINT__FEATURES);
+		createEAttribute(yDetailValueBindingEndpointEClass, YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH);
+		createEAttribute(yDetailValueBindingEndpointEClass, YDETAIL_VALUE_BINDING_ENDPOINT__TYPE);
+
+		yListBindingEndpointEClass = createEClass(YLIST_BINDING_ENDPOINT);
+
+		yBindingEClass = createEClass(YBINDING);
+		createEAttribute(yBindingEClass, YBINDING__MODEL_TO_TARGET_STRATEGY);
+		createEAttribute(yBindingEClass, YBINDING__TARGET_TO_MODEL_STRATEGY);
+
+		yValueBindingEClass = createEClass(YVALUE_BINDING);
+		createEReference(yValueBindingEClass, YVALUE_BINDING__TARGET_ENDPOINT);
+		createEReference(yValueBindingEClass, YVALUE_BINDING__MODEL_ENDPOINT);
+
+		yListBindingEClass = createEClass(YLIST_BINDING);
+		createEReference(yListBindingEClass, YLIST_BINDING__TARGET_ENDPOINT);
+		createEReference(yListBindingEClass, YLIST_BINDING__MODEL_ENDPOINT);
+
+		yEnumListBindingEndpointEClass = createEClass(YENUM_LIST_BINDING_ENDPOINT);
+		createEAttribute(yEnumListBindingEndpointEClass, YENUM_LIST_BINDING_ENDPOINT__ENUM);
+
+		yecViewModelValueBindingEndpointEClass = createEClass(YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT);
+		createEReference(yecViewModelValueBindingEndpointEClass, YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT);
+		createEReference(yecViewModelValueBindingEndpointEClass, YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__FEATURES);
+		createEAttribute(yecViewModelValueBindingEndpointEClass, YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH);
+		createEAttribute(yecViewModelValueBindingEndpointEClass, YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE);
+		createEAttribute(yecViewModelValueBindingEndpointEClass, YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME);
+		createEAttribute(yecViewModelValueBindingEndpointEClass, YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI);
+
+		yecViewModelListBindingEndpointEClass = createEClass(YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT);
+		createEReference(yecViewModelListBindingEndpointEClass, YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT);
+		createEReference(yecViewModelListBindingEndpointEClass, YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__FEATURES);
+		createEAttribute(yecViewModelListBindingEndpointEClass, YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH);
+		createEAttribute(yecViewModelListBindingEndpointEClass, YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE);
+		createEAttribute(yecViewModelListBindingEndpointEClass, YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME);
+		createEAttribute(yecViewModelListBindingEndpointEClass, YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI);
+
+		yVisibilityProcessorValueBindingEndpointEClass = createEClass(YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT);
+		createEAttribute(yVisibilityProcessorValueBindingEndpointEClass, YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE);
+		createEAttribute(yVisibilityProcessorValueBindingEndpointEClass, YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY);
+
+		yNoOpValueBindingEndpointEClass = createEClass(YNO_OP_VALUE_BINDING_ENDPOINT);
+		createEReference(yNoOpValueBindingEndpointEClass, YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT);
+
+		yNoOpListBindingEndpointEClass = createEClass(YNO_OP_LIST_BINDING_ENDPOINT);
+		createEReference(yNoOpListBindingEndpointEClass, YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT);
+
+		// Create enums
+		yBindingUpdateStrategyEEnum = createEEnum(YBINDING_UPDATE_STRATEGY);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		CoreModelPackage theCoreModelPackage = (CoreModelPackage)EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		yBindingSetEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		yBindingEndpointEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		yValueBindingEndpointEClass.getESuperTypes().add(this.getYBindingEndpoint());
+		yBeanValueBindingEndpointEClass.getESuperTypes().add(this.getYValueBindingEndpoint());
+		yDetailValueBindingEndpointEClass.getESuperTypes().add(this.getYValueBindingEndpoint());
+		yListBindingEndpointEClass.getESuperTypes().add(this.getYBindingEndpoint());
+		yBindingEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		yValueBindingEClass.getESuperTypes().add(this.getYBinding());
+		yListBindingEClass.getESuperTypes().add(this.getYBinding());
+		yEnumListBindingEndpointEClass.getESuperTypes().add(this.getYListBindingEndpoint());
+		yecViewModelValueBindingEndpointEClass.getESuperTypes().add(this.getYValueBindingEndpoint());
+		yecViewModelListBindingEndpointEClass.getESuperTypes().add(this.getYListBindingEndpoint());
+		yVisibilityProcessorValueBindingEndpointEClass.getESuperTypes().add(this.getYValueBindingEndpoint());
+		yNoOpValueBindingEndpointEClass.getESuperTypes().add(this.getYValueBindingEndpoint());
+		yNoOpListBindingEndpointEClass.getESuperTypes().add(this.getYListBindingEndpoint());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(yBindingSetEClass, YBindingSet.class, "YBindingSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYBindingSet_Bindings(), this.getYBinding(), null, "bindings", null, 0, -1, YBindingSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYBindingSet_TransientBindings(), this.getYBinding(), null, "transientBindings", null, 0, -1, YBindingSet.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		EOperation op = addEOperation(yBindingSetEClass, this.getYValueBinding(), "addBinding", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYValueBindingEndpoint(), "targetValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYValueBindingEndpoint(), "modelValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yBindingSetEClass, this.getYListBinding(), "addBinding", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYListBindingEndpoint(), "targetValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYListBindingEndpoint(), "modelValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yBindingSetEClass, this.getYValueBinding(), "addBinding", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYValueBindingEndpoint(), "targetValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYValueBindingEndpoint(), "modelValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYBindingUpdateStrategy(), "targetToModelStrategy", 1, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYBindingUpdateStrategy(), "modelToTargetStrategy", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yBindingSetEClass, this.getYListBinding(), "addBinding", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYListBindingEndpoint(), "targetValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYListBindingEndpoint(), "modelValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYBindingUpdateStrategy(), "targetToModelStrategy", 1, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYBindingUpdateStrategy(), "modelToTargetStrategy", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(yBindingSetEClass, theCoreModelPackage.getYView(), "getView", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yBindingSetEClass, null, "addBinding", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYBinding(), "binding", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yBindingSetEClass, null, "removeBinding", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYBinding(), "binding", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yBindingEndpointEClass, YBindingEndpoint.class, "YBindingEndpoint", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		addEOperation(yBindingEndpointEClass, this.getYBinding(), "getBinding", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yBindingEndpointEClass, ecorePackage.getEBoolean(), "isBindsElement", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, theCoreModelPackage.getYElement(), "element", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yValueBindingEndpointEClass, YValueBindingEndpoint.class, "YValueBindingEndpoint", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		addEOperation(yValueBindingEndpointEClass, this.getYDetailValueBindingEndpoint(), "createDetailValueEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yBeanValueBindingEndpointEClass, YBeanValueBindingEndpoint.class, "YBeanValueBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYBeanValueBindingEndpoint_Bean(), ecorePackage.getEJavaObject(), "bean", null, 0, 1, YBeanValueBindingEndpoint.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanValueBindingEndpoint_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YBeanValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yDetailValueBindingEndpointEClass, YDetailValueBindingEndpoint.class, "YDetailValueBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYDetailValueBindingEndpoint_MasterObservable(), this.getYValueBindingEndpoint(), null, "masterObservable", null, 1, 1, YDetailValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYDetailValueBindingEndpoint_Features(), ecorePackage.getEStructuralFeature(), null, "features", null, 0, -1, YDetailValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDetailValueBindingEndpoint_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YDetailValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		EGenericType g1 = createEGenericType(ecorePackage.getEJavaClass());
+		EGenericType g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYDetailValueBindingEndpoint_Type(), g1, "type", null, 0, 1, YDetailValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yListBindingEndpointEClass, YListBindingEndpoint.class, "YListBindingEndpoint", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yBindingEClass, YBinding.class, "YBinding", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYBinding_ModelToTargetStrategy(), this.getYBindingUpdateStrategy(), "modelToTargetStrategy", "UPDATE", 0, 1, YBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBinding_TargetToModelStrategy(), this.getYBindingUpdateStrategy(), "targetToModelStrategy", "UPDATE", 0, 1, YBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yBindingEClass, this.getYBindingSet(), "getBindingSet", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yBindingEClass, ecorePackage.getEBoolean(), "isBindsElement", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, theCoreModelPackage.getYElement(), "element", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(yBindingEClass, this.getYBindingEndpoint(), "getTargetEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(yBindingEClass, this.getYBindingEndpoint(), "getModelEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yValueBindingEClass, YValueBinding.class, "YValueBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYValueBinding_TargetEndpoint(), this.getYValueBindingEndpoint(), null, "targetEndpoint", null, 1, 1, YValueBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYValueBinding_ModelEndpoint(), this.getYValueBindingEndpoint(), null, "modelEndpoint", null, 1, 1, YValueBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yListBindingEClass, YListBinding.class, "YListBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYListBinding_TargetEndpoint(), this.getYListBindingEndpoint(), null, "targetEndpoint", null, 1, 1, YListBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYListBinding_ModelEndpoint(), this.getYListBindingEndpoint(), null, "modelEndpoint", null, 1, 1, YListBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEnumListBindingEndpointEClass, YEnumListBindingEndpoint.class, "YEnumListBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYEnumListBindingEndpoint_Enum(), g1, "enum", null, 1, 1, YEnumListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yecViewModelValueBindingEndpointEClass, YECViewModelValueBindingEndpoint.class, "YECViewModelValueBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYECViewModelValueBindingEndpoint_Element(), ecorePackage.getEObject(), null, "element", null, 1, 1, YECViewModelValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYECViewModelValueBindingEndpoint_Features(), ecorePackage.getEStructuralFeature(), null, "features", null, 0, -1, YECViewModelValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYECViewModelValueBindingEndpoint_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YECViewModelValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYECViewModelValueBindingEndpoint_Type(), g1, "type", null, 0, 1, YECViewModelValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYECViewModelValueBindingEndpoint_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YECViewModelValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYECViewModelValueBindingEndpoint_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YECViewModelValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yecViewModelListBindingEndpointEClass, YECViewModelListBindingEndpoint.class, "YECViewModelListBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYECViewModelListBindingEndpoint_Element(), ecorePackage.getEObject(), null, "element", null, 1, 1, YECViewModelListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYECViewModelListBindingEndpoint_Features(), ecorePackage.getEStructuralFeature(), null, "features", null, 0, -1, YECViewModelListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYECViewModelListBindingEndpoint_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YECViewModelListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYECViewModelListBindingEndpoint_Type(), g1, "type", null, 0, 1, YECViewModelListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYECViewModelListBindingEndpoint_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YECViewModelListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYECViewModelListBindingEndpoint_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YECViewModelListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yVisibilityProcessorValueBindingEndpointEClass, YVisibilityProcessorValueBindingEndpoint.class, "YVisibilityProcessorValueBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYVisibilityProcessorValueBindingEndpoint_ProcessorInstance(), ecorePackage.getEJavaObject(), "processorInstance", null, 0, 1, YVisibilityProcessorValueBindingEndpoint.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProcessorValueBindingEndpoint_Property(), ecorePackage.getEString(), "property", null, 0, 1, YVisibilityProcessorValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yNoOpValueBindingEndpointEClass, YNoOpValueBindingEndpoint.class, "YNoOpValueBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYNoOpValueBindingEndpoint_Element(), theCoreModelPackage.getYElement(), null, "element", null, 0, 1, YNoOpValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yNoOpListBindingEndpointEClass, YNoOpListBindingEndpoint.class, "YNoOpListBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYNoOpListBindingEndpoint_Element(), theCoreModelPackage.getYElement(), null, "element", null, 0, 1, YNoOpListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(yBindingUpdateStrategyEEnum, YBindingUpdateStrategy.class, "YBindingUpdateStrategy");
+		addEEnumLiteral(yBindingUpdateStrategyEEnum, YBindingUpdateStrategy.UPDATE);
+		addEEnumLiteral(yBindingUpdateStrategyEEnum, YBindingUpdateStrategy.ON_REQUEST);
+		addEEnumLiteral(yBindingUpdateStrategyEEnum, YBindingUpdateStrategy.NEVER);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //BindingPackageImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBeanValueBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBeanValueBindingEndpointImpl.java
new file mode 100644
index 0000000..b998d22
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBeanValueBindingEndpointImpl.java
@@ -0,0 +1,238 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YBean Value Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBeanValueBindingEndpointImpl#getBean <em>Bean</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBeanValueBindingEndpointImpl#getPropertyPath <em>Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBeanValueBindingEndpointImpl extends YValueBindingEndpointImpl implements YBeanValueBindingEndpoint {
+	/**
+	 * The default value of the '{@link #getBean() <em>Bean</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBean()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object BEAN_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getBean() <em>Bean</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBean()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object bean = BEAN_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanValueBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YBEAN_VALUE_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getBean() {
+		return bean;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBean(Object newBean) {
+		Object oldBean = bean;
+		bean = newBean;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__BEAN, oldBean, bean));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__BEAN:
+				return getBean();
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				return getPropertyPath();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__BEAN:
+				setBean(newValue);
+				return;
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__BEAN:
+				setBean(BEAN_EDEFAULT);
+				return;
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__BEAN:
+				return BEAN_EDEFAULT == null ? bean != null : !BEAN_EDEFAULT.equals(bean);
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (bean: ");
+		result.append(bean);
+		result.append(", propertyPath: ");
+		result.append(propertyPath);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public boolean isBindsElement(YElement element) {
+		return false;
+	}
+	
+	@Override
+	public String getBindingIdString() {
+		// returns a string of pattern "beanvalue/{classname}/{path}"
+		return BindingIdUtil.getBeanValueId(getBean().getClass().getName(), getPropertyPath());
+	}
+
+} //YBeanValueBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingEndpointImpl.java
new file mode 100644
index 0000000..b5614e4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingEndpointImpl.java
@@ -0,0 +1,350 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YBinding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#getProperties <em>Properties</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class YBindingEndpointImpl extends MinimalEObjectImpl.Container implements YBindingEndpoint {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YBINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBINDING_ENDPOINT__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBINDING_ENDPOINT__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, BindingPackage.YBINDING_ENDPOINT__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, BindingPackage.YBINDING_ENDPOINT__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBinding getBindingGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public YBinding getBinding() {
+		return (YBinding) eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isBindsElement(YElement element) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_ENDPOINT__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_ENDPOINT__TAGS:
+				return getTags();
+			case BindingPackage.YBINDING_ENDPOINT__ID:
+				return getId();
+			case BindingPackage.YBINDING_ENDPOINT__NAME:
+				return getName();
+			case BindingPackage.YBINDING_ENDPOINT__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_ENDPOINT__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case BindingPackage.YBINDING_ENDPOINT__ID:
+				setId((String)newValue);
+				return;
+			case BindingPackage.YBINDING_ENDPOINT__NAME:
+				setName((String)newValue);
+				return;
+			case BindingPackage.YBINDING_ENDPOINT__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_ENDPOINT__TAGS:
+				getTags().clear();
+				return;
+			case BindingPackage.YBINDING_ENDPOINT__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case BindingPackage.YBINDING_ENDPOINT__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case BindingPackage.YBINDING_ENDPOINT__PROPERTIES:
+				getProperties().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_ENDPOINT__TAGS:
+				return tags != null && !tags.isEmpty();
+			case BindingPackage.YBINDING_ENDPOINT__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case BindingPackage.YBINDING_ENDPOINT__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case BindingPackage.YBINDING_ENDPOINT__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingImpl.java
new file mode 100644
index 0000000..58af179
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingImpl.java
@@ -0,0 +1,484 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YBinding</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl#getModelToTargetStrategy <em>Model To Target Strategy</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingImpl#getTargetToModelStrategy <em>Target To Model Strategy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class YBindingImpl extends MinimalEObjectImpl.Container
+		implements YBinding {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getModelToTargetStrategy() <em>Model To Target Strategy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getModelToTargetStrategy()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YBindingUpdateStrategy MODEL_TO_TARGET_STRATEGY_EDEFAULT = YBindingUpdateStrategy.UPDATE;
+
+	/**
+	 * The cached value of the '{@link #getModelToTargetStrategy() <em>Model To Target Strategy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getModelToTargetStrategy()
+	 * @generated
+	 * @ordered
+	 */
+	protected YBindingUpdateStrategy modelToTargetStrategy = MODEL_TO_TARGET_STRATEGY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTargetToModelStrategy() <em>Target To Model Strategy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetToModelStrategy()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YBindingUpdateStrategy TARGET_TO_MODEL_STRATEGY_EDEFAULT = YBindingUpdateStrategy.UPDATE;
+
+	/**
+	 * The cached value of the '{@link #getTargetToModelStrategy() <em>Target To Model Strategy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetToModelStrategy()
+	 * @generated
+	 * @ordered
+	 */
+	protected YBindingUpdateStrategy targetToModelStrategy = TARGET_TO_MODEL_STRATEGY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBindingImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YBINDING;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBINDING__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBINDING__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, BindingPackage.YBINDING__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, BindingPackage.YBINDING__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingUpdateStrategy getModelToTargetStrategy() {
+		return modelToTargetStrategy;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setModelToTargetStrategy(
+			YBindingUpdateStrategy newModelToTargetStrategy) {
+		YBindingUpdateStrategy oldModelToTargetStrategy = modelToTargetStrategy;
+		modelToTargetStrategy = newModelToTargetStrategy == null ? MODEL_TO_TARGET_STRATEGY_EDEFAULT : newModelToTargetStrategy;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBINDING__MODEL_TO_TARGET_STRATEGY, oldModelToTargetStrategy, modelToTargetStrategy));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingUpdateStrategy getTargetToModelStrategy() {
+		return targetToModelStrategy;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTargetToModelStrategy(
+			YBindingUpdateStrategy newTargetToModelStrategy) {
+		YBindingUpdateStrategy oldTargetToModelStrategy = targetToModelStrategy;
+		targetToModelStrategy = newTargetToModelStrategy == null ? TARGET_TO_MODEL_STRATEGY_EDEFAULT : newTargetToModelStrategy;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBINDING__TARGET_TO_MODEL_STRATEGY, oldTargetToModelStrategy, targetToModelStrategy));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingSet getBindingSetGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public YBindingSet getBindingSet() {
+		EObject container = eContainer();
+
+		return (container instanceof YBindingSet) ? (YBindingSet) eContainer()
+				: null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isBindsElementGen(YElement element) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> Returns true, if the binding binds the given
+	 * element at one of its endpoints.
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public boolean isBindsElement(YElement element) {
+		return getModelEndpoint() != null
+				&& getModelEndpoint().isBindsElement(element)
+				|| getTargetEndpoint() != null
+				&& getTargetEndpoint().isBindsElement(element);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingEndpoint getTargetEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingEndpoint getModelEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case BindingPackage.YBINDING__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YBINDING__TAGS:
+				return getTags();
+			case BindingPackage.YBINDING__ID:
+				return getId();
+			case BindingPackage.YBINDING__NAME:
+				return getName();
+			case BindingPackage.YBINDING__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case BindingPackage.YBINDING__MODEL_TO_TARGET_STRATEGY:
+				return getModelToTargetStrategy();
+			case BindingPackage.YBINDING__TARGET_TO_MODEL_STRATEGY:
+				return getTargetToModelStrategy();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YBINDING__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case BindingPackage.YBINDING__ID:
+				setId((String)newValue);
+				return;
+			case BindingPackage.YBINDING__NAME:
+				setName((String)newValue);
+				return;
+			case BindingPackage.YBINDING__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case BindingPackage.YBINDING__MODEL_TO_TARGET_STRATEGY:
+				setModelToTargetStrategy((YBindingUpdateStrategy)newValue);
+				return;
+			case BindingPackage.YBINDING__TARGET_TO_MODEL_STRATEGY:
+				setTargetToModelStrategy((YBindingUpdateStrategy)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YBINDING__TAGS:
+				getTags().clear();
+				return;
+			case BindingPackage.YBINDING__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case BindingPackage.YBINDING__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case BindingPackage.YBINDING__PROPERTIES:
+				getProperties().clear();
+				return;
+			case BindingPackage.YBINDING__MODEL_TO_TARGET_STRATEGY:
+				setModelToTargetStrategy(MODEL_TO_TARGET_STRATEGY_EDEFAULT);
+				return;
+			case BindingPackage.YBINDING__TARGET_TO_MODEL_STRATEGY:
+				setTargetToModelStrategy(TARGET_TO_MODEL_STRATEGY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YBINDING__TAGS:
+				return tags != null && !tags.isEmpty();
+			case BindingPackage.YBINDING__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case BindingPackage.YBINDING__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case BindingPackage.YBINDING__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case BindingPackage.YBINDING__MODEL_TO_TARGET_STRATEGY:
+				return modelToTargetStrategy != MODEL_TO_TARGET_STRATEGY_EDEFAULT;
+			case BindingPackage.YBINDING__TARGET_TO_MODEL_STRATEGY:
+				return targetToModelStrategy != TARGET_TO_MODEL_STRATEGY_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", modelToTargetStrategy: ");
+		result.append(modelToTargetStrategy);
+		result.append(", targetToModelStrategy: ");
+		result.append(targetToModelStrategy);
+		result.append(')');
+		return result.toString();
+	}
+
+} // YBindingImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingSetImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingSetImpl.java
new file mode 100644
index 0000000..dd46e88
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YBindingSetImpl.java
@@ -0,0 +1,791 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YBinding Set</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl#getBindings <em>Bindings</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingSetImpl#getTransientBindings <em>Transient Bindings</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBindingSetImpl extends MinimalEObjectImpl.Container implements
+		YBindingSet {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+	/**
+	 * The cached value of the '{@link #getBindings() <em>Bindings</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getBindings()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YBinding> bindings;
+
+	/**
+	 * The cached value of the '{@link #getTransientBindings() <em>Transient Bindings</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTransientBindings()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YBinding> transientBindings;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YBindingSetImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YBINDING_SET;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getId() <em>Id</em>}' attribute
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newId
+	 *            the new cached value of the '{@link #getId() <em>Id</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBINDING_SET__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getName() <em>Name</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newName
+	 *            the new cached value of the '{@link #getName() <em>Name</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YBINDING_SET__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTags() <em>Tags</em>}'
+	 *         attribute list
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, BindingPackage.YBINDING_SET__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getProperties()
+	 *         <em>Properties</em>}' map
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, BindingPackage.YBINDING_SET__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getBindings() <em>Bindings</em>}
+	 *         ' containment reference list
+	 * @generated
+	 */
+	public EList<YBinding> getBindings() {
+		if (bindings == null) {
+			bindings = new EObjectContainmentEList.Resolving<YBinding>(YBinding.class, this, BindingPackage.YBINDING_SET__BINDINGS);
+		}
+		return bindings;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTransientBindings()
+	 *         <em>Transient Bindings</em>}' reference list
+	 * @generated
+	 */
+	public EList<YBinding> getTransientBindings() {
+		if (transientBindings == null) {
+			transientBindings = new EObjectResolvingEList<YBinding>(YBinding.class, this, BindingPackage.YBINDING_SET__TRANSIENT_BINDINGS);
+		}
+		return transientBindings;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y value binding
+	 * @generated
+	 */
+	public YValueBinding addBindingGen(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y value binding
+	 * @generated NOT
+	 */
+	public YValueBinding addBinding(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue) {
+		return addBinding(targetValue, modelValue,
+				YBindingUpdateStrategy.UPDATE, YBindingUpdateStrategy.UPDATE);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y list binding
+	 * @generated
+	 */
+	public YListBinding addBindingGen(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y list binding
+	 * @generated NOT
+	 */
+	public YListBinding addBinding(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue) {
+		return addBinding(targetValue, modelValue,
+				YBindingUpdateStrategy.UPDATE, YBindingUpdateStrategy.UPDATE);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y value binding
+	 * @generated NOT
+	 */
+	public YValueBinding addBinding(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy) {
+
+		// create a new binding
+		YValueBinding binding = BindingFactory.eINSTANCE.createYValueBinding();
+		binding.setTargetEndpoint(targetValue);
+		binding.setModelEndpoint(modelValue);
+		binding.setModelToTargetStrategy(modelToTargetStrategy);
+		binding.setTargetToModelStrategy(targetToModelStrategy);
+
+		// add the binding to the internal list of bindings
+		getBindings().add(binding);
+
+		return binding;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y list binding
+	 * @generated NOT
+	 */
+	public YListBinding addBinding(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy) {
+
+		// create a new binding
+		YListBinding binding = BindingFactory.eINSTANCE.createYListBinding();
+		binding.setTargetEndpoint(targetValue);
+		binding.setModelEndpoint(modelValue);
+		binding.setModelToTargetStrategy(modelToTargetStrategy);
+		binding.setTargetToModelStrategy(targetToModelStrategy);
+
+		// add the binding to the internal list of bindings
+		getBindings().add(binding);
+
+		return binding;
+
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y value binding
+	 * @generated
+	 */
+	public YValueBinding addBindingGen(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y list binding
+	 * @generated
+	 */
+	public YListBinding addBindingGen(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view gen
+	 * @generated
+	 */
+	public YView getViewGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Returns the view that binding set is attached to.
+	 *
+	 * @return the view
+	 * @generated NOT
+	 */
+	public YView getView() {
+		return (YView) eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param binding
+	 *            the binding
+	 * @generated
+	 */
+	public void addBindingGen(YBinding binding) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param binding
+	 *            the binding
+	 * @generated NOT
+	 */
+	public void addBinding(YBinding binding) {
+		getBindings().add(binding);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param binding
+	 *            the binding
+	 * @generated
+	 */
+	public void removeBindingGen(YBinding binding) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param binding
+	 *            the binding
+	 * @generated NOT
+	 */
+	public void removeBinding(YBinding binding) {
+		getBindings().remove(binding);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_SET__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case BindingPackage.YBINDING_SET__BINDINGS:
+				return ((InternalEList<?>)getBindings()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_SET__TAGS:
+				return getTags();
+			case BindingPackage.YBINDING_SET__ID:
+				return getId();
+			case BindingPackage.YBINDING_SET__NAME:
+				return getName();
+			case BindingPackage.YBINDING_SET__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case BindingPackage.YBINDING_SET__BINDINGS:
+				return getBindings();
+			case BindingPackage.YBINDING_SET__TRANSIENT_BINDINGS:
+				return getTransientBindings();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_SET__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case BindingPackage.YBINDING_SET__ID:
+				setId((String)newValue);
+				return;
+			case BindingPackage.YBINDING_SET__NAME:
+				setName((String)newValue);
+				return;
+			case BindingPackage.YBINDING_SET__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case BindingPackage.YBINDING_SET__BINDINGS:
+				getBindings().clear();
+				getBindings().addAll((Collection<? extends YBinding>)newValue);
+				return;
+			case BindingPackage.YBINDING_SET__TRANSIENT_BINDINGS:
+				getTransientBindings().clear();
+				getTransientBindings().addAll((Collection<? extends YBinding>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_SET__TAGS:
+				getTags().clear();
+				return;
+			case BindingPackage.YBINDING_SET__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case BindingPackage.YBINDING_SET__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case BindingPackage.YBINDING_SET__PROPERTIES:
+				getProperties().clear();
+				return;
+			case BindingPackage.YBINDING_SET__BINDINGS:
+				getBindings().clear();
+				return;
+			case BindingPackage.YBINDING_SET__TRANSIENT_BINDINGS:
+				getTransientBindings().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YBINDING_SET__TAGS:
+				return tags != null && !tags.isEmpty();
+			case BindingPackage.YBINDING_SET__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case BindingPackage.YBINDING_SET__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case BindingPackage.YBINDING_SET__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case BindingPackage.YBINDING_SET__BINDINGS:
+				return bindings != null && !bindings.isEmpty();
+			case BindingPackage.YBINDING_SET__TRANSIENT_BINDINGS:
+				return transientBindings != null && !transientBindings.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param binding
+	 *            the binding
+	 * @generated NOT
+	 */
+	public void addTransientBinding(YBinding binding) {
+		getTransientBindings().add(binding);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y list binding
+	 * @generated NOT
+	 */
+	public YListBinding addTransientBinding(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue) {
+		return addTransientBinding(targetValue, modelValue,
+				YBindingUpdateStrategy.UPDATE, YBindingUpdateStrategy.UPDATE);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y list binding
+	 * @generated NOT
+	 */
+	public YListBinding addTransientBinding(YListBindingEndpoint targetValue,
+			YListBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy) {
+	
+		// create a new binding
+		YListBinding binding = BindingFactory.eINSTANCE.createYListBinding();
+		binding.setTargetEndpoint(targetValue);
+		binding.setModelEndpoint(modelValue);
+		binding.setModelToTargetStrategy(modelToTargetStrategy);
+		binding.setTargetToModelStrategy(targetToModelStrategy);
+	
+		// add the binding to the internal list of bindings
+		getTransientBindings().add(binding);
+	
+		return binding;
+	
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @return the y value binding
+	 * @generated NOT
+	 */
+	public YValueBinding addTransientBinding(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue) {
+		return addTransientBinding(targetValue, modelValue,
+				YBindingUpdateStrategy.UPDATE, YBindingUpdateStrategy.UPDATE);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param targetValue
+	 *            the target value
+	 * @param modelValue
+	 *            the model value
+	 * @param targetToModelStrategy
+	 *            the target to model strategy
+	 * @param modelToTargetStrategy
+	 *            the model to target strategy
+	 * @return the y value binding
+	 * @generated NOT
+	 */
+	public YValueBinding addTransientBinding(YValueBindingEndpoint targetValue,
+			YValueBindingEndpoint modelValue,
+			YBindingUpdateStrategy targetToModelStrategy,
+			YBindingUpdateStrategy modelToTargetStrategy) {
+	
+		// create a new binding
+		YValueBinding binding = BindingFactory.eINSTANCE.createYValueBinding();
+		binding.setTargetEndpoint(targetValue);
+		binding.setModelEndpoint(modelValue);
+		binding.setModelToTargetStrategy(modelToTargetStrategy);
+		binding.setTargetToModelStrategy(targetToModelStrategy);
+	
+		// add the binding to the internal list of bindings
+		getTransientBindings().add(binding);
+	
+		return binding;
+	}
+
+} // YBindingSetImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YDetailValueBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YDetailValueBindingEndpointImpl.java
new file mode 100644
index 0000000..8082125
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YDetailValueBindingEndpointImpl.java
@@ -0,0 +1,424 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YDetail Value Binding Endpoint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YDetailValueBindingEndpointImpl#getMasterObservable <em>Master Observable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YDetailValueBindingEndpointImpl#getFeatures <em>Features</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YDetailValueBindingEndpointImpl#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YDetailValueBindingEndpointImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YDetailValueBindingEndpointImpl extends YValueBindingEndpointImpl
+		implements YDetailValueBindingEndpoint {
+	/**
+	 * The cached value of the '{@link #getMasterObservable() <em>Master Observable</em>}' containment reference.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @see #getMasterObservable()
+	 * @generated
+	 * @ordered
+	 */
+	protected YValueBindingEndpoint masterObservable;
+
+	/**
+	 * The cached value of the '{@link #getFeatures() <em>Features</em>}' reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getFeatures()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<EStructuralFeature> features;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YDetailValueBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YDETAIL_VALUE_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMasterObservable()
+	 *         <em>Master Observable</em>}' containment reference
+	 * @generated
+	 */
+	public YValueBindingEndpoint getMasterObservable() {
+		if (masterObservable != null && masterObservable.eIsProxy()) {
+			InternalEObject oldMasterObservable = (InternalEObject)masterObservable;
+			masterObservable = (YValueBindingEndpoint)eResolveProxy(oldMasterObservable);
+			if (masterObservable != oldMasterObservable) {
+				InternalEObject newMasterObservable = (InternalEObject)masterObservable;
+				NotificationChain msgs = oldMasterObservable.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE, null, null);
+				if (newMasterObservable.eInternalContainer() == null) {
+					msgs = newMasterObservable.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE, oldMasterObservable, masterObservable));
+			}
+		}
+		return masterObservable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y value binding endpoint
+	 * @generated
+	 */
+	public YValueBindingEndpoint basicGetMasterObservable() {
+		return masterObservable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMasterObservable
+	 *            the new master observable
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetMasterObservable(
+			YValueBindingEndpoint newMasterObservable, NotificationChain msgs) {
+		YValueBindingEndpoint oldMasterObservable = masterObservable;
+		masterObservable = newMasterObservable;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE, oldMasterObservable, newMasterObservable);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMasterObservable
+	 *            the new cached value of the '{@link #getMasterObservable()
+	 *            <em>Master Observable</em>}' containment reference
+	 * @generated
+	 */
+	public void setMasterObservable(YValueBindingEndpoint newMasterObservable) {
+		if (newMasterObservable != masterObservable) {
+			NotificationChain msgs = null;
+			if (masterObservable != null)
+				msgs = ((InternalEObject)masterObservable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE, null, msgs);
+			if (newMasterObservable != null)
+				msgs = ((InternalEObject)newMasterObservable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE, null, msgs);
+			msgs = basicSetMasterObservable(newMasterObservable, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE, newMasterObservable, newMasterObservable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getFeatures() <em>Features</em>}
+	 *         ' reference list
+	 * @generated
+	 */
+	public EList<EStructuralFeature> getFeatures() {
+		if (features == null) {
+			features = new EObjectResolvingEList<EStructuralFeature>(EStructuralFeature.class, this, BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__FEATURES);
+		}
+		return features;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getPropertyPath()
+	 *         <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newPropertyPath
+	 *            the new cached value of the '{@link #getPropertyPath()
+	 *            <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE:
+				return basicSetMasterObservable(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE:
+				if (resolve) return getMasterObservable();
+				return basicGetMasterObservable();
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__FEATURES:
+				return getFeatures();
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				return getPropertyPath();
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__TYPE:
+				return getType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE:
+				setMasterObservable((YValueBindingEndpoint)newValue);
+				return;
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__FEATURES:
+				getFeatures().clear();
+				getFeatures().addAll((Collection<? extends EStructuralFeature>)newValue);
+				return;
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__TYPE:
+				setType((Class<?>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE:
+				setMasterObservable((YValueBindingEndpoint)null);
+				return;
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__FEATURES:
+				getFeatures().clear();
+				return;
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__TYPE:
+				setType((Class<?>)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__MASTER_OBSERVABLE:
+				return masterObservable != null;
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__FEATURES:
+				return features != null && !features.isEmpty();
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT__TYPE:
+				return type != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (propertyPath: ");
+		result.append(propertyPath);
+		result.append(", type: ");
+		result.append(type);
+		result.append(')');
+		return result.toString();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#isBindsElement(org.eclipse.osbp.ecview.core.common.model.core.YElement)
+	 */
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return getMasterObservable().isBindsElement(element);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint#getBindingIdString()
+	 */
+	@Override
+	public String getBindingIdString() {
+		return BindingIdUtil.getDetailValueId(getMasterObservable()
+				.getBindingIdString(), getPropertyPath());
+	}
+
+} // YDetailValueBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YECViewModelListBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YECViewModelListBindingEndpointImpl.java
new file mode 100644
index 0000000..2de1a07
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YECViewModelListBindingEndpointImpl.java
@@ -0,0 +1,477 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YEC View Model List Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl#getElement <em>Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl#getFeatures <em>Features</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelListBindingEndpointImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YECViewModelListBindingEndpointImpl extends YListBindingEndpointImpl implements YECViewModelListBindingEndpoint {
+	/**
+	 * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected EObject element;
+
+	/**
+	 * The cached value of the '{@link #getFeatures() <em>Features</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFeatures()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<EStructuralFeature> features;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YECViewModelListBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getElement() <em>Element</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public EObject getElement() {
+		if (element != null && element.eIsProxy()) {
+			InternalEObject oldElement = (InternalEObject)element;
+			element = eResolveProxy(oldElement);
+			if (element != oldElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT, oldElement, element));
+			}
+		}
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e object
+	 * @generated
+	 */
+	public EObject basicGetElement() {
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newElement
+	 *            the new cached value of the '{@link #getElement()
+	 *            <em>Element</em>}' reference
+	 * @generated
+	 */
+	public void setElement(EObject newElement) {
+		EObject oldElement = element;
+		element = newElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT, oldElement, element));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getFeatures() <em>Features</em>}
+	 *         ' reference list
+	 * @generated
+	 */
+	public EList<EStructuralFeature> getFeatures() {
+		if (features == null) {
+			features = new EObjectResolvingEList<EStructuralFeature>(EStructuralFeature.class, this, BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__FEATURES);
+		}
+		return features;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getPropertyPath()
+	 *         <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newPropertyPath
+	 *            the new cached value of the '{@link #getPropertyPath()
+	 *            <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT:
+				if (resolve) return getElement();
+				return basicGetElement();
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__FEATURES:
+				return getFeatures();
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH:
+				return getPropertyPath();
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE:
+				return getType();
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI:
+				return getEmfNsURI();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT:
+				setElement((EObject)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__FEATURES:
+				getFeatures().clear();
+				getFeatures().addAll((Collection<? extends EStructuralFeature>)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT:
+				setElement((EObject)null);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__FEATURES:
+				getFeatures().clear();
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE:
+				setType((Class<?>)null);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__ELEMENT:
+				return element != null;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__FEATURES:
+				return features != null && !features.isEmpty();
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE:
+				return type != null;
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (propertyPath: ");
+		result.append(propertyPath);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(')');
+		return result.toString();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#isBindsElement(org.eclipse.osbp.ecview.core.common.model.core.YElement)
+	 */
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return element == getElement();
+	}
+
+} //YECViewModelListBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YECViewModelValueBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YECViewModelValueBindingEndpointImpl.java
new file mode 100644
index 0000000..133ed5f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YECViewModelValueBindingEndpointImpl.java
@@ -0,0 +1,488 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YEC View Model Value Binding Endpoint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl#getElement <em>Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl#getFeatures <em>Features</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YECViewModelValueBindingEndpointImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YECViewModelValueBindingEndpointImpl extends
+		YValueBindingEndpointImpl implements YECViewModelValueBindingEndpoint {
+	/**
+	 * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected EObject element;
+
+	/**
+	 * The cached value of the '{@link #getFeatures() <em>Features</em>}' reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getFeatures()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<EStructuralFeature> features;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YECViewModelValueBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getElement() <em>Element</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public EObject getElement() {
+		if (element != null && element.eIsProxy()) {
+			InternalEObject oldElement = (InternalEObject)element;
+			element = eResolveProxy(oldElement);
+			if (element != oldElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT, oldElement, element));
+			}
+		}
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e object
+	 * @generated
+	 */
+	public EObject basicGetElement() {
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newElement
+	 *            the new cached value of the '{@link #getElement()
+	 *            <em>Element</em>}' reference
+	 * @generated
+	 */
+	public void setElement(EObject newElement) {
+		EObject oldElement = element;
+		element = newElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT, oldElement, element));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getFeatures() <em>Features</em>}
+	 *         ' reference list
+	 * @generated
+	 */
+	public EList<EStructuralFeature> getFeatures() {
+		if (features == null) {
+			features = new EObjectResolvingEList<EStructuralFeature>(EStructuralFeature.class, this, BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__FEATURES);
+		}
+		return features;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getPropertyPath()
+	 *         <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newPropertyPath
+	 *            the new cached value of the '{@link #getPropertyPath()
+	 *            <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT:
+				if (resolve) return getElement();
+				return basicGetElement();
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__FEATURES:
+				return getFeatures();
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				return getPropertyPath();
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE:
+				return getType();
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI:
+				return getEmfNsURI();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT:
+				setElement((EObject)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__FEATURES:
+				getFeatures().clear();
+				getFeatures().addAll((Collection<? extends EStructuralFeature>)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT:
+				setElement((EObject)null);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__FEATURES:
+				getFeatures().clear();
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE:
+				setType((Class<?>)null);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__ELEMENT:
+				return element != null;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__FEATURES:
+				return features != null && !features.isEmpty();
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE:
+				return type != null;
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (propertyPath: ");
+		result.append(propertyPath);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(')');
+		return result.toString();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#isBindsElement(org.eclipse.osbp.ecview.core.common.model.core.YElement)
+	 */
+	public boolean isBindsElement(YElement element) {
+		return element == getElement();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint#getBindingIdString()
+	 */
+	@Override
+	public String getBindingIdString() {
+
+		if (!(getElement() instanceof YElement)) {
+			throw new IllegalArgumentException(
+					"not a valid element to create a binding id string");
+		}
+
+		YElement yElement = (YElement) getElement();
+		return BindingIdUtil.getECViewModelValueId(yElement.getId(),
+				getPropertyPath());
+	}
+
+} // YECViewModelValueBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YEnumListBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YEnumListBindingEndpointImpl.java
new file mode 100644
index 0000000..6fb86da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YEnumListBindingEndpointImpl.java
@@ -0,0 +1,188 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YEnum List Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YEnumListBindingEndpointImpl#getEnum <em>Enum</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YEnumListBindingEndpointImpl extends YListBindingEndpointImpl implements YEnumListBindingEndpoint {
+	/**
+	 * The cached value of the '{@link #getEnum() <em>Enum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEnum()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> enum_;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YEnumListBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YENUM_LIST_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the enum
+	 * @generated
+	 */
+	public Class<?> getEnum() {
+		return enum_;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEnum
+	 *            the new enum
+	 * @generated
+	 */
+	public void setEnum(Class<?> newEnum) {
+		Class<?> oldEnum = enum_;
+		enum_ = newEnum;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YENUM_LIST_BINDING_ENDPOINT__ENUM, oldEnum, enum_));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YENUM_LIST_BINDING_ENDPOINT__ENUM:
+				return getEnum();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YENUM_LIST_BINDING_ENDPOINT__ENUM:
+				setEnum((Class<?>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YENUM_LIST_BINDING_ENDPOINT__ENUM:
+				setEnum((Class<?>)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YENUM_LIST_BINDING_ENDPOINT__ENUM:
+				return enum_ != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (enum: ");
+		result.append(enum_);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#isBindsElement(org.eclipse.osbp.ecview.core.common.model.core.YElement)
+	 */
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return false;
+	}
+
+} //YEnumListBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YListBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YListBindingEndpointImpl.java
new file mode 100644
index 0000000..8662ad3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YListBindingEndpointImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YList Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class YListBindingEndpointImpl extends YBindingEndpointImpl implements YListBindingEndpoint {
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YListBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YLIST_BINDING_ENDPOINT;
+	}
+
+} //YListBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YListBindingImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YListBindingImpl.java
new file mode 100644
index 0000000..3c81225
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YListBindingImpl.java
@@ -0,0 +1,341 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YList Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingImpl#getTargetEndpoint <em>Target Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingImpl#getModelEndpoint <em>Model Endpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YListBindingImpl extends YBindingImpl implements YListBinding {
+	/**
+	 * The cached value of the '{@link #getTargetEndpoint() <em>Target Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YListBindingEndpoint targetEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getModelEndpoint() <em>Model Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getModelEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YListBindingEndpoint modelEndpoint;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YListBindingImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YLIST_BINDING;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTargetEndpoint()
+	 *         <em>Target Endpoint</em>}' containment reference
+	 * @generated
+	 */
+	public YListBindingEndpoint getTargetEndpoint() {
+		if (targetEndpoint != null && targetEndpoint.eIsProxy()) {
+			InternalEObject oldTargetEndpoint = (InternalEObject)targetEndpoint;
+			targetEndpoint = (YListBindingEndpoint)eResolveProxy(oldTargetEndpoint);
+			if (targetEndpoint != oldTargetEndpoint) {
+				InternalEObject newTargetEndpoint = (InternalEObject)targetEndpoint;
+				NotificationChain msgs = oldTargetEndpoint.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YLIST_BINDING__TARGET_ENDPOINT, null, null);
+				if (newTargetEndpoint.eInternalContainer() == null) {
+					msgs = newTargetEndpoint.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YLIST_BINDING__TARGET_ENDPOINT, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BindingPackage.YLIST_BINDING__TARGET_ENDPOINT, oldTargetEndpoint, targetEndpoint));
+			}
+		}
+		return targetEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list binding endpoint
+	 * @generated
+	 */
+	public YListBindingEndpoint basicGetTargetEndpoint() {
+		return targetEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTargetEndpoint
+	 *            the new target endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetTargetEndpoint(YListBindingEndpoint newTargetEndpoint, NotificationChain msgs) {
+		YListBindingEndpoint oldTargetEndpoint = targetEndpoint;
+		targetEndpoint = newTargetEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BindingPackage.YLIST_BINDING__TARGET_ENDPOINT, oldTargetEndpoint, newTargetEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTargetEndpoint
+	 *            the new cached value of the '{@link #getTargetEndpoint()
+	 *            <em>Target Endpoint</em>}' containment reference
+	 * @generated
+	 */
+	public void setTargetEndpoint(YListBindingEndpoint newTargetEndpoint) {
+		if (newTargetEndpoint != targetEndpoint) {
+			NotificationChain msgs = null;
+			if (targetEndpoint != null)
+				msgs = ((InternalEObject)targetEndpoint).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YLIST_BINDING__TARGET_ENDPOINT, null, msgs);
+			if (newTargetEndpoint != null)
+				msgs = ((InternalEObject)newTargetEndpoint).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YLIST_BINDING__TARGET_ENDPOINT, null, msgs);
+			msgs = basicSetTargetEndpoint(newTargetEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YLIST_BINDING__TARGET_ENDPOINT, newTargetEndpoint, newTargetEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getModelEndpoint()
+	 *         <em>Model Endpoint</em>}' containment reference
+	 * @generated
+	 */
+	public YListBindingEndpoint getModelEndpoint() {
+		if (modelEndpoint != null && modelEndpoint.eIsProxy()) {
+			InternalEObject oldModelEndpoint = (InternalEObject)modelEndpoint;
+			modelEndpoint = (YListBindingEndpoint)eResolveProxy(oldModelEndpoint);
+			if (modelEndpoint != oldModelEndpoint) {
+				InternalEObject newModelEndpoint = (InternalEObject)modelEndpoint;
+				NotificationChain msgs = oldModelEndpoint.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YLIST_BINDING__MODEL_ENDPOINT, null, null);
+				if (newModelEndpoint.eInternalContainer() == null) {
+					msgs = newModelEndpoint.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YLIST_BINDING__MODEL_ENDPOINT, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BindingPackage.YLIST_BINDING__MODEL_ENDPOINT, oldModelEndpoint, modelEndpoint));
+			}
+		}
+		return modelEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list binding endpoint
+	 * @generated
+	 */
+	public YListBindingEndpoint basicGetModelEndpoint() {
+		return modelEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newModelEndpoint
+	 *            the new model endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetModelEndpoint(YListBindingEndpoint newModelEndpoint, NotificationChain msgs) {
+		YListBindingEndpoint oldModelEndpoint = modelEndpoint;
+		modelEndpoint = newModelEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BindingPackage.YLIST_BINDING__MODEL_ENDPOINT, oldModelEndpoint, newModelEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newModelEndpoint
+	 *            the new cached value of the '{@link #getModelEndpoint()
+	 *            <em>Model Endpoint</em>}' containment reference
+	 * @generated
+	 */
+	public void setModelEndpoint(YListBindingEndpoint newModelEndpoint) {
+		if (newModelEndpoint != modelEndpoint) {
+			NotificationChain msgs = null;
+			if (modelEndpoint != null)
+				msgs = ((InternalEObject)modelEndpoint).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YLIST_BINDING__MODEL_ENDPOINT, null, msgs);
+			if (newModelEndpoint != null)
+				msgs = ((InternalEObject)newModelEndpoint).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YLIST_BINDING__MODEL_ENDPOINT, null, msgs);
+			msgs = basicSetModelEndpoint(newModelEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YLIST_BINDING__MODEL_ENDPOINT, newModelEndpoint, newModelEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case BindingPackage.YLIST_BINDING__TARGET_ENDPOINT:
+				return basicSetTargetEndpoint(null, msgs);
+			case BindingPackage.YLIST_BINDING__MODEL_ENDPOINT:
+				return basicSetModelEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YLIST_BINDING__TARGET_ENDPOINT:
+				if (resolve) return getTargetEndpoint();
+				return basicGetTargetEndpoint();
+			case BindingPackage.YLIST_BINDING__MODEL_ENDPOINT:
+				if (resolve) return getModelEndpoint();
+				return basicGetModelEndpoint();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YLIST_BINDING__TARGET_ENDPOINT:
+				setTargetEndpoint((YListBindingEndpoint)newValue);
+				return;
+			case BindingPackage.YLIST_BINDING__MODEL_ENDPOINT:
+				setModelEndpoint((YListBindingEndpoint)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YLIST_BINDING__TARGET_ENDPOINT:
+				setTargetEndpoint((YListBindingEndpoint)null);
+				return;
+			case BindingPackage.YLIST_BINDING__MODEL_ENDPOINT:
+				setModelEndpoint((YListBindingEndpoint)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YLIST_BINDING__TARGET_ENDPOINT:
+				return targetEndpoint != null;
+			case BindingPackage.YLIST_BINDING__MODEL_ENDPOINT:
+				return modelEndpoint != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //YListBindingImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YNoOpListBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YNoOpListBindingEndpointImpl.java
new file mode 100644
index 0000000..9a58d34
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YNoOpListBindingEndpointImpl.java
@@ -0,0 +1,195 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YNo Op List Binding Endpoint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpListBindingEndpointImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YNoOpListBindingEndpointImpl extends YListBindingEndpointImpl
+		implements YNoOpListBindingEndpoint {
+	/**
+	 * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected YElement element;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YNoOpListBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YNO_OP_LIST_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getElement() <em>Element</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YElement getElement() {
+		if (element != null && element.eIsProxy()) {
+			InternalEObject oldElement = (InternalEObject)element;
+			element = (YElement)eResolveProxy(oldElement);
+			if (element != oldElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BindingPackage.YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT, oldElement, element));
+			}
+		}
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y element
+	 * @generated
+	 */
+	public YElement basicGetElement() {
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newElement
+	 *            the new cached value of the '{@link #getElement()
+	 *            <em>Element</em>}' reference
+	 * @generated
+	 */
+	public void setElement(YElement newElement) {
+		YElement oldElement = element;
+		element = newElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT, oldElement, element));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT:
+				if (resolve) return getElement();
+				return basicGetElement();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT:
+				setElement((YElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT:
+				setElement((YElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YNO_OP_LIST_BINDING_ENDPOINT__ELEMENT:
+				return element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#isBindsElement(org.eclipse.osbp.ecview.core.common.model.core.YElement)
+	 */
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return false;
+	}
+
+} // YNoOpListBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YNoOpValueBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YNoOpValueBindingEndpointImpl.java
new file mode 100644
index 0000000..affd406
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YNoOpValueBindingEndpointImpl.java
@@ -0,0 +1,203 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YNo Op Value Binding Endpoint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YNoOpValueBindingEndpointImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YNoOpValueBindingEndpointImpl extends YValueBindingEndpointImpl
+		implements YNoOpValueBindingEndpoint {
+	/**
+	 * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected YElement element;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YNoOpValueBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YNO_OP_VALUE_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getElement() <em>Element</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YElement getElement() {
+		if (element != null && element.eIsProxy()) {
+			InternalEObject oldElement = (InternalEObject)element;
+			element = (YElement)eResolveProxy(oldElement);
+			if (element != oldElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BindingPackage.YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT, oldElement, element));
+			}
+		}
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y element
+	 * @generated
+	 */
+	public YElement basicGetElement() {
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newElement
+	 *            the new cached value of the '{@link #getElement()
+	 *            <em>Element</em>}' reference
+	 * @generated
+	 */
+	public void setElement(YElement newElement) {
+		YElement oldElement = element;
+		element = newElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT, oldElement, element));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT:
+				if (resolve) return getElement();
+				return basicGetElement();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT:
+				setElement((YElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT:
+				setElement((YElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YNO_OP_VALUE_BINDING_ENDPOINT__ELEMENT:
+				return element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint#getBindingIdString()
+	 */
+	@Override
+	public String getBindingIdString() {
+		return "noOPId";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl#isBindsElement(org.eclipse.osbp.ecview.core.common.model.core.YElement)
+	 */
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return false;
+	}
+
+} // YNoOpValueBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YValueBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YValueBindingEndpointImpl.java
new file mode 100644
index 0000000..c0bf008
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YValueBindingEndpointImpl.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YValue Binding Endpoint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class YValueBindingEndpointImpl extends YBindingEndpointImpl
+		implements YValueBindingEndpoint {
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YValueBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YVALUE_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y detail value binding endpoint
+	 * @generated
+	 */
+	public YDetailValueBindingEndpoint createDetailValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> Creates a detail value endpoint. It may be used
+	 * to observe detail values of this value endpoint.<!-- end-user-doc -->
+	 *
+	 * @return the y detail value binding endpoint
+	 * @generated NOT
+	 */
+	public YDetailValueBindingEndpoint createDetailValueEndpoint() {
+		YDetailValueBindingEndpoint result = BindingFactory.eINSTANCE
+				.createYDetailValueBindingEndpoint();
+		result.setMasterObservable(this);
+		return result;
+	}
+
+} // YValueBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YValueBindingImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YValueBindingImpl.java
new file mode 100644
index 0000000..af0d3e0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YValueBindingImpl.java
@@ -0,0 +1,341 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YValue Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingImpl#getTargetEndpoint <em>Target Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingImpl#getModelEndpoint <em>Model Endpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YValueBindingImpl extends YBindingImpl implements YValueBinding {
+	/**
+	 * The cached value of the '{@link #getTargetEndpoint() <em>Target Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YValueBindingEndpoint targetEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getModelEndpoint() <em>Model Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getModelEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YValueBindingEndpoint modelEndpoint;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YValueBindingImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YVALUE_BINDING;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTargetEndpoint()
+	 *         <em>Target Endpoint</em>}' containment reference
+	 * @generated
+	 */
+	public YValueBindingEndpoint getTargetEndpoint() {
+		if (targetEndpoint != null && targetEndpoint.eIsProxy()) {
+			InternalEObject oldTargetEndpoint = (InternalEObject)targetEndpoint;
+			targetEndpoint = (YValueBindingEndpoint)eResolveProxy(oldTargetEndpoint);
+			if (targetEndpoint != oldTargetEndpoint) {
+				InternalEObject newTargetEndpoint = (InternalEObject)targetEndpoint;
+				NotificationChain msgs = oldTargetEndpoint.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT, null, null);
+				if (newTargetEndpoint.eInternalContainer() == null) {
+					msgs = newTargetEndpoint.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT, oldTargetEndpoint, targetEndpoint));
+			}
+		}
+		return targetEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y value binding endpoint
+	 * @generated
+	 */
+	public YValueBindingEndpoint basicGetTargetEndpoint() {
+		return targetEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTargetEndpoint
+	 *            the new target endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetTargetEndpoint(YValueBindingEndpoint newTargetEndpoint, NotificationChain msgs) {
+		YValueBindingEndpoint oldTargetEndpoint = targetEndpoint;
+		targetEndpoint = newTargetEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT, oldTargetEndpoint, newTargetEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTargetEndpoint
+	 *            the new cached value of the '{@link #getTargetEndpoint()
+	 *            <em>Target Endpoint</em>}' containment reference
+	 * @generated
+	 */
+	public void setTargetEndpoint(YValueBindingEndpoint newTargetEndpoint) {
+		if (newTargetEndpoint != targetEndpoint) {
+			NotificationChain msgs = null;
+			if (targetEndpoint != null)
+				msgs = ((InternalEObject)targetEndpoint).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT, null, msgs);
+			if (newTargetEndpoint != null)
+				msgs = ((InternalEObject)newTargetEndpoint).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT, null, msgs);
+			msgs = basicSetTargetEndpoint(newTargetEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT, newTargetEndpoint, newTargetEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getModelEndpoint()
+	 *         <em>Model Endpoint</em>}' containment reference
+	 * @generated
+	 */
+	public YValueBindingEndpoint getModelEndpoint() {
+		if (modelEndpoint != null && modelEndpoint.eIsProxy()) {
+			InternalEObject oldModelEndpoint = (InternalEObject)modelEndpoint;
+			modelEndpoint = (YValueBindingEndpoint)eResolveProxy(oldModelEndpoint);
+			if (modelEndpoint != oldModelEndpoint) {
+				InternalEObject newModelEndpoint = (InternalEObject)modelEndpoint;
+				NotificationChain msgs = oldModelEndpoint.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT, null, null);
+				if (newModelEndpoint.eInternalContainer() == null) {
+					msgs = newModelEndpoint.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT, oldModelEndpoint, modelEndpoint));
+			}
+		}
+		return modelEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y value binding endpoint
+	 * @generated
+	 */
+	public YValueBindingEndpoint basicGetModelEndpoint() {
+		return modelEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newModelEndpoint
+	 *            the new model endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetModelEndpoint(YValueBindingEndpoint newModelEndpoint, NotificationChain msgs) {
+		YValueBindingEndpoint oldModelEndpoint = modelEndpoint;
+		modelEndpoint = newModelEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT, oldModelEndpoint, newModelEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newModelEndpoint
+	 *            the new cached value of the '{@link #getModelEndpoint()
+	 *            <em>Model Endpoint</em>}' containment reference
+	 * @generated
+	 */
+	public void setModelEndpoint(YValueBindingEndpoint newModelEndpoint) {
+		if (newModelEndpoint != modelEndpoint) {
+			NotificationChain msgs = null;
+			if (modelEndpoint != null)
+				msgs = ((InternalEObject)modelEndpoint).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT, null, msgs);
+			if (newModelEndpoint != null)
+				msgs = ((InternalEObject)newModelEndpoint).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT, null, msgs);
+			msgs = basicSetModelEndpoint(newModelEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT, newModelEndpoint, newModelEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT:
+				return basicSetTargetEndpoint(null, msgs);
+			case BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT:
+				return basicSetModelEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT:
+				if (resolve) return getTargetEndpoint();
+				return basicGetTargetEndpoint();
+			case BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT:
+				if (resolve) return getModelEndpoint();
+				return basicGetModelEndpoint();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT:
+				setTargetEndpoint((YValueBindingEndpoint)newValue);
+				return;
+			case BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT:
+				setModelEndpoint((YValueBindingEndpoint)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT:
+				setTargetEndpoint((YValueBindingEndpoint)null);
+				return;
+			case BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT:
+				setModelEndpoint((YValueBindingEndpoint)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YVALUE_BINDING__TARGET_ENDPOINT:
+				return targetEndpoint != null;
+			case BindingPackage.YVALUE_BINDING__MODEL_ENDPOINT:
+				return modelEndpoint != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //YValueBindingImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YVisibilityProcessorValueBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YVisibilityProcessorValueBindingEndpointImpl.java
new file mode 100644
index 0000000..460ea2f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/impl/YVisibilityProcessorValueBindingEndpointImpl.java
@@ -0,0 +1,222 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YVisibility Processor Value Binding Endpoint</b></em>'. <!--
+ * end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YVisibilityProcessorValueBindingEndpointImpl#getProcessorInstance <em>Processor Instance</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.binding.impl.YVisibilityProcessorValueBindingEndpointImpl#getProperty <em>Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YVisibilityProcessorValueBindingEndpointImpl extends
+		YValueBindingEndpointImpl implements
+		YVisibilityProcessorValueBindingEndpoint {
+	/**
+	 * The default value of the '{@link #getProcessorInstance() <em>Processor Instance</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getProcessorInstance()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object PROCESSOR_INSTANCE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getProcessorInstance() <em>Processor Instance</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getProcessorInstance()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object processorInstance = PROCESSOR_INSTANCE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getProperty() <em>Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getProperty() <em>Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String property = PROPERTY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YVisibilityProcessorValueBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BindingPackage.Literals.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getProcessorInstance() {
+		return processorInstance;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProcessorInstance(Object newProcessorInstance) {
+		Object oldProcessorInstance = processorInstance;
+		processorInstance = newProcessorInstance;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE, oldProcessorInstance, processorInstance));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getProperty() {
+		return property;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProperty(String newProperty) {
+		String oldProperty = property;
+		property = newProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY, oldProperty, property));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE:
+				return getProcessorInstance();
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY:
+				return getProperty();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE:
+				setProcessorInstance(newValue);
+				return;
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY:
+				setProperty((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE:
+				setProcessorInstance(PROCESSOR_INSTANCE_EDEFAULT);
+				return;
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY:
+				setProperty(PROPERTY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROCESSOR_INSTANCE:
+				return PROCESSOR_INSTANCE_EDEFAULT == null ? processorInstance != null : !PROCESSOR_INSTANCE_EDEFAULT.equals(processorInstance);
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT__PROPERTY:
+				return PROPERTY_EDEFAULT == null ? property != null : !PROPERTY_EDEFAULT.equals(property);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (processorInstance: ");
+		result.append(processorInstance);
+		result.append(", property: ");
+		result.append(property);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return false;
+	}
+
+	@Override
+	public String getBindingIdString() {
+		return BindingIdUtil.getVisibilityProcessorId(getProperty());
+	}
+
+} // YVisibilityProcessorValueBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/util/BindingAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/util/BindingAdapterFactory.java
new file mode 100644
index 0000000..53d6d12
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/util/BindingAdapterFactory.java
@@ -0,0 +1,430 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage
+ * @generated
+ */
+public class BindingAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static BindingPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BindingAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = BindingPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BindingSwitch<Adapter> modelSwitch =
+		new BindingSwitch<Adapter>() {
+			@Override
+			public Adapter caseYBindingSet(YBindingSet object) {
+				return createYBindingSetAdapter();
+			}
+			@Override
+			public Adapter caseYBindingEndpoint(YBindingEndpoint object) {
+				return createYBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYValueBindingEndpoint(YValueBindingEndpoint object) {
+				return createYValueBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYBeanValueBindingEndpoint(YBeanValueBindingEndpoint object) {
+				return createYBeanValueBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYDetailValueBindingEndpoint(YDetailValueBindingEndpoint object) {
+				return createYDetailValueBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYListBindingEndpoint(YListBindingEndpoint object) {
+				return createYListBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYBinding(YBinding object) {
+				return createYBindingAdapter();
+			}
+			@Override
+			public Adapter caseYValueBinding(YValueBinding object) {
+				return createYValueBindingAdapter();
+			}
+			@Override
+			public Adapter caseYListBinding(YListBinding object) {
+				return createYListBindingAdapter();
+			}
+			@Override
+			public Adapter caseYEnumListBindingEndpoint(YEnumListBindingEndpoint object) {
+				return createYEnumListBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYECViewModelValueBindingEndpoint(YECViewModelValueBindingEndpoint object) {
+				return createYECViewModelValueBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYECViewModelListBindingEndpoint(YECViewModelListBindingEndpoint object) {
+				return createYECViewModelListBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYVisibilityProcessorValueBindingEndpoint(YVisibilityProcessorValueBindingEndpoint object) {
+				return createYVisibilityProcessorValueBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYNoOpValueBindingEndpoint(YNoOpValueBindingEndpoint object) {
+				return createYNoOpValueBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYNoOpListBindingEndpoint(YNoOpListBindingEndpoint object) {
+				return createYNoOpListBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYTaggable(YTaggable object) {
+				return createYTaggableAdapter();
+			}
+			@Override
+			public Adapter caseYElement(YElement object) {
+				return createYElementAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet <em>YBinding Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet
+	 * @generated
+	 */
+	public Adapter createYBindingSetAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint <em>YBinding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint <em>YValue Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYValueBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint <em>YBean Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYBeanValueBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint <em>YList Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYListBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding <em>YBinding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBinding
+	 * @generated
+	 */
+	public Adapter createYBindingAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding <em>YValue Binding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding
+	 * @generated
+	 */
+	public Adapter createYValueBindingAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBinding <em>YList Binding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YListBinding
+	 * @generated
+	 */
+	public Adapter createYListBindingAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint <em>YEnum List Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYEnumListBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint <em>YEC View Model Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYECViewModelValueBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint <em>YEC View Model List Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYECViewModelListBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint <em>YVisibility Processor Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYVisibilityProcessorValueBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint <em>YNo Op Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYNoOpValueBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint <em>YNo Op List Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYNoOpListBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+	 * @generated
+	 */
+	public Adapter createYTaggableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint <em>YDetail Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYDetailValueBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+	 * @generated
+	 */
+	public Adapter createYElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //BindingAdapterFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/util/BindingSwitch.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/util/BindingSwitch.java
new file mode 100644
index 0000000..2e2cb22
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/util/BindingSwitch.java
@@ -0,0 +1,507 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YNoOpValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage
+ * @generated
+ */
+public class BindingSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static BindingPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BindingSwitch() {
+		if (modelPackage == null) {
+			modelPackage = BindingPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case BindingPackage.YBINDING_SET: {
+				YBindingSet yBindingSet = (YBindingSet)theEObject;
+				T result = caseYBindingSet(yBindingSet);
+				if (result == null) result = caseYElement(yBindingSet);
+				if (result == null) result = caseYTaggable(yBindingSet);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YBINDING_ENDPOINT: {
+				YBindingEndpoint yBindingEndpoint = (YBindingEndpoint)theEObject;
+				T result = caseYBindingEndpoint(yBindingEndpoint);
+				if (result == null) result = caseYElement(yBindingEndpoint);
+				if (result == null) result = caseYTaggable(yBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YVALUE_BINDING_ENDPOINT: {
+				YValueBindingEndpoint yValueBindingEndpoint = (YValueBindingEndpoint)theEObject;
+				T result = caseYValueBindingEndpoint(yValueBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yValueBindingEndpoint);
+				if (result == null) result = caseYElement(yValueBindingEndpoint);
+				if (result == null) result = caseYTaggable(yValueBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YBEAN_VALUE_BINDING_ENDPOINT: {
+				YBeanValueBindingEndpoint yBeanValueBindingEndpoint = (YBeanValueBindingEndpoint)theEObject;
+				T result = caseYBeanValueBindingEndpoint(yBeanValueBindingEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yBeanValueBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yBeanValueBindingEndpoint);
+				if (result == null) result = caseYElement(yBeanValueBindingEndpoint);
+				if (result == null) result = caseYTaggable(yBeanValueBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YDETAIL_VALUE_BINDING_ENDPOINT: {
+				YDetailValueBindingEndpoint yDetailValueBindingEndpoint = (YDetailValueBindingEndpoint)theEObject;
+				T result = caseYDetailValueBindingEndpoint(yDetailValueBindingEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yDetailValueBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yDetailValueBindingEndpoint);
+				if (result == null) result = caseYElement(yDetailValueBindingEndpoint);
+				if (result == null) result = caseYTaggable(yDetailValueBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YLIST_BINDING_ENDPOINT: {
+				YListBindingEndpoint yListBindingEndpoint = (YListBindingEndpoint)theEObject;
+				T result = caseYListBindingEndpoint(yListBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yListBindingEndpoint);
+				if (result == null) result = caseYElement(yListBindingEndpoint);
+				if (result == null) result = caseYTaggable(yListBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YBINDING: {
+				YBinding yBinding = (YBinding)theEObject;
+				T result = caseYBinding(yBinding);
+				if (result == null) result = caseYElement(yBinding);
+				if (result == null) result = caseYTaggable(yBinding);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YVALUE_BINDING: {
+				YValueBinding yValueBinding = (YValueBinding)theEObject;
+				T result = caseYValueBinding(yValueBinding);
+				if (result == null) result = caseYBinding(yValueBinding);
+				if (result == null) result = caseYElement(yValueBinding);
+				if (result == null) result = caseYTaggable(yValueBinding);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YLIST_BINDING: {
+				YListBinding yListBinding = (YListBinding)theEObject;
+				T result = caseYListBinding(yListBinding);
+				if (result == null) result = caseYBinding(yListBinding);
+				if (result == null) result = caseYElement(yListBinding);
+				if (result == null) result = caseYTaggable(yListBinding);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YENUM_LIST_BINDING_ENDPOINT: {
+				YEnumListBindingEndpoint yEnumListBindingEndpoint = (YEnumListBindingEndpoint)theEObject;
+				T result = caseYEnumListBindingEndpoint(yEnumListBindingEndpoint);
+				if (result == null) result = caseYListBindingEndpoint(yEnumListBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yEnumListBindingEndpoint);
+				if (result == null) result = caseYElement(yEnumListBindingEndpoint);
+				if (result == null) result = caseYTaggable(yEnumListBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YEC_VIEW_MODEL_VALUE_BINDING_ENDPOINT: {
+				YECViewModelValueBindingEndpoint yecViewModelValueBindingEndpoint = (YECViewModelValueBindingEndpoint)theEObject;
+				T result = caseYECViewModelValueBindingEndpoint(yecViewModelValueBindingEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yecViewModelValueBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yecViewModelValueBindingEndpoint);
+				if (result == null) result = caseYElement(yecViewModelValueBindingEndpoint);
+				if (result == null) result = caseYTaggable(yecViewModelValueBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YEC_VIEW_MODEL_LIST_BINDING_ENDPOINT: {
+				YECViewModelListBindingEndpoint yecViewModelListBindingEndpoint = (YECViewModelListBindingEndpoint)theEObject;
+				T result = caseYECViewModelListBindingEndpoint(yecViewModelListBindingEndpoint);
+				if (result == null) result = caseYListBindingEndpoint(yecViewModelListBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yecViewModelListBindingEndpoint);
+				if (result == null) result = caseYElement(yecViewModelListBindingEndpoint);
+				if (result == null) result = caseYTaggable(yecViewModelListBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YVISIBILITY_PROCESSOR_VALUE_BINDING_ENDPOINT: {
+				YVisibilityProcessorValueBindingEndpoint yVisibilityProcessorValueBindingEndpoint = (YVisibilityProcessorValueBindingEndpoint)theEObject;
+				T result = caseYVisibilityProcessorValueBindingEndpoint(yVisibilityProcessorValueBindingEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yVisibilityProcessorValueBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yVisibilityProcessorValueBindingEndpoint);
+				if (result == null) result = caseYElement(yVisibilityProcessorValueBindingEndpoint);
+				if (result == null) result = caseYTaggable(yVisibilityProcessorValueBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YNO_OP_VALUE_BINDING_ENDPOINT: {
+				YNoOpValueBindingEndpoint yNoOpValueBindingEndpoint = (YNoOpValueBindingEndpoint)theEObject;
+				T result = caseYNoOpValueBindingEndpoint(yNoOpValueBindingEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yNoOpValueBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yNoOpValueBindingEndpoint);
+				if (result == null) result = caseYElement(yNoOpValueBindingEndpoint);
+				if (result == null) result = caseYTaggable(yNoOpValueBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BindingPackage.YNO_OP_LIST_BINDING_ENDPOINT: {
+				YNoOpListBindingEndpoint yNoOpListBindingEndpoint = (YNoOpListBindingEndpoint)theEObject;
+				T result = caseYNoOpListBindingEndpoint(yNoOpListBindingEndpoint);
+				if (result == null) result = caseYListBindingEndpoint(yNoOpListBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yNoOpListBindingEndpoint);
+				if (result == null) result = caseYElement(yNoOpListBindingEndpoint);
+				if (result == null) result = caseYTaggable(yNoOpListBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBinding Set</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBinding Set</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBindingSet(YBindingSet object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBinding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBinding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBindingEndpoint(YBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YValue Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YValue Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYValueBindingEndpoint(YValueBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBean Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBean Value Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBeanValueBindingEndpoint(YBeanValueBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YList Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YList Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYListBindingEndpoint(YListBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBinding</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBinding</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBinding(YBinding object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YValue Binding</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YValue Binding</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYValueBinding(YValueBinding object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YList Binding</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YList Binding</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYListBinding(YListBinding object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEnum List Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEnum List Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEnumListBindingEndpoint(YEnumListBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEC View Model Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEC View Model Value Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYECViewModelValueBindingEndpoint(YECViewModelValueBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEC View Model List Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEC View Model List Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYECViewModelListBindingEndpoint(YECViewModelListBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YVisibility Processor Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YVisibility Processor Value Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYVisibilityProcessorValueBindingEndpoint(YVisibilityProcessorValueBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YNo Op Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YNo Op Value Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYNoOpValueBindingEndpoint(YNoOpValueBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YNo Op List Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YNo Op List Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYNoOpListBindingEndpoint(YNoOpListBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTaggable(YTaggable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDetail Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDetail Value Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDetailValueBindingEndpoint(YDetailValueBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYElement(YElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //BindingSwitch
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/util/IBoundElementItemProvider.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/util/IBoundElementItemProvider.java
new file mode 100644
index 0000000..1147e9b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/binding/util/IBoundElementItemProvider.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.binding.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+
+// TODO: Auto-generated Javadoc
+/**
+ * ItemProvider which is used to determine information about existing bindings.
+ */
+public interface IBoundElementItemProvider {
+
+	/**
+	 * Returns the bound element for the given object. Or <code>null</code> if
+	 * no EObject was bound.
+	 *
+	 * @param object
+	 *            the object
+	 * @return the bound element
+	 */
+	EObject getBoundElement(YBindingEndpoint object);
+
+	/**
+	 * Returns the first bound feature, or <code>null</code> if no EObject was
+	 * bound.
+	 * <p>
+	 * If more then one features are used for a nested binding, then the first
+	 * one will be returned.
+	 *
+	 * @param object
+	 *            the object
+	 * @return the first bound feature
+	 */
+	EStructuralFeature getFirstBoundFeature(YBindingEndpoint object);
+
+	/**
+	 * Returns the list of bound features, or an empty list if no EObject was
+	 * bound.
+	 * <p>
+	 * The result is ordered in the way, the features are applied to the
+	 * bindings.
+	 *
+	 * @param object
+	 *            the object
+	 * @return the bound feature list
+	 */
+	List<EStructuralFeature> getBoundFeatureList(YBindingEndpoint object);
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/CoreModelFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/CoreModelFactory.java
new file mode 100644
index 0000000..31b3ac0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/CoreModelFactory.java
@@ -0,0 +1,257 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage
+ * @generated
+ */
+public interface CoreModelFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	CoreModelFactory eINSTANCE = org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>YLayout</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YLayout</em>'.
+	 * @generated
+	 */
+	YLayout createYLayout();
+
+	/**
+	 * Returns a new object of class '<em>YHelper Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YHelper Layout</em>'.
+	 * @generated
+	 */
+	YHelperLayout createYHelperLayout();
+
+	/**
+	 * Returns a new object of class '<em>YField</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YField</em>'.
+	 * @generated
+	 */
+	YField createYField();
+
+	/**
+	 * Returns a new object of class '<em>YView</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YView</em>'.
+	 * @generated
+	 */
+	YView createYView();
+
+	/**
+	 * Returns a new object of class '<em>YView Set</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YView Set</em>'.
+	 * @generated
+	 */
+	YViewSet createYViewSet();
+
+	/**
+	 * Returns a new object of class '<em>YBean Slot</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBean Slot</em>'.
+	 * @generated
+	 */
+	YBeanSlot createYBeanSlot();
+
+	/**
+	 * Returns a new object of class '<em>YDetail Bean Slot</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDetail Bean Slot</em>'.
+	 * @generated
+	 */
+	YDetailBeanSlot createYDetailBeanSlot();
+
+	/**
+	 * Returns a new object of class '<em>YDialog</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDialog</em>'.
+	 * @generated
+	 */
+	YDialog createYDialog();
+
+	/**
+	 * Returns a new object of class '<em>YAction</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YAction</em>'.
+	 * @generated
+	 */
+	YAction createYAction();
+
+	/**
+	 * Returns a new object of class '<em>YContext Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YContext Value Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YContextValueBindingEndpoint createYContextValueBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YBean Slot Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBean Slot Value Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YBeanSlotValueBindingEndpoint createYBeanSlotValueBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YBean Slot List Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBean Slot List Binding Endpoint</em>'.
+	 * @generated
+	 */
+	YBeanSlotListBindingEndpoint createYBeanSlotListBindingEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YEmbeddable Value Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEmbeddable Value Endpoint</em>'.
+	 * @generated
+	 */
+	YEmbeddableValueEndpoint createYEmbeddableValueEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YEmbeddable Selection Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEmbeddable Selection Endpoint</em>'.
+	 * @generated
+	 */
+	YEmbeddableSelectionEndpoint createYEmbeddableSelectionEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YEmbeddable Multi Selection Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEmbeddable Multi Selection Endpoint</em>'.
+	 * @generated
+	 */
+	YEmbeddableMultiSelectionEndpoint createYEmbeddableMultiSelectionEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YEmbeddable Collection Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEmbeddable Collection Endpoint</em>'.
+	 * @generated
+	 */
+	YEmbeddableCollectionEndpoint createYEmbeddableCollectionEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YActivated Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YActivated Endpoint</em>'.
+	 * @generated
+	 */
+	YActivatedEndpoint createYActivatedEndpoint();
+
+	/**
+	 * Returns a new object of class '<em>YDt Wrapper</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDt Wrapper</em>'.
+	 * @generated
+	 */
+	YDtWrapper createYDtWrapper();
+
+	/**
+	 * Returns a new object of class '<em>YCommand Set</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YCommand Set</em>'.
+	 * @generated
+	 */
+	YCommandSet createYCommandSet();
+
+	/**
+	 * Returns a new object of class '<em>YOpen Dialog Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YOpen Dialog Command</em>'.
+	 * @generated
+	 */
+	YOpenDialogCommand createYOpenDialogCommand();
+
+	/**
+	 * Returns a new object of class '<em>YExposed Action</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YExposed Action</em>'.
+	 * @generated
+	 */
+	YExposedAction createYExposedAction();
+
+	/**
+	 * Returns a new object of class '<em>YSend Event Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YSend Event Command</em>'.
+	 * @generated
+	 */
+	YSendEventCommand createYSendEventCommand();
+
+	/**
+	 * Returns a new object of class '<em>YKey Stroke Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YKey Stroke Definition</em>'.
+	 * @generated
+	 */
+	YKeyStrokeDefinition createYKeyStrokeDefinition();
+
+	/**
+	 * Returns a new object of class '<em>YDelegate Converter</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDelegate Converter</em>'.
+	 * @generated
+	 */
+	YDelegateConverter createYDelegateConverter();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	CoreModelPackage getCoreModelPackage();
+
+} //UiModelFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/CoreModelPackage.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/CoreModelPackage.java
new file mode 100644
index 0000000..8c4480b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/CoreModelPackage.java
@@ -0,0 +1,7186 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface CoreModelPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "core";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/ecview/v1/core/view";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "core";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	CoreModelPackage eINSTANCE = org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYTaggable()
+	 * @generated
+	 */
+	int YTAGGABLE = 49;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAGGABLE__TAGS = 0;
+
+	/**
+	 * The number of structural features of the '<em>YTaggable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAGGABLE_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYElement()
+	 * @generated
+	 */
+	int YELEMENT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YELEMENT__TAGS = YTAGGABLE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YELEMENT__ID = YTAGGABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YELEMENT__NAME = YTAGGABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YELEMENT__PROPERTIES = YTAGGABLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YElement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YELEMENT_FEATURE_COUNT = YTAGGABLE_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl <em>YString To String Map</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYStringToStringMap()
+	 * @generated
+	 */
+	int YSTRING_TO_STRING_MAP = 1;
+
+	/**
+	 * The feature id for the '<em><b>Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSTRING_TO_STRING_MAP__KEY = 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSTRING_TO_STRING_MAP__VALUE = 1;
+
+	/**
+	 * The number of structural features of the '<em>YString To String Map</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSTRING_TO_STRING_MAP_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl <em>YEmbeddable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddable()
+	 * @generated
+	 */
+	int YEMBEDDABLE = 11;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__CSS_CLASS = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__CSS_ID = YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__INITIAL_VISIBLE = YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__VISIBLE = YELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__AUTHORIZATION_GROUP = YELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__AUTHORIZATION_ID = YELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__ORPHAN_DATATYPES = YELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS = YELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__MEMENTO_ENABLED = YELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__MEMENTO_ID = YELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__LABEL = YELEMENT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE__LABEL_I1_8N_KEY = YELEMENT_FEATURE_COUNT + 11;
+
+	/**
+	 * The number of structural features of the '<em>YEmbeddable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 12;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl <em>YLayout</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYLayout()
+	 * @generated
+	 */
+	int YLAYOUT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__TAGS = YEMBEDDABLE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__ID = YEMBEDDABLE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__NAME = YEMBEDDABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__PROPERTIES = YEMBEDDABLE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__CSS_CLASS = YEMBEDDABLE__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__CSS_ID = YEMBEDDABLE__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__INITIAL_VISIBLE = YEMBEDDABLE__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__VISIBLE = YEMBEDDABLE__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__AUTHORIZATION_GROUP = YEMBEDDABLE__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__AUTHORIZATION_ID = YEMBEDDABLE__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__ORPHAN_DATATYPES = YEMBEDDABLE__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__ORPHAN_DATADESCRIPTIONS = YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__MEMENTO_ENABLED = YEMBEDDABLE__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__MEMENTO_ID = YEMBEDDABLE__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__LABEL = YEMBEDDABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__LABEL_I1_8N_KEY = YEMBEDDABLE__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__INITIAL_EDITABLE = YEMBEDDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__EDITABLE = YEMBEDDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__INITIAL_ENABLED = YEMBEDDABLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__ENABLED = YEMBEDDABLE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT__ELEMENTS = YEMBEDDABLE_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>YLayout</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLAYOUT_FEATURE_COUNT = YEMBEDDABLE_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YHelperLayoutImpl <em>YHelper Layout</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YHelperLayoutImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYHelperLayout()
+	 * @generated
+	 */
+	int YHELPER_LAYOUT = 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl <em>YField</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYField()
+	 * @generated
+	 */
+	int YFIELD = 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl <em>YView</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYView()
+	 * @generated
+	 */
+	int YVIEW = 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl <em>YView Set</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYViewSet()
+	 * @generated
+	 */
+	int YVIEW_SET = 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl <em>YBean Slot</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYBeanSlot()
+	 * @generated
+	 */
+	int YBEAN_SLOT = 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble <em>YCss Able</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCssAble
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCssAble()
+	 * @generated
+	 */
+	int YCSS_ABLE = 13;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YMarginable <em>YMarginable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMarginable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYMarginable()
+	 * @generated
+	 */
+	int YMARGINABLE = 14;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSpacingable <em>YSpacingable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSpacingable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYSpacingable()
+	 * @generated
+	 */
+	int YSPACINGABLE = 15;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable <em>YHeightable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHeightable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYHeightable()
+	 * @generated
+	 */
+	int YHEIGHTABLE = 16;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable <em>YWidthable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YWidthable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYWidthable()
+	 * @generated
+	 */
+	int YWIDTHABLE = 17;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable <em>YActivateable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivateable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYActivateable()
+	 * @generated
+	 */
+	int YACTIVATEABLE = 18;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable <em>YVisibleable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YVisibleable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYVisibleable()
+	 * @generated
+	 */
+	int YVISIBLEABLE = 19;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable <em>YEditable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEditable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEditable()
+	 * @generated
+	 */
+	int YEDITABLE = 20;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable <em>YEnable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEnable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEnable()
+	 * @generated
+	 */
+	int YENABLE = 21;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl <em>YAction</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYAction()
+	 * @generated
+	 */
+	int YACTION = 23;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBindable <em>YBindable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBindable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYBindable()
+	 * @generated
+	 */
+	int YBINDABLE = 24;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider <em>YHelper Layout Provider</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYHelperLayoutProvider()
+	 * @generated
+	 */
+	int YHELPER_LAYOUT_PROVIDER = 3;
+
+	/**
+	 * The number of structural features of the '<em>YHelper Layout Provider</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT_PROVIDER_FEATURE_COUNT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__TAGS = YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__ID = YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__NAME = YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__PROPERTIES = YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__CSS_CLASS = YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__CSS_ID = YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__INITIAL_VISIBLE = YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__VISIBLE = YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__AUTHORIZATION_GROUP = YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__AUTHORIZATION_ID = YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__ORPHAN_DATATYPES = YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__ORPHAN_DATADESCRIPTIONS = YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__MEMENTO_ENABLED = YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__MEMENTO_ID = YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__LABEL = YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__LABEL_I1_8N_KEY = YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__INITIAL_EDITABLE = YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__EDITABLE = YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__INITIAL_ENABLED = YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__ENABLED = YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__ELEMENTS = YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Virtual Elements</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT__VIRTUAL_ELEMENTS = YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YHelper Layout</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHELPER_LAYOUT_FEATURE_COUNT = YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__TAGS = YEMBEDDABLE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__ID = YEMBEDDABLE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__NAME = YEMBEDDABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__PROPERTIES = YEMBEDDABLE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__CSS_CLASS = YEMBEDDABLE__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__CSS_ID = YEMBEDDABLE__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__INITIAL_VISIBLE = YEMBEDDABLE__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__VISIBLE = YEMBEDDABLE__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__AUTHORIZATION_GROUP = YEMBEDDABLE__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__AUTHORIZATION_ID = YEMBEDDABLE__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__ORPHAN_DATATYPES = YEMBEDDABLE__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__ORPHAN_DATADESCRIPTIONS = YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__MEMENTO_ENABLED = YEMBEDDABLE__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__MEMENTO_ID = YEMBEDDABLE__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__LABEL = YEMBEDDABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__LABEL_I1_8N_KEY = YEMBEDDABLE__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__INITIAL_EDITABLE = YEMBEDDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__EDITABLE = YEMBEDDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__INITIAL_ENABLED = YEMBEDDABLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__ENABLED = YEMBEDDABLE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__TAB_INDEX = YEMBEDDABLE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__VALIDATORS = YEMBEDDABLE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__INTERNAL_VALIDATORS = YEMBEDDABLE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD__CONVERTER = YEMBEDDABLE_FEATURE_COUNT + 7;
+
+	/**
+	 * The number of structural features of the '<em>YField</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD_FEATURE_COUNT = YEMBEDDABLE_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__CSS_CLASS = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__CSS_ID = YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Margin</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__MARGIN = YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Root</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__ROOT = YELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>View Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__VIEW_NAME = YELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__VERSION = YELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__CONTENT = YELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Binding Set</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__BINDING_SET = YELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Bean Slots</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__BEAN_SLOTS = YELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Command Set</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__COMMAND_SET = YELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Dialogs</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__DIALOGS = YELEMENT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Device Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__DEVICE_TYPE = YELEMENT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Content Alignment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__CONTENT_ALIGNMENT = YELEMENT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Visibility Processors</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__VISIBILITY_PROCESSORS = YELEMENT_FEATURE_COUNT + 13;
+
+	/**
+	 * The feature id for the '<em><b>Transient Visibility Processors</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__TRANSIENT_VISIBILITY_PROCESSORS = YELEMENT_FEATURE_COUNT + 14;
+
+	/**
+	 * The feature id for the '<em><b>Exposed Actions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__EXPOSED_ACTIONS = YELEMENT_FEATURE_COUNT + 15;
+
+	/**
+	 * The feature id for the '<em><b>Shared State Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__SHARED_STATE_GROUP = YELEMENT_FEATURE_COUNT + 16;
+
+	/**
+	 * The feature id for the '<em><b>Category</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__CATEGORY = YELEMENT_FEATURE_COUNT + 17;
+
+	/**
+	 * The feature id for the '<em><b>Initial Focus</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__INITIAL_FOCUS = YELEMENT_FEATURE_COUNT + 18;
+
+	/**
+	 * The feature id for the '<em><b>Current Focus</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__CURRENT_FOCUS = YELEMENT_FEATURE_COUNT + 19;
+
+	/**
+	 * The feature id for the '<em><b>Disabled Elements</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__DISABLED_ELEMENTS = YELEMENT_FEATURE_COUNT + 20;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Store</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW__AUTHORIZATION_STORE = YELEMENT_FEATURE_COUNT + 21;
+
+	/**
+	 * The number of structural features of the '<em>YView</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 22;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW_SET__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW_SET__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW_SET__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW_SET__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Views</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW_SET__VIEWS = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Bean Slots</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW_SET__BEAN_SLOTS = YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YView Set</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVIEW_SET_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer <em>YAlignment Container</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYAlignmentContainer()
+	 * @generated
+	 */
+	int YALIGNMENT_CONTAINER = 8;
+
+	/**
+	 * The number of structural features of the '<em>YAlignment Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YALIGNMENT_CONTAINER_FEATURE_COUNT = 0;
+
+	/**
+	 * The number of structural features of the '<em>YBindable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBINDABLE_FEATURE_COUNT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT__TAGS = YBINDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT__NAME = YBINDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Value Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT__VALUE_TYPE = YBINDABLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME = YBINDABLE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Event Topic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT__EVENT_TOPIC = YBINDABLE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Redirect Events</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT__REDIRECT_EVENTS = YBINDABLE_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>YBean Slot</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_FEATURE_COUNT = YBINDABLE_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDetailBeanSlotImpl <em>YDetail Bean Slot</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YDetailBeanSlotImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDetailBeanSlot()
+	 * @generated
+	 */
+	int YDETAIL_BEAN_SLOT = 10;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_BEAN_SLOT__TAGS = YBEAN_SLOT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_BEAN_SLOT__NAME = YBEAN_SLOT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Value Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_BEAN_SLOT__VALUE_TYPE = YBEAN_SLOT__VALUE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Value Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_BEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME = YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Event Topic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_BEAN_SLOT__EVENT_TOPIC = YBEAN_SLOT__EVENT_TOPIC;
+
+	/**
+	 * The feature id for the '<em><b>Redirect Events</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_BEAN_SLOT__REDIRECT_EVENTS = YBEAN_SLOT__REDIRECT_EVENTS;
+
+	/**
+	 * The feature id for the '<em><b>Master Bean Slot</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT = YBEAN_SLOT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_BEAN_SLOT__PROPERTY_PATH = YBEAN_SLOT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YDetail Bean Slot</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDETAIL_BEAN_SLOT_FEATURE_COUNT = YBEAN_SLOT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl <em>YDialog</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDialog()
+	 * @generated
+	 */
+	int YDIALOG = 12;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__VALUE_BINDING_ENDPOINT = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__CSS_CLASS = YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__CSS_ID = YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__CONTENT = YELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Modal</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__MODAL = YELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Resizeable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__RESIZEABLE = YELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Draggable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__DRAGGABLE = YELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Closable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__CLOSABLE = YELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__VALUE = YELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__TYPE = YELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__EMF_NS_URI = YELEMENT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__TYPE_QUALIFIED_NAME = YELEMENT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG__DATADESCRIPTION = YELEMENT_FEATURE_COUNT + 12;
+
+	/**
+	 * The number of structural features of the '<em>YDialog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDIALOG_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 13;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_ABLE__CSS_CLASS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_ABLE__CSS_ID = 1;
+
+	/**
+	 * The number of structural features of the '<em>YCss Able</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_ABLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Margin</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMARGINABLE__MARGIN = 0;
+
+	/**
+	 * The number of structural features of the '<em>YMarginable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMARGINABLE_FEATURE_COUNT = 1;
+
+	/**
+	 * The feature id for the '<em><b>Spacing</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPACINGABLE__SPACING = 0;
+
+	/**
+	 * The number of structural features of the '<em>YSpacingable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPACINGABLE_FEATURE_COUNT = 1;
+
+	/**
+	 * The feature id for the '<em><b>Height</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHEIGHTABLE__HEIGHT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Height Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHEIGHTABLE__HEIGHT_UNIT = 1;
+
+	/**
+	 * The number of structural features of the '<em>YHeightable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHEIGHTABLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Width</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YWIDTHABLE__WIDTH = 0;
+
+	/**
+	 * The feature id for the '<em><b>Width Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YWIDTHABLE__WIDTH_UNIT = 1;
+
+	/**
+	 * The number of structural features of the '<em>YWidthable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YWIDTHABLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Initial Activated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTIVATEABLE__INITIAL_ACTIVATED = YBINDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Activated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTIVATEABLE__ACTIVATED = YBINDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YActivateable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTIVATEABLE_FEATURE_COUNT = YBINDABLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBLEABLE__INITIAL_VISIBLE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBLEABLE__VISIBLE = 1;
+
+	/**
+	 * The number of structural features of the '<em>YVisibleable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBLEABLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEDITABLE__INITIAL_EDITABLE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEDITABLE__EDITABLE = 1;
+
+	/**
+	 * The number of structural features of the '<em>YEditable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEDITABLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENABLE__INITIAL_ENABLED = 0;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENABLE__ENABLED = 1;
+
+	/**
+	 * The number of structural features of the '<em>YEnable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENABLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YFocusable <em>YFocusable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YFocusable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYFocusable()
+	 * @generated
+	 */
+	int YFOCUSABLE = 22;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFOCUSABLE__TAB_INDEX = 0;
+
+	/**
+	 * The number of structural features of the '<em>YFocusable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFOCUSABLE_FEATURE_COUNT = 1;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__TAGS = YEMBEDDABLE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__ID = YEMBEDDABLE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__NAME = YEMBEDDABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__PROPERTIES = YEMBEDDABLE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__CSS_CLASS = YEMBEDDABLE__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__CSS_ID = YEMBEDDABLE__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__INITIAL_VISIBLE = YEMBEDDABLE__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__VISIBLE = YEMBEDDABLE__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__AUTHORIZATION_GROUP = YEMBEDDABLE__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__AUTHORIZATION_ID = YEMBEDDABLE__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__ORPHAN_DATATYPES = YEMBEDDABLE__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__ORPHAN_DATADESCRIPTIONS = YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__MEMENTO_ENABLED = YEMBEDDABLE__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__MEMENTO_ID = YEMBEDDABLE__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__LABEL = YEMBEDDABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__LABEL_I1_8N_KEY = YEMBEDDABLE__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__INITIAL_ENABLED = YEMBEDDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION__ENABLED = YEMBEDDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YAction</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTION_FEATURE_COUNT = YEMBEDDABLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YValueBindable <em>YValue Bindable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YValueBindable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYValueBindable()
+	 * @generated
+	 */
+	int YVALUE_BINDABLE = 25;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT = YBINDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YValue Bindable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALUE_BINDABLE_FEATURE_COUNT = YBINDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable <em>YSelection Bindable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYSelectionBindable()
+	 * @generated
+	 */
+	int YSELECTION_BINDABLE = 26;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT = YBINDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YSelection Bindable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSELECTION_BINDABLE_FEATURE_COUNT = YBINDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable <em>YMulti Selection Bindable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYMultiSelectionBindable()
+	 * @generated
+	 */
+	int YMULTI_SELECTION_BINDABLE = 27;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT = YBINDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YMulti Selection Bindable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMULTI_SELECTION_BINDABLE_FEATURE_COUNT = YBINDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable <em>YCollection Bindable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCollectionBindable()
+	 * @generated
+	 */
+	int YCOLLECTION_BINDABLE = 28;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT = YBINDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YCollection Bindable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLLECTION_BINDABLE_FEATURE_COUNT = YBINDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YContextValueBindingEndpointImpl <em>YContext Value Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YContextValueBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYContextValueBindingEndpoint()
+	 * @generated
+	 */
+	int YCONTEXT_VALUE_BINDING_ENDPOINT = 29;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONTEXT_VALUE_BINDING_ENDPOINT__TAGS = BindingPackage.YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONTEXT_VALUE_BINDING_ENDPOINT__ID = BindingPackage.YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONTEXT_VALUE_BINDING_ENDPOINT__NAME = BindingPackage.YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONTEXT_VALUE_BINDING_ENDPOINT__PROPERTIES = BindingPackage.YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Url String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YContext Value Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONTEXT_VALUE_BINDING_ENDPOINT_FEATURE_COUNT = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotValueBindingEndpointImpl <em>YBean Slot Value Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotValueBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYBeanSlotValueBindingEndpoint()
+	 * @generated
+	 */
+	int YBEAN_SLOT_VALUE_BINDING_ENDPOINT = 30;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_VALUE_BINDING_ENDPOINT__TAGS = BindingPackage.YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ID = BindingPackage.YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_VALUE_BINDING_ENDPOINT__NAME = BindingPackage.YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_VALUE_BINDING_ENDPOINT__PROPERTIES = BindingPackage.YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Attribute Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Bean Slot</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YBean Slot Value Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_VALUE_BINDING_ENDPOINT_FEATURE_COUNT = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotListBindingEndpointImpl <em>YBean Slot List Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotListBindingEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYBeanSlotListBindingEndpoint()
+	 * @generated
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT = 31;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT__TAGS = BindingPackage.YLIST_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT__ID = BindingPackage.YLIST_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT__NAME = BindingPackage.YLIST_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT__PROPERTIES = BindingPackage.YLIST_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Attribute Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH = BindingPackage.YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Bean Slot</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT = BindingPackage.YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Collection Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE = BindingPackage.YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Collection Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME = BindingPackage.YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YBean Slot List Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SLOT_LIST_BINDING_ENDPOINT_FEATURE_COUNT = BindingPackage.YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint <em>YEmbeddable Binding Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableBindingEndpoint()
+	 * @generated
+	 */
+	int YEMBEDDABLE_BINDING_ENDPOINT = 32;
+
+	/**
+	 * The number of structural features of the '<em>YEmbeddable Binding Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_BINDING_ENDPOINT_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableValueEndpointImpl <em>YEmbeddable Value Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableValueEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableValueEndpoint()
+	 * @generated
+	 */
+	int YEMBEDDABLE_VALUE_ENDPOINT = 33;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_VALUE_ENDPOINT__TAGS = BindingPackage.YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_VALUE_ENDPOINT__ID = BindingPackage.YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_VALUE_ENDPOINT__NAME = BindingPackage.YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_VALUE_ENDPOINT__PROPERTIES = BindingPackage.YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YEmbeddable Value Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_VALUE_ENDPOINT_FEATURE_COUNT = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableSelectionEndpointImpl <em>YEmbeddable Selection Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableSelectionEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableSelectionEndpoint()
+	 * @generated
+	 */
+	int YEMBEDDABLE_SELECTION_ENDPOINT = 34;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_SELECTION_ENDPOINT__TAGS = BindingPackage.YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_SELECTION_ENDPOINT__ID = BindingPackage.YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_SELECTION_ENDPOINT__NAME = BindingPackage.YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_SELECTION_ENDPOINT__PROPERTIES = BindingPackage.YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Attribute Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YEmbeddable Selection Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_SELECTION_ENDPOINT_FEATURE_COUNT = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableMultiSelectionEndpointImpl <em>YEmbeddable Multi Selection Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableMultiSelectionEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableMultiSelectionEndpoint()
+	 * @generated
+	 */
+	int YEMBEDDABLE_MULTI_SELECTION_ENDPOINT = 35;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__TAGS = BindingPackage.YLIST_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ID = BindingPackage.YLIST_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__NAME = BindingPackage.YLIST_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__PROPERTIES = BindingPackage.YLIST_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT = BindingPackage.YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YEmbeddable Multi Selection Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_MULTI_SELECTION_ENDPOINT_FEATURE_COUNT = BindingPackage.YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableCollectionEndpointImpl <em>YEmbeddable Collection Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableCollectionEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableCollectionEndpoint()
+	 * @generated
+	 */
+	int YEMBEDDABLE_COLLECTION_ENDPOINT = 36;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_COLLECTION_ENDPOINT__TAGS = BindingPackage.YLIST_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_COLLECTION_ENDPOINT__ID = BindingPackage.YLIST_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_COLLECTION_ENDPOINT__NAME = BindingPackage.YLIST_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_COLLECTION_ENDPOINT__PROPERTIES = BindingPackage.YLIST_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT = BindingPackage.YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YEmbeddable Collection Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEMBEDDABLE_COLLECTION_ENDPOINT_FEATURE_COUNT = BindingPackage.YLIST_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YActivatedEndpointImpl <em>YActivated Endpoint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YActivatedEndpointImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYActivatedEndpoint()
+	 * @generated
+	 */
+	int YACTIVATED_ENDPOINT = 37;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTIVATED_ENDPOINT__TAGS = BindingPackage.YVALUE_BINDING_ENDPOINT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTIVATED_ENDPOINT__ID = BindingPackage.YVALUE_BINDING_ENDPOINT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTIVATED_ENDPOINT__NAME = BindingPackage.YVALUE_BINDING_ENDPOINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTIVATED_ENDPOINT__PROPERTIES = BindingPackage.YVALUE_BINDING_ENDPOINT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTIVATED_ENDPOINT__ELEMENT = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YActivated Endpoint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YACTIVATED_ENDPOINT_FEATURE_COUNT = BindingPackage.YVALUE_BINDING_ENDPOINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl <em>YDt Wrapper</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDtWrapper()
+	 * @generated
+	 */
+	int YDT_WRAPPER = 38;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_WRAPPER__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_WRAPPER__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_WRAPPER__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_WRAPPER__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_WRAPPER__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_WRAPPER__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YDt Wrapper</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_WRAPPER_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCommand <em>YCommand</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommand
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCommand()
+	 * @generated
+	 */
+	int YCOMMAND = 39;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The number of structural features of the '<em>YCommand</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl <em>YCommand Set</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCommandSet()
+	 * @generated
+	 */
+	int YCOMMAND_SET = 40;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND_SET__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND_SET__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND_SET__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND_SET__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Commands</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND_SET__COMMANDS = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Transient Commands</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND_SET__TRANSIENT_COMMANDS = YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YCommand Set</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMMAND_SET_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl <em>YOpen Dialog Command</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYOpenDialogCommand()
+	 * @generated
+	 */
+	int YOPEN_DIALOG_COMMAND = 41;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPEN_DIALOG_COMMAND__TAGS = YCOMMAND__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPEN_DIALOG_COMMAND__ID = YCOMMAND__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPEN_DIALOG_COMMAND__NAME = YCOMMAND__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPEN_DIALOG_COMMAND__PROPERTIES = YCOMMAND__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Dialog</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPEN_DIALOG_COMMAND__DIALOG = YCOMMAND_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Trigger</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPEN_DIALOG_COMMAND__TRIGGER = YCOMMAND_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YOpen Dialog Command</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPEN_DIALOG_COMMAND_FEATURE_COUNT = YCOMMAND_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl <em>YExposed Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYExposedAction()
+	 * @generated
+	 */
+	int YEXPOSED_ACTION = 42;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__INITIAL_ENABLED = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__ENABLED = YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Icon</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__ICON = YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__LABEL = YELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__LABEL_I1_8N_KEY = YELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>External Click Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__EXTERNAL_CLICK_TIME = YELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Internal Click Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__INTERNAL_CLICK_TIME = YELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Executed Notification Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME = YELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Canceled Notification Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME = YELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Check Dirty</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__CHECK_DIRTY = YELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>External Command Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION__EXTERNAL_COMMAND_ID = YELEMENT_FEATURE_COUNT + 10;
+
+	/**
+	 * The number of structural features of the '<em>YExposed Action</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YEXPOSED_ACTION_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 11;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl <em>YSend Event Command</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYSendEventCommand()
+	 * @generated
+	 */
+	int YSEND_EVENT_COMMAND = 43;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEND_EVENT_COMMAND__TAGS = YCOMMAND__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEND_EVENT_COMMAND__ID = YCOMMAND__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEND_EVENT_COMMAND__NAME = YCOMMAND__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEND_EVENT_COMMAND__PROPERTIES = YCOMMAND__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Event Topic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEND_EVENT_COMMAND__EVENT_TOPIC = YCOMMAND_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEND_EVENT_COMMAND__MESSAGE = YCOMMAND_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Trigger</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEND_EVENT_COMMAND__TRIGGER = YCOMMAND_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Auto Trigger</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEND_EVENT_COMMAND__AUTO_TRIGGER = YCOMMAND_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YSend Event Command</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEND_EVENT_COMMAND_FEATURE_COUNT = YCOMMAND_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl <em>YKey Stroke Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYKeyStrokeDefinition()
+	 * @generated
+	 */
+	int YKEY_STROKE_DEFINITION = 44;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YKEY_STROKE_DEFINITION__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YKEY_STROKE_DEFINITION__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YKEY_STROKE_DEFINITION__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YKEY_STROKE_DEFINITION__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Key Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YKEY_STROKE_DEFINITION__KEY_CODE = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Modifier Keys</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YKEY_STROKE_DEFINITION__MODIFIER_KEYS = YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YKey Stroke Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YKEY_STROKE_DEFINITION_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YConverter <em>YConverter</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YConverter
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYConverter()
+	 * @generated
+	 */
+	int YCONVERTER = 45;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONVERTER__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONVERTER__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONVERTER__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONVERTER__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The number of structural features of the '<em>YConverter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCONVERTER_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDelegateConverterImpl <em>YDelegate Converter</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YDelegateConverterImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDelegateConverter()
+	 * @generated
+	 */
+	int YDELEGATE_CONVERTER = 46;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDELEGATE_CONVERTER__TAGS = YCONVERTER__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDELEGATE_CONVERTER__ID = YCONVERTER__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDELEGATE_CONVERTER__NAME = YCONVERTER__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDELEGATE_CONVERTER__PROPERTIES = YCONVERTER__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Converter Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDELEGATE_CONVERTER__CONVERTER_ID = YCONVERTER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YDelegate Converter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDELEGATE_CONVERTER_FEATURE_COUNT = YCONVERTER_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YMemento <em>YMemento</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMemento
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYMemento()
+	 * @generated
+	 */
+	int YMEMENTO = 47;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMEMENTO__TAGS = YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMEMENTO__ID = YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMEMENTO__NAME = YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMEMENTO__PROPERTIES = YELEMENT__PROPERTIES;
+
+	/**
+	 * The number of structural features of the '<em>YMemento</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMEMENTO_FEATURE_COUNT = YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable <em>YAuthorizationable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYAuthorizationable()
+	 * @generated
+	 */
+	int YAUTHORIZATIONABLE = 48;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YAUTHORIZATIONABLE__AUTHORIZATION_GROUP = 0;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YAUTHORIZATIONABLE__AUTHORIZATION_ID = 1;
+
+	/**
+	 * The number of structural features of the '<em>YAuthorizationable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YAUTHORIZATIONABLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDeviceType <em>YDevice Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDeviceType
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDeviceType()
+	 * @generated
+	 */
+	int YDEVICE_TYPE = 50;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YAlignment <em>YAlignment</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYAlignment()
+	 * @generated
+	 */
+	int YALIGNMENT = 51;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment <em>YFlat Alignment</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYFlatAlignment()
+	 * @generated
+	 */
+	int YFLAT_ALIGNMENT = 52;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YUnit <em>YUnit</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YUnit
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYUnit()
+	 * @generated
+	 */
+	int YUNIT = 53;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyCode <em>YKey Code</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YKeyCode
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYKeyCode()
+	 * @generated
+	 */
+	int YKEY_CODE = 54;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YModifierKey <em>YModifier Key</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YModifierKey
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYModifierKey()
+	 * @generated
+	 */
+	int YMODIFIER_KEY = 55;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YOrientation <em>YOrientation</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YOrientation
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYOrientation()
+	 * @generated
+	 */
+	int YORIENTATION = 56;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCompare <em>YCompare</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCompare
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCompare()
+	 * @generated
+	 */
+	int YCOMPARE = 57;
+
+	/**
+	 * The meta object id for the '<em>YURI</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see java.net.URI
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYURI()
+	 * @generated
+	 */
+	int YURI = 58;
+
+
+	/**
+	 * The meta object id for the '<em>YValue Change Listener</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYValueChangeListener()
+	 * @generated
+	 */
+	int YVALUE_CHANGE_LISTENER = 59;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YElement</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+	 * @generated
+	 */
+	EClass getYElement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement#getId()
+	 * @see #getYElement()
+	 * @generated
+	 */
+	EAttribute getYElement_Id();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement#getName()
+	 * @see #getYElement()
+	 * @generated
+	 */
+	EAttribute getYElement_Name();
+
+	/**
+	 * Returns the meta object for the map '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement#getProperties <em>Properties</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the map '<em>Properties</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement#getProperties()
+	 * @see #getYElement()
+	 * @generated
+	 */
+	EReference getYElement_Properties();
+
+	/**
+	 * Returns the meta object for class '{@link java.util.Map.Entry <em>YString To String Map</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YString To String Map</em>'.
+	 * @see java.util.Map.Entry
+	 * @model keyId="true" keyDataType="org.eclipse.emf.ecore.EString"
+	 *        valueDataType="org.eclipse.emf.ecore.EString"
+	 * @generated
+	 */
+	EClass getYStringToStringMap();
+
+	/**
+	 * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Key</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getYStringToStringMap()
+	 * @generated
+	 */
+	EAttribute getYStringToStringMap_Key();
+
+	/**
+	 * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getYStringToStringMap()
+	 * @generated
+	 */
+	EAttribute getYStringToStringMap_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YLayout <em>YLayout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YLayout</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YLayout
+	 * @generated
+	 */
+	EClass getYLayout();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YLayout#getElements <em>Elements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Elements</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YLayout#getElements()
+	 * @see #getYLayout()
+	 * @generated
+	 */
+	EReference getYLayout_Elements();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout <em>YHelper Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YHelper Layout</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout
+	 * @generated
+	 */
+	EClass getYHelperLayout();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout#getVirtualElements <em>Virtual Elements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Virtual Elements</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout#getVirtualElements()
+	 * @see #getYHelperLayout()
+	 * @generated
+	 */
+	EReference getYHelperLayout_VirtualElements();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YField <em>YField</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YField</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YField
+	 * @generated
+	 */
+	EClass getYField();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YField#getValidators <em>Validators</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Validators</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YField#getValidators()
+	 * @see #getYField()
+	 * @generated
+	 */
+	EReference getYField_Validators();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YField#getInternalValidators <em>Internal Validators</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Internal Validators</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YField#getInternalValidators()
+	 * @see #getYField()
+	 * @generated
+	 */
+	EReference getYField_InternalValidators();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YField#getConverter <em>Converter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Converter</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YField#getConverter()
+	 * @see #getYField()
+	 * @generated
+	 */
+	EReference getYField_Converter();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YView <em>YView</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YView</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView
+	 * @generated
+	 */
+	EClass getYView();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getRoot <em>Root</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Root</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getRoot()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_Root();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getViewName <em>View Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>View Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getViewName()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EAttribute getYView_ViewName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getVersion <em>Version</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Version</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getVersion()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EAttribute getYView_Version();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getContent <em>Content</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Content</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getContent()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_Content();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getBindingSet <em>Binding Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Binding Set</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getBindingSet()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_BindingSet();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getBeanSlots <em>Bean Slots</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Bean Slots</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getBeanSlots()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_BeanSlots();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getCommandSet <em>Command Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Command Set</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getCommandSet()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_CommandSet();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getDialogs <em>Dialogs</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Dialogs</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getDialogs()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_Dialogs();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getDeviceType <em>Device Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Device Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getDeviceType()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EAttribute getYView_DeviceType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getContentAlignment <em>Content Alignment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Content Alignment</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getContentAlignment()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EAttribute getYView_ContentAlignment();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getVisibilityProcessors <em>Visibility Processors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Visibility Processors</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getVisibilityProcessors()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_VisibilityProcessors();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getTransientVisibilityProcessors <em>Transient Visibility Processors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Transient Visibility Processors</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getTransientVisibilityProcessors()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_TransientVisibilityProcessors();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getExposedActions <em>Exposed Actions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Exposed Actions</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getExposedActions()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_ExposedActions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getSharedStateGroup <em>Shared State Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Shared State Group</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getSharedStateGroup()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EAttribute getYView_SharedStateGroup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getCategory <em>Category</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Category</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getCategory()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EAttribute getYView_Category();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getInitialFocus <em>Initial Focus</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Initial Focus</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getInitialFocus()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_InitialFocus();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getCurrentFocus <em>Current Focus</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Current Focus</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getCurrentFocus()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_CurrentFocus();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getDisabledElements <em>Disabled Elements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Disabled Elements</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getDisabledElements()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_DisabledElements();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getAuthorizationStore <em>Authorization Store</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Authorization Store</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getAuthorizationStore()
+	 * @see #getYView()
+	 * @generated
+	 */
+	EReference getYView_AuthorizationStore();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet <em>YView Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YView Set</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YViewSet
+	 * @generated
+	 */
+	EClass getYViewSet();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet#getViews <em>Views</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Views</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YViewSet#getViews()
+	 * @see #getYViewSet()
+	 * @generated
+	 */
+	EReference getYViewSet_Views();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet#getBeanSlots <em>Bean Slots</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Bean Slots</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YViewSet#getBeanSlots()
+	 * @see #getYViewSet()
+	 * @generated
+	 */
+	EReference getYViewSet_BeanSlots();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer <em>YAlignment Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YAlignment Container</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer
+	 * @generated
+	 */
+	EClass getYAlignmentContainer();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot <em>YBean Slot</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBean Slot</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot
+	 * @generated
+	 */
+	EClass getYBeanSlot();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getName()
+	 * @see #getYBeanSlot()
+	 * @generated
+	 */
+	EAttribute getYBeanSlot_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getValueType <em>Value Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getValueType()
+	 * @see #getYBeanSlot()
+	 * @generated
+	 */
+	EAttribute getYBeanSlot_ValueType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getValueTypeQualifiedName <em>Value Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getValueTypeQualifiedName()
+	 * @see #getYBeanSlot()
+	 * @generated
+	 */
+	EAttribute getYBeanSlot_ValueTypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getEventTopic <em>Event Topic</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Event Topic</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getEventTopic()
+	 * @see #getYBeanSlot()
+	 * @generated
+	 */
+	EAttribute getYBeanSlot_EventTopic();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#isRedirectEvents <em>Redirect Events</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Redirect Events</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#isRedirectEvents()
+	 * @see #getYBeanSlot()
+	 * @generated
+	 */
+	EAttribute getYBeanSlot_RedirectEvents();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot <em>YDetail Bean Slot</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDetail Bean Slot</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot
+	 * @generated
+	 */
+	EClass getYDetailBeanSlot();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot#getMasterBeanSlot <em>Master Bean Slot</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Master Bean Slot</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot#getMasterBeanSlot()
+	 * @see #getYDetailBeanSlot()
+	 * @generated
+	 */
+	EReference getYDetailBeanSlot_MasterBeanSlot();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot#getPropertyPath()
+	 * @see #getYDetailBeanSlot()
+	 * @generated
+	 */
+	EAttribute getYDetailBeanSlot_PropertyPath();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider <em>YHelper Layout Provider</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YHelper Layout Provider</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider
+	 * @generated
+	 */
+	EClass getYHelperLayoutProvider();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable <em>YEmbeddable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEmbeddable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable
+	 * @generated
+	 */
+	EClass getYEmbeddable();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getOrphanDatatypes <em>Orphan Datatypes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Orphan Datatypes</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getOrphanDatatypes()
+	 * @see #getYEmbeddable()
+	 * @generated
+	 */
+	EReference getYEmbeddable_OrphanDatatypes();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getOrphanDatadescriptions <em>Orphan Datadescriptions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Orphan Datadescriptions</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getOrphanDatadescriptions()
+	 * @see #getYEmbeddable()
+	 * @generated
+	 */
+	EReference getYEmbeddable_OrphanDatadescriptions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#isMementoEnabled <em>Memento Enabled</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Memento Enabled</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#isMementoEnabled()
+	 * @see #getYEmbeddable()
+	 * @generated
+	 */
+	EAttribute getYEmbeddable_MementoEnabled();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getMementoId <em>Memento Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Memento Id</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getMementoId()
+	 * @see #getYEmbeddable()
+	 * @generated
+	 */
+	EAttribute getYEmbeddable_MementoId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getLabel <em>Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Label</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getLabel()
+	 * @see #getYEmbeddable()
+	 * @generated
+	 */
+	EAttribute getYEmbeddable_Label();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getLabelI18nKey <em>Label I1 8n Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Label I1 8n Key</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getLabelI18nKey()
+	 * @see #getYEmbeddable()
+	 * @generated
+	 */
+	EAttribute getYEmbeddable_LabelI18nKey();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog <em>YDialog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDialog</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog
+	 * @generated
+	 */
+	EClass getYDialog();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getContent <em>Content</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Content</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#getContent()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EReference getYDialog_Content();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isModal <em>Modal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Modal</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#isModal()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EAttribute getYDialog_Modal();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isResizeable <em>Resizeable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Resizeable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#isResizeable()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EAttribute getYDialog_Resizeable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isDraggable <em>Draggable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Draggable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#isDraggable()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EAttribute getYDialog_Draggable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isClosable <em>Closable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Closable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#isClosable()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EAttribute getYDialog_Closable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#getValue()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EAttribute getYDialog_Value();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#getType()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EAttribute getYDialog_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#getEmfNsURI()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EAttribute getYDialog_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#getTypeQualifiedName()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EAttribute getYDialog_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#getDatadescription()
+	 * @see #getYDialog()
+	 * @generated
+	 */
+	EReference getYDialog_Datadescription();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble <em>YCss Able</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCss Able</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCssAble
+	 * @generated
+	 */
+	EClass getYCssAble();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble#getCssClass <em>Css Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Css Class</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCssAble#getCssClass()
+	 * @see #getYCssAble()
+	 * @generated
+	 */
+	EAttribute getYCssAble_CssClass();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble#getCssID <em>Css ID</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Css ID</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCssAble#getCssID()
+	 * @see #getYCssAble()
+	 * @generated
+	 */
+	EAttribute getYCssAble_CssID();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YMarginable <em>YMarginable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YMarginable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMarginable
+	 * @generated
+	 */
+	EClass getYMarginable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YMarginable#isMargin <em>Margin</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Margin</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMarginable#isMargin()
+	 * @see #getYMarginable()
+	 * @generated
+	 */
+	EAttribute getYMarginable_Margin();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YSpacingable <em>YSpacingable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSpacingable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSpacingable
+	 * @generated
+	 */
+	EClass getYSpacingable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YSpacingable#isSpacing <em>Spacing</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Spacing</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSpacingable#isSpacing()
+	 * @see #getYSpacingable()
+	 * @generated
+	 */
+	EAttribute getYSpacingable_Spacing();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable <em>YHeightable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YHeightable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHeightable
+	 * @generated
+	 */
+	EClass getYHeightable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable#getHeight <em>Height</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Height</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHeightable#getHeight()
+	 * @see #getYHeightable()
+	 * @generated
+	 */
+	EAttribute getYHeightable_Height();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable#getHeightUnit <em>Height Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Height Unit</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHeightable#getHeightUnit()
+	 * @see #getYHeightable()
+	 * @generated
+	 */
+	EAttribute getYHeightable_HeightUnit();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable <em>YWidthable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YWidthable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YWidthable
+	 * @generated
+	 */
+	EClass getYWidthable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable#getWidth <em>Width</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Width</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YWidthable#getWidth()
+	 * @see #getYWidthable()
+	 * @generated
+	 */
+	EAttribute getYWidthable_Width();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable#getWidthUnit <em>Width Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Width Unit</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YWidthable#getWidthUnit()
+	 * @see #getYWidthable()
+	 * @generated
+	 */
+	EAttribute getYWidthable_WidthUnit();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable <em>YActivateable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YActivateable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivateable
+	 * @generated
+	 */
+	EClass getYActivateable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable#isInitialActivated <em>Initial Activated</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Initial Activated</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivateable#isInitialActivated()
+	 * @see #getYActivateable()
+	 * @generated
+	 */
+	EAttribute getYActivateable_InitialActivated();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable#isActivated <em>Activated</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Activated</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivateable#isActivated()
+	 * @see #getYActivateable()
+	 * @generated
+	 */
+	EAttribute getYActivateable_Activated();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable <em>YVisibleable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YVisibleable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YVisibleable
+	 * @generated
+	 */
+	EClass getYVisibleable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable#isInitialVisible <em>Initial Visible</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Initial Visible</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YVisibleable#isInitialVisible()
+	 * @see #getYVisibleable()
+	 * @generated
+	 */
+	EAttribute getYVisibleable_InitialVisible();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable#isVisible <em>Visible</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Visible</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YVisibleable#isVisible()
+	 * @see #getYVisibleable()
+	 * @generated
+	 */
+	EAttribute getYVisibleable_Visible();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable <em>YEditable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEditable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEditable
+	 * @generated
+	 */
+	EClass getYEditable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable#isInitialEditable <em>Initial Editable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Initial Editable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEditable#isInitialEditable()
+	 * @see #getYEditable()
+	 * @generated
+	 */
+	EAttribute getYEditable_InitialEditable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable#isEditable <em>Editable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Editable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEditable#isEditable()
+	 * @see #getYEditable()
+	 * @generated
+	 */
+	EAttribute getYEditable_Editable();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable <em>YEnable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEnable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEnable
+	 * @generated
+	 */
+	EClass getYEnable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable#isInitialEnabled <em>Initial Enabled</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Initial Enabled</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEnable#isInitialEnabled()
+	 * @see #getYEnable()
+	 * @generated
+	 */
+	EAttribute getYEnable_InitialEnabled();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable#isEnabled <em>Enabled</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Enabled</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEnable#isEnabled()
+	 * @see #getYEnable()
+	 * @generated
+	 */
+	EAttribute getYEnable_Enabled();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YFocusable <em>YFocusable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YFocusable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YFocusable
+	 * @generated
+	 */
+	EClass getYFocusable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YFocusable#getTabIndex <em>Tab Index</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tab Index</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YFocusable#getTabIndex()
+	 * @see #getYFocusable()
+	 * @generated
+	 */
+	EAttribute getYFocusable_TabIndex();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YAction <em>YAction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YAction</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAction
+	 * @generated
+	 */
+	EClass getYAction();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBindable <em>YBindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBindable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBindable
+	 * @generated
+	 */
+	EClass getYBindable();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YValueBindable <em>YValue Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YValue Bindable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YValueBindable
+	 * @generated
+	 */
+	EClass getYValueBindable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YValueBindable#getValueBindingEndpoint <em>Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Value Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YValueBindable#getValueBindingEndpoint()
+	 * @see #getYValueBindable()
+	 * @generated
+	 */
+	EReference getYValueBindable_ValueBindingEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable <em>YSelection Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSelection Bindable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable
+	 * @generated
+	 */
+	EClass getYSelectionBindable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Selection Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable#getSelectionBindingEndpoint()
+	 * @see #getYSelectionBindable()
+	 * @generated
+	 */
+	EReference getYSelectionBindable_SelectionBindingEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable <em>YMulti Selection Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YMulti Selection Bindable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable
+	 * @generated
+	 */
+	EClass getYMultiSelectionBindable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Multi Selection Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable#getMultiSelectionBindingEndpoint()
+	 * @see #getYMultiSelectionBindable()
+	 * @generated
+	 */
+	EReference getYMultiSelectionBindable_MultiSelectionBindingEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable <em>YCollection Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCollection Bindable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable
+	 * @generated
+	 */
+	EClass getYCollectionBindable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Collection Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable#getCollectionBindingEndpoint()
+	 * @see #getYCollectionBindable()
+	 * @generated
+	 */
+	EReference getYCollectionBindable_CollectionBindingEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint <em>YContext Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YContext Value Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint
+	 * @generated
+	 */
+	EClass getYContextValueBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint#getUrlString <em>Url String</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Url String</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint#getUrlString()
+	 * @see #getYContextValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYContextValueBindingEndpoint_UrlString();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint <em>YBean Slot Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBean Slot Value Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint
+	 * @generated
+	 */
+	EClass getYBeanSlotValueBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint#getAttributePath <em>Attribute Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Attribute Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint#getAttributePath()
+	 * @see #getYBeanSlotValueBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYBeanSlotValueBindingEndpoint_AttributePath();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint#getBeanSlot <em>Bean Slot</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Bean Slot</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint#getBeanSlot()
+	 * @see #getYBeanSlotValueBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYBeanSlotValueBindingEndpoint_BeanSlot();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint <em>YBean Slot List Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBean Slot List Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint
+	 * @generated
+	 */
+	EClass getYBeanSlotListBindingEndpoint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getAttributePath <em>Attribute Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Attribute Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getAttributePath()
+	 * @see #getYBeanSlotListBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYBeanSlotListBindingEndpoint_AttributePath();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getBeanSlot <em>Bean Slot</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Bean Slot</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getBeanSlot()
+	 * @see #getYBeanSlotListBindingEndpoint()
+	 * @generated
+	 */
+	EReference getYBeanSlotListBindingEndpoint_BeanSlot();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getCollectionType <em>Collection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Collection Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getCollectionType()
+	 * @see #getYBeanSlotListBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYBeanSlotListBindingEndpoint_CollectionType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getCollectionTypeQualifiedName <em>Collection Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Collection Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getCollectionTypeQualifiedName()
+	 * @see #getYBeanSlotListBindingEndpoint()
+	 * @generated
+	 */
+	EAttribute getYBeanSlotListBindingEndpoint_CollectionTypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint <em>YEmbeddable Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEmbeddable Binding Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint
+	 * @generated
+	 */
+	EClass getYEmbeddableBindingEndpoint();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint <em>YEmbeddable Value Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEmbeddable Value Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint
+	 * @generated
+	 */
+	EClass getYEmbeddableValueEndpoint();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint#getElement()
+	 * @see #getYEmbeddableValueEndpoint()
+	 * @generated
+	 */
+	EReference getYEmbeddableValueEndpoint_Element();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint <em>YEmbeddable Selection Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEmbeddable Selection Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint
+	 * @generated
+	 */
+	EClass getYEmbeddableSelectionEndpoint();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getElement()
+	 * @see #getYEmbeddableSelectionEndpoint()
+	 * @generated
+	 */
+	EReference getYEmbeddableSelectionEndpoint_Element();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getAttributePath <em>Attribute Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Attribute Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getAttributePath()
+	 * @see #getYEmbeddableSelectionEndpoint()
+	 * @generated
+	 */
+	EAttribute getYEmbeddableSelectionEndpoint_AttributePath();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint <em>YEmbeddable Multi Selection Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEmbeddable Multi Selection Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint
+	 * @generated
+	 */
+	EClass getYEmbeddableMultiSelectionEndpoint();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint#getElement()
+	 * @see #getYEmbeddableMultiSelectionEndpoint()
+	 * @generated
+	 */
+	EReference getYEmbeddableMultiSelectionEndpoint_Element();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint <em>YEmbeddable Collection Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEmbeddable Collection Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint
+	 * @generated
+	 */
+	EClass getYEmbeddableCollectionEndpoint();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint#getElement()
+	 * @see #getYEmbeddableCollectionEndpoint()
+	 * @generated
+	 */
+	EReference getYEmbeddableCollectionEndpoint_Element();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint <em>YActivated Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YActivated Endpoint</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint
+	 * @generated
+	 */
+	EClass getYActivatedEndpoint();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint#getElement()
+	 * @see #getYActivatedEndpoint()
+	 * @generated
+	 */
+	EReference getYActivatedEndpoint_Element();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper <em>YDt Wrapper</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDt Wrapper</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper
+	 * @generated
+	 */
+	EClass getYDtWrapper();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCommand <em>YCommand</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCommand</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommand
+	 * @generated
+	 */
+	EClass getYCommand();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCommandSet <em>YCommand Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCommand Set</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommandSet
+	 * @generated
+	 */
+	EClass getYCommandSet();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YCommandSet#getCommands <em>Commands</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Commands</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommandSet#getCommands()
+	 * @see #getYCommandSet()
+	 * @generated
+	 */
+	EReference getYCommandSet_Commands();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.YCommandSet#getTransientCommands <em>Transient Commands</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Transient Commands</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommandSet#getTransientCommands()
+	 * @see #getYCommandSet()
+	 * @generated
+	 */
+	EReference getYCommandSet_TransientCommands();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand <em>YOpen Dialog Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YOpen Dialog Command</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand
+	 * @generated
+	 */
+	EClass getYOpenDialogCommand();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand#getDialog <em>Dialog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Dialog</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand#getDialog()
+	 * @see #getYOpenDialogCommand()
+	 * @generated
+	 */
+	EReference getYOpenDialogCommand_Dialog();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand#getTrigger <em>Trigger</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Trigger</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand#getTrigger()
+	 * @see #getYOpenDialogCommand()
+	 * @generated
+	 */
+	EAttribute getYOpenDialogCommand_Trigger();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction <em>YExposed Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YExposed Action</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction
+	 * @generated
+	 */
+	EClass getYExposedAction();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getIcon <em>Icon</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Icon</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getIcon()
+	 * @see #getYExposedAction()
+	 * @generated
+	 */
+	EAttribute getYExposedAction_Icon();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getLabel <em>Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Label</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getLabel()
+	 * @see #getYExposedAction()
+	 * @generated
+	 */
+	EAttribute getYExposedAction_Label();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getLabelI18nKey <em>Label I1 8n Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Label I1 8n Key</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getLabelI18nKey()
+	 * @see #getYExposedAction()
+	 * @generated
+	 */
+	EAttribute getYExposedAction_LabelI18nKey();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExternalClickTime <em>External Click Time</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>External Click Time</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExternalClickTime()
+	 * @see #getYExposedAction()
+	 * @generated
+	 */
+	EAttribute getYExposedAction_ExternalClickTime();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getInternalClickTime <em>Internal Click Time</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Internal Click Time</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getInternalClickTime()
+	 * @see #getYExposedAction()
+	 * @generated
+	 */
+	EAttribute getYExposedAction_InternalClickTime();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExecutedNotificationTime <em>Executed Notification Time</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Executed Notification Time</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExecutedNotificationTime()
+	 * @see #getYExposedAction()
+	 * @generated
+	 */
+	EAttribute getYExposedAction_ExecutedNotificationTime();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getCanceledNotificationTime <em>Canceled Notification Time</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Canceled Notification Time</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getCanceledNotificationTime()
+	 * @see #getYExposedAction()
+	 * @generated
+	 */
+	EAttribute getYExposedAction_CanceledNotificationTime();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#isCheckDirty <em>Check Dirty</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Check Dirty</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#isCheckDirty()
+	 * @see #getYExposedAction()
+	 * @generated
+	 */
+	EAttribute getYExposedAction_CheckDirty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExternalCommandId <em>External Command Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>External Command Id</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExternalCommandId()
+	 * @see #getYExposedAction()
+	 * @generated
+	 */
+	EAttribute getYExposedAction_ExternalCommandId();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand <em>YSend Event Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSend Event Command</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand
+	 * @generated
+	 */
+	EClass getYSendEventCommand();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getEventTopic <em>Event Topic</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Event Topic</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getEventTopic()
+	 * @see #getYSendEventCommand()
+	 * @generated
+	 */
+	EAttribute getYSendEventCommand_EventTopic();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getMessage <em>Message</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Message</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getMessage()
+	 * @see #getYSendEventCommand()
+	 * @generated
+	 */
+	EAttribute getYSendEventCommand_Message();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getTrigger <em>Trigger</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Trigger</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getTrigger()
+	 * @see #getYSendEventCommand()
+	 * @generated
+	 */
+	EAttribute getYSendEventCommand_Trigger();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#isAutoTrigger <em>Auto Trigger</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Auto Trigger</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#isAutoTrigger()
+	 * @see #getYSendEventCommand()
+	 * @generated
+	 */
+	EAttribute getYSendEventCommand_AutoTrigger();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition <em>YKey Stroke Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YKey Stroke Definition</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition
+	 * @generated
+	 */
+	EClass getYKeyStrokeDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition#getKeyCode <em>Key Code</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Key Code</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition#getKeyCode()
+	 * @see #getYKeyStrokeDefinition()
+	 * @generated
+	 */
+	EAttribute getYKeyStrokeDefinition_KeyCode();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition#getModifierKeys <em>Modifier Keys</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Modifier Keys</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition#getModifierKeys()
+	 * @see #getYKeyStrokeDefinition()
+	 * @generated
+	 */
+	EAttribute getYKeyStrokeDefinition_ModifierKeys();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YConverter <em>YConverter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YConverter</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YConverter
+	 * @generated
+	 */
+	EClass getYConverter();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter <em>YDelegate Converter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDelegate Converter</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter
+	 * @generated
+	 */
+	EClass getYDelegateConverter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter#getConverterId <em>Converter Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Converter Id</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter#getConverterId()
+	 * @see #getYDelegateConverter()
+	 * @generated
+	 */
+	EAttribute getYDelegateConverter_ConverterId();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YMemento <em>YMemento</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YMemento</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMemento
+	 * @generated
+	 */
+	EClass getYMemento();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable <em>YAuthorizationable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YAuthorizationable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable
+	 * @generated
+	 */
+	EClass getYAuthorizationable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable#getAuthorizationGroup <em>Authorization Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Authorization Group</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable#getAuthorizationGroup()
+	 * @see #getYAuthorizationable()
+	 * @generated
+	 */
+	EAttribute getYAuthorizationable_AuthorizationGroup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable#getAuthorizationId <em>Authorization Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Authorization Id</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable#getAuthorizationId()
+	 * @see #getYAuthorizationable()
+	 * @generated
+	 */
+	EAttribute getYAuthorizationable_AuthorizationId();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YTaggable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+	 * @generated
+	 */
+	EClass getYTaggable();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable#getTags <em>Tags</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Tags</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable#getTags()
+	 * @see #getYTaggable()
+	 * @generated
+	 */
+	EAttribute getYTaggable_Tags();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.core.YDeviceType <em>YDevice Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YDevice Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDeviceType
+	 * @generated
+	 */
+	EEnum getYDeviceType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.core.YAlignment <em>YAlignment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YAlignment</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @generated
+	 */
+	EEnum getYAlignment();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment <em>YFlat Alignment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YFlat Alignment</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment
+	 * @generated
+	 */
+	EEnum getYFlatAlignment();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.core.YUnit <em>YUnit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YUnit</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YUnit
+	 * @generated
+	 */
+	EEnum getYUnit();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyCode <em>YKey Code</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YKey Code</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YKeyCode
+	 * @generated
+	 */
+	EEnum getYKeyCode();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.core.YModifierKey <em>YModifier Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YModifier Key</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YModifierKey
+	 * @generated
+	 */
+	EEnum getYModifierKey();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.core.YOrientation <em>YOrientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YOrientation</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YOrientation
+	 * @generated
+	 */
+	EEnum getYOrientation();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.core.YCompare <em>YCompare</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YCompare</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCompare
+	 * @generated
+	 */
+	EEnum getYCompare();
+
+	/**
+	 * Returns the meta object for data type '{@link java.net.URI <em>YURI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>YURI</em>'.
+	 * @see java.net.URI
+	 * @model instanceClass="java.net.URI"
+	 * @generated
+	 */
+	EDataType getYURI();
+
+	/**
+	 * Returns the meta object for data type '{@link org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener <em>YValue Change Listener</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>YValue Change Listener</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener
+	 * @model instanceClass="org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener"
+	 * @generated
+	 */
+	EDataType getYValueChangeListener();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	CoreModelFactory getCoreModelFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYElement()
+		 * @generated
+		 */
+		EClass YELEMENT = eINSTANCE.getYElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YELEMENT__ID = eINSTANCE.getYElement_Id();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YELEMENT__NAME = eINSTANCE.getYElement_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Properties</b></em>' map feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YELEMENT__PROPERTIES = eINSTANCE.getYElement_Properties();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl <em>YString To String Map</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYStringToStringMap()
+		 * @generated
+		 */
+		EClass YSTRING_TO_STRING_MAP = eINSTANCE.getYStringToStringMap();
+
+		/**
+		 * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSTRING_TO_STRING_MAP__KEY = eINSTANCE.getYStringToStringMap_Key();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSTRING_TO_STRING_MAP__VALUE = eINSTANCE.getYStringToStringMap_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl <em>YLayout</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYLayout()
+		 * @generated
+		 */
+		EClass YLAYOUT = eINSTANCE.getYLayout();
+
+		/**
+		 * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YLAYOUT__ELEMENTS = eINSTANCE.getYLayout_Elements();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YHelperLayoutImpl <em>YHelper Layout</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YHelperLayoutImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYHelperLayout()
+		 * @generated
+		 */
+		EClass YHELPER_LAYOUT = eINSTANCE.getYHelperLayout();
+
+		/**
+		 * The meta object literal for the '<em><b>Virtual Elements</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YHELPER_LAYOUT__VIRTUAL_ELEMENTS = eINSTANCE.getYHelperLayout_VirtualElements();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl <em>YField</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYField()
+		 * @generated
+		 */
+		EClass YFIELD = eINSTANCE.getYField();
+
+		/**
+		 * The meta object literal for the '<em><b>Validators</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YFIELD__VALIDATORS = eINSTANCE.getYField_Validators();
+
+		/**
+		 * The meta object literal for the '<em><b>Internal Validators</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YFIELD__INTERNAL_VALIDATORS = eINSTANCE.getYField_InternalValidators();
+
+		/**
+		 * The meta object literal for the '<em><b>Converter</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YFIELD__CONVERTER = eINSTANCE.getYField_Converter();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl <em>YView</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYView()
+		 * @generated
+		 */
+		EClass YVIEW = eINSTANCE.getYView();
+
+		/**
+		 * The meta object literal for the '<em><b>Root</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__ROOT = eINSTANCE.getYView_Root();
+
+		/**
+		 * The meta object literal for the '<em><b>View Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVIEW__VIEW_NAME = eINSTANCE.getYView_ViewName();
+
+		/**
+		 * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVIEW__VERSION = eINSTANCE.getYView_Version();
+
+		/**
+		 * The meta object literal for the '<em><b>Content</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__CONTENT = eINSTANCE.getYView_Content();
+
+		/**
+		 * The meta object literal for the '<em><b>Binding Set</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__BINDING_SET = eINSTANCE.getYView_BindingSet();
+
+		/**
+		 * The meta object literal for the '<em><b>Bean Slots</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__BEAN_SLOTS = eINSTANCE.getYView_BeanSlots();
+
+		/**
+		 * The meta object literal for the '<em><b>Command Set</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__COMMAND_SET = eINSTANCE.getYView_CommandSet();
+
+		/**
+		 * The meta object literal for the '<em><b>Dialogs</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__DIALOGS = eINSTANCE.getYView_Dialogs();
+
+		/**
+		 * The meta object literal for the '<em><b>Device Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVIEW__DEVICE_TYPE = eINSTANCE.getYView_DeviceType();
+
+		/**
+		 * The meta object literal for the '<em><b>Content Alignment</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVIEW__CONTENT_ALIGNMENT = eINSTANCE.getYView_ContentAlignment();
+
+		/**
+		 * The meta object literal for the '<em><b>Visibility Processors</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__VISIBILITY_PROCESSORS = eINSTANCE.getYView_VisibilityProcessors();
+
+		/**
+		 * The meta object literal for the '<em><b>Transient Visibility Processors</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__TRANSIENT_VISIBILITY_PROCESSORS = eINSTANCE.getYView_TransientVisibilityProcessors();
+
+		/**
+		 * The meta object literal for the '<em><b>Exposed Actions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__EXPOSED_ACTIONS = eINSTANCE.getYView_ExposedActions();
+
+		/**
+		 * The meta object literal for the '<em><b>Shared State Group</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVIEW__SHARED_STATE_GROUP = eINSTANCE.getYView_SharedStateGroup();
+
+		/**
+		 * The meta object literal for the '<em><b>Category</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVIEW__CATEGORY = eINSTANCE.getYView_Category();
+
+		/**
+		 * The meta object literal for the '<em><b>Initial Focus</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__INITIAL_FOCUS = eINSTANCE.getYView_InitialFocus();
+
+		/**
+		 * The meta object literal for the '<em><b>Current Focus</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__CURRENT_FOCUS = eINSTANCE.getYView_CurrentFocus();
+
+		/**
+		 * The meta object literal for the '<em><b>Disabled Elements</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__DISABLED_ELEMENTS = eINSTANCE.getYView_DisabledElements();
+
+		/**
+		 * The meta object literal for the '<em><b>Authorization Store</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW__AUTHORIZATION_STORE = eINSTANCE.getYView_AuthorizationStore();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl <em>YView Set</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYViewSet()
+		 * @generated
+		 */
+		EClass YVIEW_SET = eINSTANCE.getYViewSet();
+
+		/**
+		 * The meta object literal for the '<em><b>Views</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW_SET__VIEWS = eINSTANCE.getYViewSet_Views();
+
+		/**
+		 * The meta object literal for the '<em><b>Bean Slots</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVIEW_SET__BEAN_SLOTS = eINSTANCE.getYViewSet_BeanSlots();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer <em>YAlignment Container</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYAlignmentContainer()
+		 * @generated
+		 */
+		EClass YALIGNMENT_CONTAINER = eINSTANCE.getYAlignmentContainer();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl <em>YBean Slot</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYBeanSlot()
+		 * @generated
+		 */
+		EClass YBEAN_SLOT = eINSTANCE.getYBeanSlot();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SLOT__NAME = eINSTANCE.getYBeanSlot_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Value Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SLOT__VALUE_TYPE = eINSTANCE.getYBeanSlot_ValueType();
+
+		/**
+		 * The meta object literal for the '<em><b>Value Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME = eINSTANCE.getYBeanSlot_ValueTypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Event Topic</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SLOT__EVENT_TOPIC = eINSTANCE.getYBeanSlot_EventTopic();
+
+		/**
+		 * The meta object literal for the '<em><b>Redirect Events</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SLOT__REDIRECT_EVENTS = eINSTANCE.getYBeanSlot_RedirectEvents();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDetailBeanSlotImpl <em>YDetail Bean Slot</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YDetailBeanSlotImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDetailBeanSlot()
+		 * @generated
+		 */
+		EClass YDETAIL_BEAN_SLOT = eINSTANCE.getYDetailBeanSlot();
+
+		/**
+		 * The meta object literal for the '<em><b>Master Bean Slot</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT = eINSTANCE.getYDetailBeanSlot_MasterBeanSlot();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDETAIL_BEAN_SLOT__PROPERTY_PATH = eINSTANCE.getYDetailBeanSlot_PropertyPath();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider <em>YHelper Layout Provider</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYHelperLayoutProvider()
+		 * @generated
+		 */
+		EClass YHELPER_LAYOUT_PROVIDER = eINSTANCE.getYHelperLayoutProvider();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl <em>YEmbeddable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddable()
+		 * @generated
+		 */
+		EClass YEMBEDDABLE = eINSTANCE.getYEmbeddable();
+
+		/**
+		 * The meta object literal for the '<em><b>Orphan Datatypes</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEMBEDDABLE__ORPHAN_DATATYPES = eINSTANCE.getYEmbeddable_OrphanDatatypes();
+
+		/**
+		 * The meta object literal for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS = eINSTANCE.getYEmbeddable_OrphanDatadescriptions();
+
+		/**
+		 * The meta object literal for the '<em><b>Memento Enabled</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEMBEDDABLE__MEMENTO_ENABLED = eINSTANCE.getYEmbeddable_MementoEnabled();
+
+		/**
+		 * The meta object literal for the '<em><b>Memento Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEMBEDDABLE__MEMENTO_ID = eINSTANCE.getYEmbeddable_MementoId();
+
+		/**
+		 * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEMBEDDABLE__LABEL = eINSTANCE.getYEmbeddable_Label();
+
+		/**
+		 * The meta object literal for the '<em><b>Label I1 8n Key</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEMBEDDABLE__LABEL_I1_8N_KEY = eINSTANCE.getYEmbeddable_LabelI18nKey();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl <em>YDialog</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDialog()
+		 * @generated
+		 */
+		EClass YDIALOG = eINSTANCE.getYDialog();
+
+		/**
+		 * The meta object literal for the '<em><b>Content</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDIALOG__CONTENT = eINSTANCE.getYDialog_Content();
+
+		/**
+		 * The meta object literal for the '<em><b>Modal</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDIALOG__MODAL = eINSTANCE.getYDialog_Modal();
+
+		/**
+		 * The meta object literal for the '<em><b>Resizeable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDIALOG__RESIZEABLE = eINSTANCE.getYDialog_Resizeable();
+
+		/**
+		 * The meta object literal for the '<em><b>Draggable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDIALOG__DRAGGABLE = eINSTANCE.getYDialog_Draggable();
+
+		/**
+		 * The meta object literal for the '<em><b>Closable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDIALOG__CLOSABLE = eINSTANCE.getYDialog_Closable();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDIALOG__VALUE = eINSTANCE.getYDialog_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDIALOG__TYPE = eINSTANCE.getYDialog_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDIALOG__EMF_NS_URI = eINSTANCE.getYDialog_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDIALOG__TYPE_QUALIFIED_NAME = eINSTANCE.getYDialog_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDIALOG__DATADESCRIPTION = eINSTANCE.getYDialog_Datadescription();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble <em>YCss Able</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YCssAble
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCssAble()
+		 * @generated
+		 */
+		EClass YCSS_ABLE = eINSTANCE.getYCssAble();
+
+		/**
+		 * The meta object literal for the '<em><b>Css Class</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCSS_ABLE__CSS_CLASS = eINSTANCE.getYCssAble_CssClass();
+
+		/**
+		 * The meta object literal for the '<em><b>Css ID</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCSS_ABLE__CSS_ID = eINSTANCE.getYCssAble_CssID();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YMarginable <em>YMarginable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YMarginable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYMarginable()
+		 * @generated
+		 */
+		EClass YMARGINABLE = eINSTANCE.getYMarginable();
+
+		/**
+		 * The meta object literal for the '<em><b>Margin</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YMARGINABLE__MARGIN = eINSTANCE.getYMarginable_Margin();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSpacingable <em>YSpacingable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YSpacingable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYSpacingable()
+		 * @generated
+		 */
+		EClass YSPACINGABLE = eINSTANCE.getYSpacingable();
+
+		/**
+		 * The meta object literal for the '<em><b>Spacing</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSPACINGABLE__SPACING = eINSTANCE.getYSpacingable_Spacing();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable <em>YHeightable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YHeightable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYHeightable()
+		 * @generated
+		 */
+		EClass YHEIGHTABLE = eINSTANCE.getYHeightable();
+
+		/**
+		 * The meta object literal for the '<em><b>Height</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YHEIGHTABLE__HEIGHT = eINSTANCE.getYHeightable_Height();
+
+		/**
+		 * The meta object literal for the '<em><b>Height Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YHEIGHTABLE__HEIGHT_UNIT = eINSTANCE.getYHeightable_HeightUnit();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable <em>YWidthable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YWidthable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYWidthable()
+		 * @generated
+		 */
+		EClass YWIDTHABLE = eINSTANCE.getYWidthable();
+
+		/**
+		 * The meta object literal for the '<em><b>Width</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YWIDTHABLE__WIDTH = eINSTANCE.getYWidthable_Width();
+
+		/**
+		 * The meta object literal for the '<em><b>Width Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YWIDTHABLE__WIDTH_UNIT = eINSTANCE.getYWidthable_WidthUnit();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable <em>YActivateable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivateable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYActivateable()
+		 * @generated
+		 */
+		EClass YACTIVATEABLE = eINSTANCE.getYActivateable();
+
+		/**
+		 * The meta object literal for the '<em><b>Initial Activated</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YACTIVATEABLE__INITIAL_ACTIVATED = eINSTANCE.getYActivateable_InitialActivated();
+
+		/**
+		 * The meta object literal for the '<em><b>Activated</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YACTIVATEABLE__ACTIVATED = eINSTANCE.getYActivateable_Activated();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable <em>YVisibleable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YVisibleable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYVisibleable()
+		 * @generated
+		 */
+		EClass YVISIBLEABLE = eINSTANCE.getYVisibleable();
+
+		/**
+		 * The meta object literal for the '<em><b>Initial Visible</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBLEABLE__INITIAL_VISIBLE = eINSTANCE.getYVisibleable_InitialVisible();
+
+		/**
+		 * The meta object literal for the '<em><b>Visible</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBLEABLE__VISIBLE = eINSTANCE.getYVisibleable_Visible();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable <em>YEditable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YEditable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEditable()
+		 * @generated
+		 */
+		EClass YEDITABLE = eINSTANCE.getYEditable();
+
+		/**
+		 * The meta object literal for the '<em><b>Initial Editable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEDITABLE__INITIAL_EDITABLE = eINSTANCE.getYEditable_InitialEditable();
+
+		/**
+		 * The meta object literal for the '<em><b>Editable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEDITABLE__EDITABLE = eINSTANCE.getYEditable_Editable();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable <em>YEnable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YEnable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEnable()
+		 * @generated
+		 */
+		EClass YENABLE = eINSTANCE.getYEnable();
+
+		/**
+		 * The meta object literal for the '<em><b>Initial Enabled</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENABLE__INITIAL_ENABLED = eINSTANCE.getYEnable_InitialEnabled();
+
+		/**
+		 * The meta object literal for the '<em><b>Enabled</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENABLE__ENABLED = eINSTANCE.getYEnable_Enabled();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YFocusable <em>YFocusable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YFocusable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYFocusable()
+		 * @generated
+		 */
+		EClass YFOCUSABLE = eINSTANCE.getYFocusable();
+
+		/**
+		 * The meta object literal for the '<em><b>Tab Index</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YFOCUSABLE__TAB_INDEX = eINSTANCE.getYFocusable_TabIndex();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl <em>YAction</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYAction()
+		 * @generated
+		 */
+		EClass YACTION = eINSTANCE.getYAction();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBindable <em>YBindable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YBindable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYBindable()
+		 * @generated
+		 */
+		EClass YBINDABLE = eINSTANCE.getYBindable();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YValueBindable <em>YValue Bindable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YValueBindable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYValueBindable()
+		 * @generated
+		 */
+		EClass YVALUE_BINDABLE = eINSTANCE.getYValueBindable();
+
+		/**
+		 * The meta object literal for the '<em><b>Value Binding Endpoint</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT = eINSTANCE.getYValueBindable_ValueBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable <em>YSelection Bindable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYSelectionBindable()
+		 * @generated
+		 */
+		EClass YSELECTION_BINDABLE = eINSTANCE.getYSelectionBindable();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection Binding Endpoint</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT = eINSTANCE.getYSelectionBindable_SelectionBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable <em>YMulti Selection Bindable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYMultiSelectionBindable()
+		 * @generated
+		 */
+		EClass YMULTI_SELECTION_BINDABLE = eINSTANCE.getYMultiSelectionBindable();
+
+		/**
+		 * The meta object literal for the '<em><b>Multi Selection Binding Endpoint</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT = eINSTANCE.getYMultiSelectionBindable_MultiSelectionBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable <em>YCollection Bindable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCollectionBindable()
+		 * @generated
+		 */
+		EClass YCOLLECTION_BINDABLE = eINSTANCE.getYCollectionBindable();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection Binding Endpoint</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT = eINSTANCE.getYCollectionBindable_CollectionBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YContextValueBindingEndpointImpl <em>YContext Value Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YContextValueBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYContextValueBindingEndpoint()
+		 * @generated
+		 */
+		EClass YCONTEXT_VALUE_BINDING_ENDPOINT = eINSTANCE.getYContextValueBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Url String</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING = eINSTANCE.getYContextValueBindingEndpoint_UrlString();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotValueBindingEndpointImpl <em>YBean Slot Value Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotValueBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYBeanSlotValueBindingEndpoint()
+		 * @generated
+		 */
+		EClass YBEAN_SLOT_VALUE_BINDING_ENDPOINT = eINSTANCE.getYBeanSlotValueBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Attribute Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH = eINSTANCE.getYBeanSlotValueBindingEndpoint_AttributePath();
+
+		/**
+		 * The meta object literal for the '<em><b>Bean Slot</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT = eINSTANCE.getYBeanSlotValueBindingEndpoint_BeanSlot();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotListBindingEndpointImpl <em>YBean Slot List Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotListBindingEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYBeanSlotListBindingEndpoint()
+		 * @generated
+		 */
+		EClass YBEAN_SLOT_LIST_BINDING_ENDPOINT = eINSTANCE.getYBeanSlotListBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Attribute Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH = eINSTANCE.getYBeanSlotListBindingEndpoint_AttributePath();
+
+		/**
+		 * The meta object literal for the '<em><b>Bean Slot</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT = eINSTANCE.getYBeanSlotListBindingEndpoint_BeanSlot();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE = eINSTANCE.getYBeanSlotListBindingEndpoint_CollectionType();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME = eINSTANCE.getYBeanSlotListBindingEndpoint_CollectionTypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint <em>YEmbeddable Binding Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableBindingEndpoint()
+		 * @generated
+		 */
+		EClass YEMBEDDABLE_BINDING_ENDPOINT = eINSTANCE.getYEmbeddableBindingEndpoint();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableValueEndpointImpl <em>YEmbeddable Value Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableValueEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableValueEndpoint()
+		 * @generated
+		 */
+		EClass YEMBEDDABLE_VALUE_ENDPOINT = eINSTANCE.getYEmbeddableValueEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT = eINSTANCE.getYEmbeddableValueEndpoint_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableSelectionEndpointImpl <em>YEmbeddable Selection Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableSelectionEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableSelectionEndpoint()
+		 * @generated
+		 */
+		EClass YEMBEDDABLE_SELECTION_ENDPOINT = eINSTANCE.getYEmbeddableSelectionEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT = eINSTANCE.getYEmbeddableSelectionEndpoint_Element();
+
+		/**
+		 * The meta object literal for the '<em><b>Attribute Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH = eINSTANCE.getYEmbeddableSelectionEndpoint_AttributePath();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableMultiSelectionEndpointImpl <em>YEmbeddable Multi Selection Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableMultiSelectionEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableMultiSelectionEndpoint()
+		 * @generated
+		 */
+		EClass YEMBEDDABLE_MULTI_SELECTION_ENDPOINT = eINSTANCE.getYEmbeddableMultiSelectionEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT = eINSTANCE.getYEmbeddableMultiSelectionEndpoint_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableCollectionEndpointImpl <em>YEmbeddable Collection Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableCollectionEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYEmbeddableCollectionEndpoint()
+		 * @generated
+		 */
+		EClass YEMBEDDABLE_COLLECTION_ENDPOINT = eINSTANCE.getYEmbeddableCollectionEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT = eINSTANCE.getYEmbeddableCollectionEndpoint_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YActivatedEndpointImpl <em>YActivated Endpoint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YActivatedEndpointImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYActivatedEndpoint()
+		 * @generated
+		 */
+		EClass YACTIVATED_ENDPOINT = eINSTANCE.getYActivatedEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YACTIVATED_ENDPOINT__ELEMENT = eINSTANCE.getYActivatedEndpoint_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl <em>YDt Wrapper</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDtWrapper()
+		 * @generated
+		 */
+		EClass YDT_WRAPPER = eINSTANCE.getYDtWrapper();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCommand <em>YCommand</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommand
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCommand()
+		 * @generated
+		 */
+		EClass YCOMMAND = eINSTANCE.getYCommand();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl <em>YCommand Set</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCommandSet()
+		 * @generated
+		 */
+		EClass YCOMMAND_SET = eINSTANCE.getYCommandSet();
+
+		/**
+		 * The meta object literal for the '<em><b>Commands</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCOMMAND_SET__COMMANDS = eINSTANCE.getYCommandSet_Commands();
+
+		/**
+		 * The meta object literal for the '<em><b>Transient Commands</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCOMMAND_SET__TRANSIENT_COMMANDS = eINSTANCE.getYCommandSet_TransientCommands();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl <em>YOpen Dialog Command</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYOpenDialogCommand()
+		 * @generated
+		 */
+		EClass YOPEN_DIALOG_COMMAND = eINSTANCE.getYOpenDialogCommand();
+
+		/**
+		 * The meta object literal for the '<em><b>Dialog</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YOPEN_DIALOG_COMMAND__DIALOG = eINSTANCE.getYOpenDialogCommand_Dialog();
+
+		/**
+		 * The meta object literal for the '<em><b>Trigger</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPEN_DIALOG_COMMAND__TRIGGER = eINSTANCE.getYOpenDialogCommand_Trigger();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl <em>YExposed Action</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYExposedAction()
+		 * @generated
+		 */
+		EClass YEXPOSED_ACTION = eINSTANCE.getYExposedAction();
+
+		/**
+		 * The meta object literal for the '<em><b>Icon</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEXPOSED_ACTION__ICON = eINSTANCE.getYExposedAction_Icon();
+
+		/**
+		 * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEXPOSED_ACTION__LABEL = eINSTANCE.getYExposedAction_Label();
+
+		/**
+		 * The meta object literal for the '<em><b>Label I1 8n Key</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEXPOSED_ACTION__LABEL_I1_8N_KEY = eINSTANCE.getYExposedAction_LabelI18nKey();
+
+		/**
+		 * The meta object literal for the '<em><b>External Click Time</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEXPOSED_ACTION__EXTERNAL_CLICK_TIME = eINSTANCE.getYExposedAction_ExternalClickTime();
+
+		/**
+		 * The meta object literal for the '<em><b>Internal Click Time</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEXPOSED_ACTION__INTERNAL_CLICK_TIME = eINSTANCE.getYExposedAction_InternalClickTime();
+
+		/**
+		 * The meta object literal for the '<em><b>Executed Notification Time</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME = eINSTANCE.getYExposedAction_ExecutedNotificationTime();
+
+		/**
+		 * The meta object literal for the '<em><b>Canceled Notification Time</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME = eINSTANCE.getYExposedAction_CanceledNotificationTime();
+
+		/**
+		 * The meta object literal for the '<em><b>Check Dirty</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEXPOSED_ACTION__CHECK_DIRTY = eINSTANCE.getYExposedAction_CheckDirty();
+
+		/**
+		 * The meta object literal for the '<em><b>External Command Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YEXPOSED_ACTION__EXTERNAL_COMMAND_ID = eINSTANCE.getYExposedAction_ExternalCommandId();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl <em>YSend Event Command</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYSendEventCommand()
+		 * @generated
+		 */
+		EClass YSEND_EVENT_COMMAND = eINSTANCE.getYSendEventCommand();
+
+		/**
+		 * The meta object literal for the '<em><b>Event Topic</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSEND_EVENT_COMMAND__EVENT_TOPIC = eINSTANCE.getYSendEventCommand_EventTopic();
+
+		/**
+		 * The meta object literal for the '<em><b>Message</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSEND_EVENT_COMMAND__MESSAGE = eINSTANCE.getYSendEventCommand_Message();
+
+		/**
+		 * The meta object literal for the '<em><b>Trigger</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSEND_EVENT_COMMAND__TRIGGER = eINSTANCE.getYSendEventCommand_Trigger();
+
+		/**
+		 * The meta object literal for the '<em><b>Auto Trigger</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSEND_EVENT_COMMAND__AUTO_TRIGGER = eINSTANCE.getYSendEventCommand_AutoTrigger();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl <em>YKey Stroke Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYKeyStrokeDefinition()
+		 * @generated
+		 */
+		EClass YKEY_STROKE_DEFINITION = eINSTANCE.getYKeyStrokeDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Key Code</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YKEY_STROKE_DEFINITION__KEY_CODE = eINSTANCE.getYKeyStrokeDefinition_KeyCode();
+
+		/**
+		 * The meta object literal for the '<em><b>Modifier Keys</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YKEY_STROKE_DEFINITION__MODIFIER_KEYS = eINSTANCE.getYKeyStrokeDefinition_ModifierKeys();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YConverter <em>YConverter</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YConverter
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYConverter()
+		 * @generated
+		 */
+		EClass YCONVERTER = eINSTANCE.getYConverter();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDelegateConverterImpl <em>YDelegate Converter</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YDelegateConverterImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDelegateConverter()
+		 * @generated
+		 */
+		EClass YDELEGATE_CONVERTER = eINSTANCE.getYDelegateConverter();
+
+		/**
+		 * The meta object literal for the '<em><b>Converter Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDELEGATE_CONVERTER__CONVERTER_ID = eINSTANCE.getYDelegateConverter_ConverterId();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YMemento <em>YMemento</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YMemento
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYMemento()
+		 * @generated
+		 */
+		EClass YMEMENTO = eINSTANCE.getYMemento();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable <em>YAuthorizationable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYAuthorizationable()
+		 * @generated
+		 */
+		EClass YAUTHORIZATIONABLE = eINSTANCE.getYAuthorizationable();
+
+		/**
+		 * The meta object literal for the '<em><b>Authorization Group</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YAUTHORIZATIONABLE__AUTHORIZATION_GROUP = eINSTANCE.getYAuthorizationable_AuthorizationGroup();
+
+		/**
+		 * The meta object literal for the '<em><b>Authorization Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YAUTHORIZATIONABLE__AUTHORIZATION_ID = eINSTANCE.getYAuthorizationable_AuthorizationId();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYTaggable()
+		 * @generated
+		 */
+		EClass YTAGGABLE = eINSTANCE.getYTaggable();
+
+		/**
+		 * The meta object literal for the '<em><b>Tags</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTAGGABLE__TAGS = eINSTANCE.getYTaggable_Tags();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDeviceType <em>YDevice Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YDeviceType
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYDeviceType()
+		 * @generated
+		 */
+		EEnum YDEVICE_TYPE = eINSTANCE.getYDeviceType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YAlignment <em>YAlignment</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYAlignment()
+		 * @generated
+		 */
+		EEnum YALIGNMENT = eINSTANCE.getYAlignment();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment <em>YFlat Alignment</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYFlatAlignment()
+		 * @generated
+		 */
+		EEnum YFLAT_ALIGNMENT = eINSTANCE.getYFlatAlignment();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YUnit <em>YUnit</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YUnit
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYUnit()
+		 * @generated
+		 */
+		EEnum YUNIT = eINSTANCE.getYUnit();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyCode <em>YKey Code</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YKeyCode
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYKeyCode()
+		 * @generated
+		 */
+		EEnum YKEY_CODE = eINSTANCE.getYKeyCode();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YModifierKey <em>YModifier Key</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YModifierKey
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYModifierKey()
+		 * @generated
+		 */
+		EEnum YMODIFIER_KEY = eINSTANCE.getYModifierKey();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YOrientation <em>YOrientation</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YOrientation
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYOrientation()
+		 * @generated
+		 */
+		EEnum YORIENTATION = eINSTANCE.getYOrientation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCompare <em>YCompare</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.YCompare
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYCompare()
+		 * @generated
+		 */
+		EEnum YCOMPARE = eINSTANCE.getYCompare();
+
+		/**
+		 * The meta object literal for the '<em>YURI</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see java.net.URI
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYURI()
+		 * @generated
+		 */
+		EDataType YURI = eINSTANCE.getYURI();
+
+		/**
+		 * The meta object literal for the '<em>YValue Change Listener</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl#getYValueChangeListener()
+		 * @generated
+		 */
+		EDataType YVALUE_CHANGE_LISTENER = eINSTANCE.getYValueChangeListener();
+
+	}
+
+} //UiModelPackage
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/KeyCode.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/KeyCode.java
new file mode 100644
index 0000000..7b6b498
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/KeyCode.java
@@ -0,0 +1,1882 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Key Code</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getKeyCode()
+ * @generated
+ */
+public enum KeyCode implements Enumerator {
+	/**
+	 * The '<em><b>ENTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ENTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ENTER(13, "ENTER", "ENTER"),
+
+	/**
+	 * The '<em><b>ESCAPE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ESCAPE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ESCAPE(27, "ESCAPE", "ESCAPE"),
+
+	/**
+	 * The '<em><b>PAGE UP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_UP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PAGE_UP(33, "PAGE_UP", "PAGE_UP"),
+
+	/**
+	 * The '<em><b>PAGE DOWN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_DOWN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PAGE_DOWN(34, "PAGE_DOWN", "PAGE_DOWN"),
+
+	/**
+	 * The '<em><b>TAB</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TAB_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TAB(9, "TAB", "TAB"),
+
+	/**
+	 * The '<em><b>ARROW LEFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_LEFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ARROW_LEFT(37, "ARROW_LEFT", "ARROW_LEFT"),
+
+	/**
+	 * The '<em><b>ARROW UP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_UP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ARROW_UP(38, "ARROW_UP", "ARROW_UP"),
+
+	/**
+	 * The '<em><b>ARROW RIGHT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_RIGHT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ARROW_RIGHT(39, "ARROW_RIGHT", "ARROW_RIGHT"),
+
+	/**
+	 * The '<em><b>ARROW DOWN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_DOWN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ARROW_DOWN(40, "ARROW_DOWN", "ARROW_DOWN"),
+
+	/**
+	 * The '<em><b>BACKSPACE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BACKSPACE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BACKSPACE(8, "BACKSPACE", "BACKSPACE"),
+
+	/**
+	 * The '<em><b>DELETE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DELETE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DELETE(46, "DELETE", "DELETE"),
+
+	/**
+	 * The '<em><b>INSERT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INSERT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	INSERT(45, "INSERT", "INSERT"),
+
+	/**
+	 * The '<em><b>END</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #END_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	END(35, "END", "END"),
+
+	/**
+	 * The '<em><b>HOME</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HOME_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	HOME(36, "HOME", "HOME"),
+
+	/**
+	 * The '<em><b>F1</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F1_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F1(112, "F1", "F1"),
+
+	/**
+	 * The '<em><b>F2</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F2_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F2(113, "F2", "F2"),
+
+	/**
+	 * The '<em><b>F3</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F3_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F3(114, "F3", "F3"),
+
+	/**
+	 * The '<em><b>F4</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F4_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F4(115, "F4", "F4"),
+
+	/**
+	 * The '<em><b>F5</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F5_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F5(116, "F5", "F5"),
+
+	/**
+	 * The '<em><b>F6</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F6_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F6(117, "F6", "F6"),
+
+	/**
+	 * The '<em><b>F7</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F7_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F7(118, "F7", "F7"),
+
+	/**
+	 * The '<em><b>F8</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F8_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F8(119, "F8", "F8"),
+
+	/**
+	 * The '<em><b>F9</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F9_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F9(120, "F9", "F9"),
+
+	/**
+	 * The '<em><b>F10</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F10_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F10(121, "F10", "F10"),
+
+	/**
+	 * The '<em><b>F11</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F11_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F11(122, "F11", "F11"),
+
+	/**
+	 * The '<em><b>F12</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F12_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F12(123, "F12", "F12"),
+
+	/**
+	 * The '<em><b>A</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #A_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	A(65, "A", "A"),
+
+	/**
+	 * The '<em><b>B</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #B_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	B(66, "B", "B"),
+
+	/**
+	 * The '<em><b>C</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #C_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	C(67, "C", "C"),
+
+	/**
+	 * The '<em><b>D</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #D_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	D(68, "D", "D"),
+
+	/**
+	 * The '<em><b>E</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #E_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	E(69, "E", "E"),
+
+	/**
+	 * The '<em><b>F</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F(70, "F", "F"),
+
+	/**
+	 * The '<em><b>G</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #G_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	G(71, "G", "G"),
+
+	/**
+	 * The '<em><b>H</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #H_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	H(72, "H", "H"),
+
+	/**
+	 * The '<em><b>I</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #I_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	I(73, "I", "I"),
+
+	/**
+	 * The '<em><b>J</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #J_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	J(74, "J", "J"),
+
+	/**
+	 * The '<em><b>K</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #K_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	K(75, "K", "K"),
+
+	/**
+	 * The '<em><b>L</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #L_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	L(76, "L", "L"),
+
+	/**
+	 * The '<em><b>M</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #M_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	M(77, "M", "M"),
+
+	/**
+	 * The '<em><b>N</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #N_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	N(78, "N", "N"),
+
+	/**
+	 * The '<em><b>O</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #O_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	O(79, "O", "O"),
+
+	/**
+	 * The '<em><b>P</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #P_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	P(80, "P", "P"),
+
+	/**
+	 * The '<em><b>Q</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #Q_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	Q(81, "Q", "Q"),
+
+	/**
+	 * The '<em><b>R</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #R_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	R(82, "R", "R"),
+
+	/**
+	 * The '<em><b>S</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #S_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	S(83, "S", "S"),
+
+	/**
+	 * The '<em><b>T</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #T_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	T(84, "T", "T"),
+
+	/**
+	 * The '<em><b>U</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #U_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	U(85, "U", "U"),
+
+	/**
+	 * The '<em><b>V</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #V_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	V(86, "V", "V"),
+
+	/**
+	 * The '<em><b>W</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #W_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	W(87, "W", "W"),
+
+	/**
+	 * The '<em><b>X</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #X_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	X(88, "X", "X"),
+
+	/**
+	 * The '<em><b>Y</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #Y_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	Y(89, "Y", "Y"),
+
+	/**
+	 * The '<em><b>Z</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #Z_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	Z(90, "Z", "Z"),
+
+	/**
+	 * The '<em><b>NUM0</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM0_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM0(48, "NUM0", "NUM0"),
+
+	/**
+	 * The '<em><b>NUM1</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM1_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM1(49, "NUM1", "NUM1"),
+
+	/**
+	 * The '<em><b>NUM2</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM2_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM2(50, "NUM2", "NUM2"),
+
+	/**
+	 * The '<em><b>NUM3</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM3_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM3(51, "NUM3", "NUM3"),
+
+	/**
+	 * The '<em><b>NUM4</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM4_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM4(52, "NUM4", "NUM4"),
+
+	/**
+	 * The '<em><b>NUM5</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM5_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM5(53, "NUM5", "NUM5"),
+
+	/**
+	 * The '<em><b>NUM6</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM6_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM6(54, "NUM6", "NUM6"),
+
+	/**
+	 * The '<em><b>NUM7</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM7_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM7(55, "NUM7", "NUM7"),
+
+	/**
+	 * The '<em><b>NUM8</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM8_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM8(56, "NUM8", "NUM8"),
+
+	/**
+	 * The '<em><b>NUM9</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM9_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM9(57, "NUM9", "NUM9"),
+
+	/**
+	 * The '<em><b>SPACEBAR</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SPACEBAR_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SPACEBAR(32, "SPACEBAR", "SPACEBAR");
+
+	/**
+	 * The '<em><b>ENTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ENTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ENTER
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ENTER_VALUE = 13;
+
+	/**
+	 * The '<em><b>ESCAPE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ESCAPE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ESCAPE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ESCAPE_VALUE = 27;
+
+	/**
+	 * The '<em><b>PAGE UP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PAGE UP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_UP
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PAGE_UP_VALUE = 33;
+
+	/**
+	 * The '<em><b>PAGE DOWN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PAGE DOWN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_DOWN
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PAGE_DOWN_VALUE = 34;
+
+	/**
+	 * The '<em><b>TAB</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TAB</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #TAB
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TAB_VALUE = 9;
+
+	/**
+	 * The '<em><b>ARROW LEFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ARROW LEFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_LEFT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ARROW_LEFT_VALUE = 37;
+
+	/**
+	 * The '<em><b>ARROW UP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ARROW UP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_UP
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ARROW_UP_VALUE = 38;
+
+	/**
+	 * The '<em><b>ARROW RIGHT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ARROW RIGHT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_RIGHT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ARROW_RIGHT_VALUE = 39;
+
+	/**
+	 * The '<em><b>ARROW DOWN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ARROW DOWN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_DOWN
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ARROW_DOWN_VALUE = 40;
+
+	/**
+	 * The '<em><b>BACKSPACE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BACKSPACE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #BACKSPACE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BACKSPACE_VALUE = 8;
+
+	/**
+	 * The '<em><b>DELETE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DELETE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #DELETE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DELETE_VALUE = 46;
+
+	/**
+	 * The '<em><b>INSERT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>INSERT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #INSERT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INSERT_VALUE = 45;
+
+	/**
+	 * The '<em><b>END</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>END</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #END
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int END_VALUE = 35;
+
+	/**
+	 * The '<em><b>HOME</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>HOME</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #HOME
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HOME_VALUE = 36;
+
+	/**
+	 * The '<em><b>F1</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F1</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F1
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F1_VALUE = 112;
+
+	/**
+	 * The '<em><b>F2</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F2</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F2
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F2_VALUE = 113;
+
+	/**
+	 * The '<em><b>F3</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F3</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F3
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F3_VALUE = 114;
+
+	/**
+	 * The '<em><b>F4</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F4</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F4
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F4_VALUE = 115;
+
+	/**
+	 * The '<em><b>F5</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F5</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F5
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F5_VALUE = 116;
+
+	/**
+	 * The '<em><b>F6</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F6</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F6
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F6_VALUE = 117;
+
+	/**
+	 * The '<em><b>F7</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F7</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F7
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F7_VALUE = 118;
+
+	/**
+	 * The '<em><b>F8</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F8</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F8
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F8_VALUE = 119;
+
+	/**
+	 * The '<em><b>F9</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F9</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F9
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F9_VALUE = 120;
+
+	/**
+	 * The '<em><b>F10</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F10</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F10
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F10_VALUE = 121;
+
+	/**
+	 * The '<em><b>F11</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F11</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F11
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F11_VALUE = 122;
+
+	/**
+	 * The '<em><b>F12</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F12</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F12
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F12_VALUE = 123;
+
+	/**
+	 * The '<em><b>A</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>A</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #A
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int A_VALUE = 65;
+
+	/**
+	 * The '<em><b>B</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>B</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #B
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int B_VALUE = 66;
+
+	/**
+	 * The '<em><b>C</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>C</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #C
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int C_VALUE = 67;
+
+	/**
+	 * The '<em><b>D</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>D</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #D
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int D_VALUE = 68;
+
+	/**
+	 * The '<em><b>E</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>E</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #E
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int E_VALUE = 69;
+
+	/**
+	 * The '<em><b>F</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F_VALUE = 70;
+
+	/**
+	 * The '<em><b>G</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>G</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #G
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int G_VALUE = 71;
+
+	/**
+	 * The '<em><b>H</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>H</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #H
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int H_VALUE = 72;
+
+	/**
+	 * The '<em><b>I</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>I</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #I
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int I_VALUE = 73;
+
+	/**
+	 * The '<em><b>J</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>J</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #J
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int J_VALUE = 74;
+
+	/**
+	 * The '<em><b>K</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>K</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #K
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int K_VALUE = 75;
+
+	/**
+	 * The '<em><b>L</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>L</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #L
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int L_VALUE = 76;
+
+	/**
+	 * The '<em><b>M</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>M</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #M
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int M_VALUE = 77;
+
+	/**
+	 * The '<em><b>N</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>N</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #N
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int N_VALUE = 78;
+
+	/**
+	 * The '<em><b>O</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>O</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #O
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int O_VALUE = 79;
+
+	/**
+	 * The '<em><b>P</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>P</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #P
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int P_VALUE = 80;
+
+	/**
+	 * The '<em><b>Q</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Q</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #Q
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int Q_VALUE = 81;
+
+	/**
+	 * The '<em><b>R</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>R</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #R
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int R_VALUE = 82;
+
+	/**
+	 * The '<em><b>S</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>S</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #S
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int S_VALUE = 83;
+
+	/**
+	 * The '<em><b>T</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>T</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #T
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int T_VALUE = 84;
+
+	/**
+	 * The '<em><b>U</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>U</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #U
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int U_VALUE = 85;
+
+	/**
+	 * The '<em><b>V</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>V</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #V
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int V_VALUE = 86;
+
+	/**
+	 * The '<em><b>W</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>W</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #W
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int W_VALUE = 87;
+
+	/**
+	 * The '<em><b>X</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>X</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #X
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int X_VALUE = 88;
+
+	/**
+	 * The '<em><b>Y</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Y</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #Y
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int Y_VALUE = 89;
+
+	/**
+	 * The '<em><b>Z</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Z</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #Z
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int Z_VALUE = 90;
+
+	/**
+	 * The '<em><b>NUM0</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM0</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM0
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM0_VALUE = 48;
+
+	/**
+	 * The '<em><b>NUM1</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM1</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM1
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM1_VALUE = 49;
+
+	/**
+	 * The '<em><b>NUM2</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM2</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM2
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM2_VALUE = 50;
+
+	/**
+	 * The '<em><b>NUM3</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM3</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM3
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM3_VALUE = 51;
+
+	/**
+	 * The '<em><b>NUM4</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM4</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM4
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM4_VALUE = 52;
+
+	/**
+	 * The '<em><b>NUM5</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM5</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM5
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM5_VALUE = 53;
+
+	/**
+	 * The '<em><b>NUM6</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM6</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM6
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM6_VALUE = 54;
+
+	/**
+	 * The '<em><b>NUM7</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM7</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM7
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM7_VALUE = 55;
+
+	/**
+	 * The '<em><b>NUM8</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM8</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM8
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM8_VALUE = 56;
+
+	/**
+	 * The '<em><b>NUM9</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM9</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM9
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM9_VALUE = 57;
+
+	/**
+	 * The '<em><b>SPACEBAR</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SPACEBAR</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #SPACEBAR
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPACEBAR_VALUE = 32;
+
+	/**
+	 * An array of all the '<em><b>Key Code</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final KeyCode[] VALUES_ARRAY =
+		new KeyCode[] {
+			ENTER,
+			ESCAPE,
+			PAGE_UP,
+			PAGE_DOWN,
+			TAB,
+			ARROW_LEFT,
+			ARROW_UP,
+			ARROW_RIGHT,
+			ARROW_DOWN,
+			BACKSPACE,
+			DELETE,
+			INSERT,
+			END,
+			HOME,
+			F1,
+			F2,
+			F3,
+			F4,
+			F5,
+			F6,
+			F7,
+			F8,
+			F9,
+			F10,
+			F11,
+			F12,
+			A,
+			B,
+			C,
+			D,
+			E,
+			F,
+			G,
+			H,
+			I,
+			J,
+			K,
+			L,
+			M,
+			N,
+			O,
+			P,
+			Q,
+			R,
+			S,
+			T,
+			U,
+			V,
+			W,
+			X,
+			Y,
+			Z,
+			NUM0,
+			NUM1,
+			NUM2,
+			NUM3,
+			NUM4,
+			NUM5,
+			NUM6,
+			NUM7,
+			NUM8,
+			NUM9,
+			SPACEBAR,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Key Code</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<KeyCode> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Key Code</b></em>' literal with the specified literal
+	 * value. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param literal
+	 *            the literal
+	 * @return the key code
+	 * @generated
+	 */
+	public static KeyCode get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			KeyCode result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Key Code</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            the name
+	 * @return the by name
+	 * @generated
+	 */
+	public static KeyCode getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			KeyCode result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Key Code</b></em>' literal with the specified integer
+	 * value. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the value
+	 * @return the key code
+	 * @generated
+	 */
+	public static KeyCode get(int value) {
+		switch (value) {
+			case ENTER_VALUE: return ENTER;
+			case ESCAPE_VALUE: return ESCAPE;
+			case PAGE_UP_VALUE: return PAGE_UP;
+			case PAGE_DOWN_VALUE: return PAGE_DOWN;
+			case TAB_VALUE: return TAB;
+			case ARROW_LEFT_VALUE: return ARROW_LEFT;
+			case ARROW_UP_VALUE: return ARROW_UP;
+			case ARROW_RIGHT_VALUE: return ARROW_RIGHT;
+			case ARROW_DOWN_VALUE: return ARROW_DOWN;
+			case BACKSPACE_VALUE: return BACKSPACE;
+			case DELETE_VALUE: return DELETE;
+			case INSERT_VALUE: return INSERT;
+			case END_VALUE: return END;
+			case HOME_VALUE: return HOME;
+			case F1_VALUE: return F1;
+			case F2_VALUE: return F2;
+			case F3_VALUE: return F3;
+			case F4_VALUE: return F4;
+			case F5_VALUE: return F5;
+			case F6_VALUE: return F6;
+			case F7_VALUE: return F7;
+			case F8_VALUE: return F8;
+			case F9_VALUE: return F9;
+			case F10_VALUE: return F10;
+			case F11_VALUE: return F11;
+			case F12_VALUE: return F12;
+			case A_VALUE: return A;
+			case B_VALUE: return B;
+			case C_VALUE: return C;
+			case D_VALUE: return D;
+			case E_VALUE: return E;
+			case F_VALUE: return F;
+			case G_VALUE: return G;
+			case H_VALUE: return H;
+			case I_VALUE: return I;
+			case J_VALUE: return J;
+			case K_VALUE: return K;
+			case L_VALUE: return L;
+			case M_VALUE: return M;
+			case N_VALUE: return N;
+			case O_VALUE: return O;
+			case P_VALUE: return P;
+			case Q_VALUE: return Q;
+			case R_VALUE: return R;
+			case S_VALUE: return S;
+			case T_VALUE: return T;
+			case U_VALUE: return U;
+			case V_VALUE: return V;
+			case W_VALUE: return W;
+			case X_VALUE: return X;
+			case Y_VALUE: return Y;
+			case Z_VALUE: return Z;
+			case NUM0_VALUE: return NUM0;
+			case NUM1_VALUE: return NUM1;
+			case NUM2_VALUE: return NUM2;
+			case NUM3_VALUE: return NUM3;
+			case NUM4_VALUE: return NUM4;
+			case NUM5_VALUE: return NUM5;
+			case NUM6_VALUE: return NUM6;
+			case NUM7_VALUE: return NUM7;
+			case NUM8_VALUE: return NUM8;
+			case NUM9_VALUE: return NUM9;
+			case SPACEBAR_VALUE: return SPACEBAR;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 *
+	 * @param value
+	 *            the value
+	 * @param name
+	 *            the name
+	 * @param literal
+	 *            the literal
+	 * @generated
+	 */
+	private KeyCode(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string
+	 * representation. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //KeyCode
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/ModifierKey.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/ModifierKey.java
new file mode 100644
index 0000000..3fced9f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/ModifierKey.java
@@ -0,0 +1,290 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Modifier Key</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getModifierKey()
+ * @model
+ * @generated
+ */
+public enum ModifierKey implements Enumerator {
+	/**
+	 * The '<em><b>SHIFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SHIFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SHIFT(16, "SHIFT", "SHIFT"),
+
+	/**
+	 * The '<em><b>CTRL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CTRL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CTRL(17, "CTRL", "CTRL"),
+
+	/**
+	 * The '<em><b>ALT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ALT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ALT(18, "ALT", "ALT"),
+
+	/**
+	 * The '<em><b>META</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #META_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	META(91, "META", "META");
+
+	/**
+	 * The '<em><b>SHIFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SHIFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #SHIFT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SHIFT_VALUE = 16;
+
+	/**
+	 * The '<em><b>CTRL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CTRL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #CTRL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CTRL_VALUE = 17;
+
+	/**
+	 * The '<em><b>ALT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ALT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ALT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ALT_VALUE = 18;
+
+	/**
+	 * The '<em><b>META</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>META</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #META
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int META_VALUE = 91;
+
+	/**
+	 * An array of all the '<em><b>Modifier Key</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ModifierKey[] VALUES_ARRAY =
+		new ModifierKey[] {
+			SHIFT,
+			CTRL,
+			ALT,
+			META,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Modifier Key</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<ModifierKey> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Modifier Key</b></em>' literal with the specified
+	 * literal value. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param literal
+	 *            the literal
+	 * @return the modifier key
+	 * @generated
+	 */
+	public static ModifierKey get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ModifierKey result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Modifier Key</b></em>' literal with the specified
+	 * name. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            the name
+	 * @return the by name
+	 * @generated
+	 */
+	public static ModifierKey getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ModifierKey result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Modifier Key</b></em>' literal with the specified
+	 * integer value. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the value
+	 * @return the modifier key
+	 * @generated
+	 */
+	public static ModifierKey get(int value) {
+		switch (value) {
+			case SHIFT_VALUE: return SHIFT;
+			case CTRL_VALUE: return CTRL;
+			case ALT_VALUE: return ALT;
+			case META_VALUE: return META;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 *
+	 * @param value
+	 *            the value
+	 * @param name
+	 *            the name
+	 * @param literal
+	 *            the literal
+	 * @generated
+	 */
+	private ModifierKey(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string
+	 * representation. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //ModifierKey
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAction.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAction.java
new file mode 100644
index 0000000..60e722f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAction.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YAction</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYAction()
+ * @model
+ * @generated
+ */
+public interface YAction extends YEmbeddable, YEnable {
+} // YAction
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YActivateable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YActivateable.java
new file mode 100644
index 0000000..7b589a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YActivateable.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YActivateable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable#isInitialActivated <em>Initial Activated</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable#isActivated <em>Activated</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYActivateable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YActivateable extends YBindable {
+	/**
+	 * Returns the value of the '<em><b>Initial Activated</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initial Activated</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Initial Activated</em>' attribute.
+	 * @see #setInitialActivated(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYActivateable_InitialActivated()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isInitialActivated();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable#isInitialActivated <em>Initial Activated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Initial Activated</em>' attribute.
+	 * @see #isInitialActivated()
+	 * @generated
+	 */
+	void setInitialActivated(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Activated</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Activated</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Activated</em>' attribute.
+	 * @see #setActivated(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYActivateable_Activated()
+	 * @model default="true" transient="true" derived="true"
+	 * @generated
+	 */
+	boolean isActivated();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable#isActivated <em>Activated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Activated</em>' attribute.
+	 * @see #isActivated()
+	 * @generated
+	 */
+	void setActivated(boolean value);
+
+} // YActivateable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YActivatedEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YActivatedEndpoint.java
new file mode 100644
index 0000000..033473a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YActivatedEndpoint.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YActivated Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYActivatedEndpoint()
+ * @model
+ * @generated
+ */
+public interface YActivatedEndpoint extends YValueBindingEndpoint, YEmbeddableBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element</em>' reference.
+	 * @see #setElement(YActivateable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYActivatedEndpoint_Element()
+	 * @model required="true"
+	 * @generated
+	 */
+	YActivateable getElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint#getElement <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element</em>' reference.
+	 * @see #getElement()
+	 * @generated
+	 */
+	void setElement(YActivateable value);
+
+} // YActivatedEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAlignment.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAlignment.java
new file mode 100644
index 0000000..c17cc5f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAlignment.java
@@ -0,0 +1,621 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YAlignment</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYAlignment()
+ * @model
+ * @generated
+ */
+public enum YAlignment implements Enumerator {
+	/**
+	 * The '<em><b>BOTTOM LEFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BOTTOM_LEFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BOTTOM_LEFT(0, "BOTTOM_LEFT", "BOTTOM_LEFT"),
+
+	/**
+	 * The '<em><b>BOTTOM CENTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BOTTOM_CENTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BOTTOM_CENTER(1, "BOTTOM_CENTER", "BOTTOM_CENTER"),
+
+	/**
+	 * The '<em><b>BOTTOM RIGHT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BOTTOM_RIGHT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BOTTOM_RIGHT(2, "BOTTOM_RIGHT", "BOTTOM_RIGHT"),
+
+	/**
+	 * The '<em><b>BOTTOM FILL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BOTTOM_FILL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BOTTOM_FILL(3, "BOTTOM_FILL", "BOTTOM_FILL"),
+
+	/**
+	 * The '<em><b>MIDDLE LEFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MIDDLE_LEFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MIDDLE_LEFT(4, "MIDDLE_LEFT", "MIDDLE_LEFT"),
+
+	/**
+	 * The '<em><b>MIDDLE CENTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MIDDLE_CENTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MIDDLE_CENTER(5, "MIDDLE_CENTER", "MIDDLE_CENTER"),
+
+	/**
+	 * The '<em><b>MIDDLE RIGHT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MIDDLE_RIGHT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MIDDLE_RIGHT(6, "MIDDLE_RIGHT", "MIDDLE_RIGHT"),
+
+	/**
+	 * The '<em><b>MIDDLE FILL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MIDDLE_FILL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MIDDLE_FILL(7, "MIDDLE_FILL", "MIDDLE_FILL"),
+
+	/**
+	 * The '<em><b>TOP LEFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TOP_LEFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TOP_LEFT(8, "TOP_LEFT", "TOP_LEFT"),
+
+	/**
+	 * The '<em><b>TOP CENTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TOP_CENTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TOP_CENTER(9, "TOP_CENTER", "TOP_CENTER"),
+
+	/**
+	 * The '<em><b>TOP RIGHT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TOP_RIGHT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TOP_RIGHT(10, "TOP_RIGHT", "TOP_RIGHT"),
+
+	/**
+	 * The '<em><b>TOP FILL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TOP_FILL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TOP_FILL(11, "TOP_FILL", "TOP_FILL"),
+
+	/**
+	 * The '<em><b>FILL FILL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FILL_FILL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FILL_FILL(12, "FILL_FILL", "FILL_FILL"),
+
+	/**
+	 * The '<em><b>FILL LEFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FILL_LEFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FILL_LEFT(13, "FILL_LEFT", "FILL_LEFT"),
+
+	/**
+	 * The '<em><b>FILL CENTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FILL_CENTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FILL_CENTER(14, "FILL_CENTER", "FILL_CENTER"),
+
+	/**
+	 * The '<em><b>FILL RIGHT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FILL_RIGHT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FILL_RIGHT(15, "FILL_RIGHT", "FILL_RIGHT"),
+
+	/**
+	 * The '<em><b>UNDEFINED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNDEFINED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UNDEFINED(16, "UNDEFINED", "UNDEFINED");
+
+	/**
+	 * The '<em><b>BOTTOM LEFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BOTTOM LEFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #BOTTOM_LEFT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BOTTOM_LEFT_VALUE = 0;
+
+	/**
+	 * The '<em><b>BOTTOM CENTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BOTTOM CENTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #BOTTOM_CENTER
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BOTTOM_CENTER_VALUE = 1;
+
+	/**
+	 * The '<em><b>BOTTOM RIGHT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BOTTOM RIGHT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #BOTTOM_RIGHT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BOTTOM_RIGHT_VALUE = 2;
+
+	/**
+	 * The '<em><b>BOTTOM FILL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BOTTOM FILL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #BOTTOM_FILL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BOTTOM_FILL_VALUE = 3;
+
+	/**
+	 * The '<em><b>MIDDLE LEFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MIDDLE LEFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #MIDDLE_LEFT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MIDDLE_LEFT_VALUE = 4;
+
+	/**
+	 * The '<em><b>MIDDLE CENTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MIDDLE CENTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #MIDDLE_CENTER
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MIDDLE_CENTER_VALUE = 5;
+
+	/**
+	 * The '<em><b>MIDDLE RIGHT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MIDDLE RIGHT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #MIDDLE_RIGHT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MIDDLE_RIGHT_VALUE = 6;
+
+	/**
+	 * The '<em><b>MIDDLE FILL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MIDDLE FILL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #MIDDLE_FILL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MIDDLE_FILL_VALUE = 7;
+
+	/**
+	 * The '<em><b>TOP LEFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TOP LEFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #TOP_LEFT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TOP_LEFT_VALUE = 8;
+
+	/**
+	 * The '<em><b>TOP CENTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TOP CENTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #TOP_CENTER
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TOP_CENTER_VALUE = 9;
+
+	/**
+	 * The '<em><b>TOP RIGHT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TOP RIGHT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #TOP_RIGHT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TOP_RIGHT_VALUE = 10;
+
+	/**
+	 * The '<em><b>TOP FILL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TOP FILL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #TOP_FILL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TOP_FILL_VALUE = 11;
+
+	/**
+	 * The '<em><b>FILL FILL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FILL FILL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #FILL_FILL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FILL_FILL_VALUE = 12;
+
+	/**
+	 * The '<em><b>FILL LEFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FILL LEFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #FILL_LEFT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FILL_LEFT_VALUE = 13;
+
+	/**
+	 * The '<em><b>FILL CENTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FILL CENTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #FILL_CENTER
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FILL_CENTER_VALUE = 14;
+
+	/**
+	 * The '<em><b>FILL RIGHT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FILL RIGHT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #FILL_RIGHT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FILL_RIGHT_VALUE = 15;
+
+	/**
+	 * The '<em><b>UNDEFINED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>UNDEFINED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #UNDEFINED
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UNDEFINED_VALUE = 16;
+
+	/**
+	 * An array of all the '<em><b>YAlignment</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YAlignment[] VALUES_ARRAY =
+		new YAlignment[] {
+			BOTTOM_LEFT,
+			BOTTOM_CENTER,
+			BOTTOM_RIGHT,
+			BOTTOM_FILL,
+			MIDDLE_LEFT,
+			MIDDLE_CENTER,
+			MIDDLE_RIGHT,
+			MIDDLE_FILL,
+			TOP_LEFT,
+			TOP_CENTER,
+			TOP_RIGHT,
+			TOP_FILL,
+			FILL_FILL,
+			FILL_LEFT,
+			FILL_CENTER,
+			FILL_RIGHT,
+			UNDEFINED,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YAlignment</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YAlignment> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YAlignment</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YAlignment get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YAlignment result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YAlignment</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YAlignment getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YAlignment result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YAlignment</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YAlignment get(int value) {
+		switch (value) {
+			case BOTTOM_LEFT_VALUE: return BOTTOM_LEFT;
+			case BOTTOM_CENTER_VALUE: return BOTTOM_CENTER;
+			case BOTTOM_RIGHT_VALUE: return BOTTOM_RIGHT;
+			case BOTTOM_FILL_VALUE: return BOTTOM_FILL;
+			case MIDDLE_LEFT_VALUE: return MIDDLE_LEFT;
+			case MIDDLE_CENTER_VALUE: return MIDDLE_CENTER;
+			case MIDDLE_RIGHT_VALUE: return MIDDLE_RIGHT;
+			case MIDDLE_FILL_VALUE: return MIDDLE_FILL;
+			case TOP_LEFT_VALUE: return TOP_LEFT;
+			case TOP_CENTER_VALUE: return TOP_CENTER;
+			case TOP_RIGHT_VALUE: return TOP_RIGHT;
+			case TOP_FILL_VALUE: return TOP_FILL;
+			case FILL_FILL_VALUE: return FILL_FILL;
+			case FILL_LEFT_VALUE: return FILL_LEFT;
+			case FILL_CENTER_VALUE: return FILL_CENTER;
+			case FILL_RIGHT_VALUE: return FILL_RIGHT;
+			case UNDEFINED_VALUE: return UNDEFINED;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YAlignment(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YAlignment
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAlignmentContainer.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAlignmentContainer.java
new file mode 100644
index 0000000..957838e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAlignmentContainer.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YAlignment Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYAlignmentContainer()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YAlignmentContainer extends EObject {
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param child
+	 *            the child
+	 * @param alignment
+	 *            the alignment
+	 * @model
+	 * @generated
+	 */
+	void applyAlignment(YEmbeddable child, YAlignment alignment);
+
+} // YAlignmentContainer
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAuthorizationable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAuthorizationable.java
new file mode 100644
index 0000000..950d95a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YAuthorizationable.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YAuthorizationable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable#getAuthorizationGroup <em>Authorization Group</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable#getAuthorizationId <em>Authorization Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYAuthorizationable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YAuthorizationable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Authorization Group</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Authorization Group</em>' attribute.
+	 * @see #setAuthorizationGroup(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYAuthorizationable_AuthorizationGroup()
+	 * @model
+	 * @generated
+	 */
+	String getAuthorizationGroup();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable#getAuthorizationGroup <em>Authorization Group</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Authorization Group</em>' attribute.
+	 * @see #getAuthorizationGroup()
+	 * @generated
+	 */
+	void setAuthorizationGroup(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Authorization Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Authorization Id</em>' attribute.
+	 * @see #setAuthorizationId(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYAuthorizationable_AuthorizationId()
+	 * @model
+	 * @generated
+	 */
+	String getAuthorizationId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable#getAuthorizationId <em>Authorization Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Authorization Id</em>' attribute.
+	 * @see #getAuthorizationId()
+	 * @generated
+	 */
+	void setAuthorizationId(String value);
+
+} // YAuthorizationable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBeanSlot.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBeanSlot.java
new file mode 100644
index 0000000..84da744
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBeanSlot.java
@@ -0,0 +1,190 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YBean Slot</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getValueType <em>Value Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getValueTypeQualifiedName <em>Value Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getEventTopic <em>Event Topic</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#isRedirectEvents <em>Redirect Events</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlot()
+ * @model
+ * @generated
+ */
+public interface YBeanSlot extends YBindable, YTaggable {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlot_Name()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Value Type</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value Type</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Value Type</em>' attribute.
+	 * @see #setValueType(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlot_ValueType()
+	 * @model required="true"
+	 * @generated
+	 */
+	Class<?> getValueType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getValueType <em>Value Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Value Type</em>' attribute.
+	 * @see #getValueType()
+	 * @generated
+	 */
+	void setValueType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Value Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value Type Qualified Name</em>' attribute.
+	 * @see #setValueTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlot_ValueTypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getValueTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getValueTypeQualifiedName <em>Value Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value Type Qualified Name</em>' attribute.
+	 * @see #getValueTypeQualifiedName()
+	 * @generated
+	 */
+	void setValueTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Event Topic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Event Topic</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Event Topic</em>' attribute.
+	 * @see #setEventTopic(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlot_EventTopic()
+	 * @model
+	 * @generated
+	 */
+	String getEventTopic();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#getEventTopic <em>Event Topic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Event Topic</em>' attribute.
+	 * @see #getEventTopic()
+	 * @generated
+	 */
+	void setEventTopic(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Redirect Events</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Redirect Events</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Redirect Events</em>' attribute.
+	 * @see #setRedirectEvents(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlot_RedirectEvents()
+	 * @model
+	 * @generated
+	 */
+	boolean isRedirectEvents();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot#isRedirectEvents <em>Redirect Events</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Redirect Events</em>' attribute.
+	 * @see #isRedirectEvents()
+	 * @generated
+	 */
+	void setRedirectEvents(boolean value);
+
+	/**
+	 * Creates a binding endpoint that may be used to bind values against this
+	 * element.
+	 *
+	 * @param path
+	 *            the attribute or a nested path "person.address.street"
+	 * @return the y bean slot value binding endpoint
+	 */
+	YBeanSlotValueBindingEndpoint createBindingEndpoint(String path);
+
+	/**
+	 * Creates a binding endpoint that may be used to bind lists against this
+	 * element.
+	 *
+	 * @param path
+	 *            the attribute or a nested path "person.address.street"
+	 * @param collectionType
+	 *            the type contained in the collection
+	 * @return the y bean slot list binding endpoint
+	 */
+	YBeanSlotListBindingEndpoint createListBindingEndpoint(String path, Class<?> collectionType);
+
+} // YBeanSlot
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBeanSlotListBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBeanSlotListBindingEndpoint.java
new file mode 100644
index 0000000..3ec0a0c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBeanSlotListBindingEndpoint.java
@@ -0,0 +1,139 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBean Slot List Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getAttributePath <em>Attribute Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getBeanSlot <em>Bean Slot</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getCollectionType <em>Collection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getCollectionTypeQualifiedName <em>Collection Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlotListBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YBeanSlotListBindingEndpoint extends YListBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Attribute Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Attribute Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Attribute Path</em>' attribute.
+	 * @see #setAttributePath(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlotListBindingEndpoint_AttributePath()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getAttributePath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getAttributePath <em>Attribute Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Attribute Path</em>' attribute.
+	 * @see #getAttributePath()
+	 * @generated
+	 */
+	void setAttributePath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Bean Slot</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bean Slot</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bean Slot</em>' reference.
+	 * @see #setBeanSlot(YBeanSlot)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlotListBindingEndpoint_BeanSlot()
+	 * @model required="true"
+	 * @generated
+	 */
+	YBeanSlot getBeanSlot();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getBeanSlot <em>Bean Slot</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bean Slot</em>' reference.
+	 * @see #getBeanSlot()
+	 * @generated
+	 */
+	void setBeanSlot(YBeanSlot value);
+
+	/**
+	 * Returns the value of the '<em><b>Collection Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection Type</em>' attribute.
+	 * @see #setCollectionType(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlotListBindingEndpoint_CollectionType()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getCollectionType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getCollectionType <em>Collection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Collection Type</em>' attribute.
+	 * @see #getCollectionType()
+	 * @generated
+	 */
+	void setCollectionType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Collection Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection Type Qualified Name</em>' attribute.
+	 * @see #setCollectionTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlotListBindingEndpoint_CollectionTypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getCollectionTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint#getCollectionTypeQualifiedName <em>Collection Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Collection Type Qualified Name</em>' attribute.
+	 * @see #getCollectionTypeQualifiedName()
+	 * @generated
+	 */
+	void setCollectionTypeQualifiedName(String value);
+
+} // YBeanSlotListBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBeanSlotValueBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBeanSlotValueBindingEndpoint.java
new file mode 100644
index 0000000..acadc6b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBeanSlotValueBindingEndpoint.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBean Slot Value Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint#getAttributePath <em>Attribute Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint#getBeanSlot <em>Bean Slot</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlotValueBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YBeanSlotValueBindingEndpoint extends YValueBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Attribute Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Attribute Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Attribute Path</em>' attribute.
+	 * @see #setAttributePath(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlotValueBindingEndpoint_AttributePath()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getAttributePath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint#getAttributePath <em>Attribute Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Attribute Path</em>' attribute.
+	 * @see #getAttributePath()
+	 * @generated
+	 */
+	void setAttributePath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Bean Slot</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bean Slot</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bean Slot</em>' reference.
+	 * @see #setBeanSlot(YBeanSlot)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBeanSlotValueBindingEndpoint_BeanSlot()
+	 * @model required="true"
+	 * @generated
+	 */
+	YBeanSlot getBeanSlot();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint#getBeanSlot <em>Bean Slot</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bean Slot</em>' reference.
+	 * @see #getBeanSlot()
+	 * @generated
+	 */
+	void setBeanSlot(YBeanSlot value);
+
+} // YBeanSlotValueBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBindable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBindable.java
new file mode 100644
index 0000000..a9f2476
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YBindable.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBindable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYBindable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YBindable extends EObject {
+} // YBindable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCollectionBindable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCollectionBindable.java
new file mode 100644
index 0000000..07d58a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCollectionBindable.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YCollection Bindable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCollectionBindable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YCollectionBindable extends YBindable {
+	/**
+	 * Returns the value of the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection Binding Endpoint</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection Binding Endpoint</em>' reference.
+	 * @see #setCollectionBindingEndpoint(YEmbeddableCollectionEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCollectionBindable_CollectionBindingEndpoint()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint#getElement
+	 * @model opposite="element"
+	 * @generated
+	 */
+	YEmbeddableCollectionEndpoint getCollectionBindingEndpoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Collection Binding Endpoint</em>' reference.
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 */
+	void setCollectionBindingEndpoint(YEmbeddableCollectionEndpoint value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @model
+	 * @generated
+	 */
+	YEmbeddableCollectionEndpoint createCollectionEndpoint();
+
+} // YCollectionBindable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCommand.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCommand.java
new file mode 100644
index 0000000..2952d4d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCommand.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YCommand</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCommand()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YCommand extends YElement {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YView getView();
+} // YCommand
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCommandSet.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCommandSet.java
new file mode 100644
index 0000000..937ee38
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCommandSet.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EList;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YCommand Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YCommandSet#getCommands <em>Commands</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YCommandSet#getTransientCommands <em>Transient Commands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCommandSet()
+ * @model
+ * @generated
+ */
+public interface YCommandSet extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Commands</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.core.YCommand}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Commands</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Commands</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCommandSet_Commands()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YCommand> getCommands();
+
+	/**
+	 * Returns the value of the '<em><b>Transient Commands</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.core.YCommand}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Transient Commands</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Transient Commands</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCommandSet_TransientCommands()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<YCommand> getTransientCommands();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YView getView();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param command
+	 *            the command
+	 * @model commandRequired="true"
+	 * @generated
+	 */
+	void addCommand(YCommand command);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param command
+	 *            the command
+	 * @model commandRequired="true"
+	 * @generated
+	 */
+	void removeCommand(YCommand command);
+
+} // YCommandSet
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCompare.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCompare.java
new file mode 100644
index 0000000..e1af22e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCompare.java
@@ -0,0 +1,324 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YCompare</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCompare()
+ * @model
+ * @generated
+ */
+public enum YCompare implements Enumerator {
+	/**
+	 * The '<em><b>Equal</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EQUAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	EQUAL(0, "Equal", "EQ"),
+
+	/**
+	 * The '<em><b>Greater Than</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GREATER_THAN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GREATER_THAN(1, "GreaterThan", "GT"),
+
+	/**
+	 * The '<em><b>Greater Equal</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GREATER_EQUAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GREATER_EQUAL(2, "GreaterEqual", "GE"),
+
+	/**
+	 * The '<em><b>Lower Than</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOWER_THAN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LOWER_THAN(3, "LowerThan", "LT"),
+
+	/**
+	 * The '<em><b>Lower Equal</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOWER_EQUAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LOWER_EQUAL(4, "LowerEqual", "LE"),
+
+	/**
+	 * The '<em><b>Not Equal</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NOT_EQUAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NOT_EQUAL(5, "NotEqual", "NEQ");
+
+	/**
+	 * The '<em><b>Equal</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Equal</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #EQUAL
+	 * @model name="Equal" literal="EQ"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EQUAL_VALUE = 0;
+
+	/**
+	 * The '<em><b>Greater Than</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Greater Than</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #GREATER_THAN
+	 * @model name="GreaterThan" literal="GT"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GREATER_THAN_VALUE = 1;
+
+	/**
+	 * The '<em><b>Greater Equal</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Greater Equal</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #GREATER_EQUAL
+	 * @model name="GreaterEqual" literal="GE"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GREATER_EQUAL_VALUE = 2;
+
+	/**
+	 * The '<em><b>Lower Than</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Lower Than</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #LOWER_THAN
+	 * @model name="LowerThan" literal="LT"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LOWER_THAN_VALUE = 3;
+
+	/**
+	 * The '<em><b>Lower Equal</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Lower Equal</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #LOWER_EQUAL
+	 * @model name="LowerEqual" literal="LE"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LOWER_EQUAL_VALUE = 4;
+
+	/**
+	 * The '<em><b>Not Equal</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Not Equal</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NOT_EQUAL
+	 * @model name="NotEqual" literal="NEQ"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NOT_EQUAL_VALUE = 5;
+
+	/**
+	 * An array of all the '<em><b>YCompare</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YCompare[] VALUES_ARRAY =
+		new YCompare[] {
+			EQUAL,
+			GREATER_THAN,
+			GREATER_EQUAL,
+			LOWER_THAN,
+			LOWER_EQUAL,
+			NOT_EQUAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YCompare</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YCompare> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YCompare</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YCompare get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YCompare result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YCompare</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YCompare getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YCompare result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YCompare</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YCompare get(int value) {
+		switch (value) {
+			case EQUAL_VALUE: return EQUAL;
+			case GREATER_THAN_VALUE: return GREATER_THAN;
+			case GREATER_EQUAL_VALUE: return GREATER_EQUAL;
+			case LOWER_THAN_VALUE: return LOWER_THAN;
+			case LOWER_EQUAL_VALUE: return LOWER_EQUAL;
+			case NOT_EQUAL_VALUE: return NOT_EQUAL;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YCompare(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YCompare
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YContextValueBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YContextValueBindingEndpoint.java
new file mode 100644
index 0000000..027d671
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YContextValueBindingEndpoint.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YContext Value Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint#getUrlString <em>Url String</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYContextValueBindingEndpoint()
+ * @model
+ * @generated
+ */
+public interface YContextValueBindingEndpoint extends YValueBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Url String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Url String</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Url String</em>' attribute.
+	 * @see #setUrlString(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYContextValueBindingEndpoint_UrlString()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getUrlString();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint#getUrlString <em>Url String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Url String</em>' attribute.
+	 * @see #getUrlString()
+	 * @generated
+	 */
+	void setUrlString(String value);
+
+} // YContextValueBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YConverter.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YConverter.java
new file mode 100644
index 0000000..a62f0e9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YConverter.java
@@ -0,0 +1,28 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YConverter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYConverter()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YConverter extends YElement {
+} // YConverter
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCssAble.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCssAble.java
new file mode 100644
index 0000000..e562a48
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YCssAble.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Css Able</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble#getCssClass <em>Css Class</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble#getCssID <em>Css ID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCssAble()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YCssAble extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Css Class</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Css Class</em>' attribute.
+	 * @see #setCssClass(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCssAble_CssClass()
+	 * @model
+	 * @generated
+	 */
+	String getCssClass();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble#getCssClass <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Css Class</em>' attribute.
+	 * @see #getCssClass()
+	 * @generated
+	 */
+	void setCssClass(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Css ID</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Css ID</em>' attribute.
+	 * @see #setCssID(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYCssAble_CssID()
+	 * @model
+	 * @generated
+	 */
+	String getCssID();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble#getCssID <em>Css ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Css ID</em>' attribute.
+	 * @see #getCssID()
+	 * @generated
+	 */
+	void setCssID(String value);
+
+} // YUiCssAble
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDelegateConverter.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDelegateConverter.java
new file mode 100644
index 0000000..a76601e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDelegateConverter.java
@@ -0,0 +1,60 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YDelegate Converter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter#getConverterId <em>Converter Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDelegateConverter()
+ * @model
+ * @generated
+ */
+public interface YDelegateConverter extends YConverter {
+	/**
+	 * Returns the value of the '<em><b>Converter Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Converter Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Converter Id</em>' attribute.
+	 * @see #setConverterId(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDelegateConverter_ConverterId()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getConverterId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter#getConverterId <em>Converter Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Converter Id</em>' attribute.
+	 * @see #getConverterId()
+	 * @generated
+	 */
+	void setConverterId(String value);
+
+} // YDelegateConverter
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDetailBeanSlot.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDetailBeanSlot.java
new file mode 100644
index 0000000..8b3047c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDetailBeanSlot.java
@@ -0,0 +1,87 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YDetail Bean Slot</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot#getMasterBeanSlot <em>Master Bean Slot</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot#getPropertyPath <em>Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDetailBeanSlot()
+ * @model
+ * @generated
+ */
+public interface YDetailBeanSlot extends YBeanSlot {
+	/**
+	 * Returns the value of the '<em><b>Master Bean Slot</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Master Bean Slot</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Master Bean Slot</em>' reference.
+	 * @see #setMasterBeanSlot(YBeanSlot)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDetailBeanSlot_MasterBeanSlot()
+	 * @model
+	 * @generated
+	 */
+	YBeanSlot getMasterBeanSlot();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot#getMasterBeanSlot <em>Master Bean Slot</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Master Bean Slot</em>' reference.
+	 * @see #getMasterBeanSlot()
+	 * @generated
+	 */
+	void setMasterBeanSlot(YBeanSlot value);
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDetailBeanSlot_PropertyPath()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+} // YDetailBeanSlot
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDeviceType.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDeviceType.java
new file mode 100644
index 0000000..d28388c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDeviceType.java
@@ -0,0 +1,216 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YDevice Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDeviceType()
+ * @model
+ * @generated
+ */
+public enum YDeviceType implements Enumerator {
+	/**
+	 * The '<em><b>IDE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #IDE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	IDE(0, "IDE", "IDE"),
+
+	/**
+	 * The '<em><b>MOBILE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MOBILE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MOBILE(1, "MOBILE", "MOBILE");
+
+	/**
+	 * The '<em><b>IDE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>IDE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #IDE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int IDE_VALUE = 0;
+
+	/**
+	 * The '<em><b>MOBILE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MOBILE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #MOBILE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MOBILE_VALUE = 1;
+
+	/**
+	 * An array of all the '<em><b>YDevice Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YDeviceType[] VALUES_ARRAY =
+		new YDeviceType[] {
+			IDE,
+			MOBILE,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YDevice Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YDeviceType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YDevice Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YDeviceType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YDeviceType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YDevice Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YDeviceType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YDeviceType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YDevice Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YDeviceType get(int value) {
+		switch (value) {
+			case IDE_VALUE: return IDE;
+			case MOBILE_VALUE: return MOBILE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YDeviceType(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YDeviceType
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDialog.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDialog.java
new file mode 100644
index 0000000..936c036
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDialog.java
@@ -0,0 +1,335 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YDialog</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isModal <em>Modal</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isResizeable <em>Resizeable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isDraggable <em>Draggable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isClosable <em>Closable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getDatadescription <em>Datadescription</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog()
+ * @model
+ * @generated
+ */
+public interface YDialog extends YElement, YValueBindable, YCssAble {
+
+	/**
+	 * Returns the value of the '<em><b>Content</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Content</em>' containment reference isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Content</em>' containment reference.
+	 * @see #setContent(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_Content()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YEmbeddable getContent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getContent <em>Content</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Content</em>' containment reference.
+	 * @see #getContent()
+	 * @generated
+	 */
+	void setContent(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Modal</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Modal</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Modal</em>' attribute.
+	 * @see #setModal(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_Modal()
+	 * @model
+	 * @generated
+	 */
+	boolean isModal();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isModal <em>Modal</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Modal</em>' attribute.
+	 * @see #isModal()
+	 * @generated
+	 */
+	void setModal(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Resizeable</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Resizeable</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Resizeable</em>' attribute.
+	 * @see #setResizeable(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_Resizeable()
+	 * @model
+	 * @generated
+	 */
+	boolean isResizeable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isResizeable <em>Resizeable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Resizeable</em>' attribute.
+	 * @see #isResizeable()
+	 * @generated
+	 */
+	void setResizeable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Draggable</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Draggable</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Draggable</em>' attribute.
+	 * @see #setDraggable(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_Draggable()
+	 * @model
+	 * @generated
+	 */
+	boolean isDraggable();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isDraggable
+	 * <em>Draggable</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Draggable</em>' attribute.
+	 * @see #isDraggable()
+	 * @generated
+	 */
+	void setDraggable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Closable</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Closable</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Closable</em>' attribute.
+	 * @see #setClosable(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_Closable()
+	 * @model
+	 * @generated
+	 */
+	boolean isClosable();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#isClosable
+	 * <em>Closable</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Closable</em>' attribute.
+	 * @see #isClosable()
+	 * @generated
+	 */
+	void setClosable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(Object)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_Value()
+	 * @model
+	 * @generated
+	 */
+	Object getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' containment reference
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' containment reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDialog_Datadescription()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog#getDatadescription <em>Datadescription</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' containment reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the view this dialog is registered at.
+	 *
+	 * @return the view
+	 */
+	YView getView();
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label);
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey);
+
+} // YDialog
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDtWrapper.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDtWrapper.java
new file mode 100644
index 0000000..f99306b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YDtWrapper.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YDt Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYDtWrapper()
+ * @model
+ * @generated
+ */
+public interface YDtWrapper extends YDatatype {
+} // YDtWrapper
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEditable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEditable.java
new file mode 100644
index 0000000..41044fb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEditable.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEditable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable#isInitialEditable <em>Initial Editable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable#isEditable <em>Editable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEditable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YEditable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Initial Editable</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initial Editable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Initial Editable</em>' attribute.
+	 * @see #setInitialEditable(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEditable_InitialEditable()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isInitialEditable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable#isInitialEditable <em>Initial Editable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Initial Editable</em>' attribute.
+	 * @see #isInitialEditable()
+	 * @generated
+	 */
+	void setInitialEditable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Editable</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Editable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Editable</em>' attribute.
+	 * @see #setEditable(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEditable_Editable()
+	 * @model default="true" transient="true" derived="true"
+	 * @generated
+	 */
+	boolean isEditable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable#isEditable <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Editable</em>' attribute.
+	 * @see #isEditable()
+	 * @generated
+	 */
+	void setEditable(boolean value);
+
+} // YEditable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YElement.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YElement.java
new file mode 100644
index 0000000..1d9d2b1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YElement.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EMap;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YElement#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YElement#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YElement#getProperties <em>Properties</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYElement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YElement extends YTaggable {
+
+	/**
+	 * Returns the value of the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Id</em>' attribute.
+	 * @see #setId(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYElement_Id()
+	 * @model id="true"
+	 * @generated
+	 */
+	String getId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement#getId <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Id</em>' attribute.
+	 * @see #getId()
+	 * @generated
+	 */
+	void setId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYElement_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Properties</b></em>' map.
+	 * The key is of type {@link java.lang.String},
+	 * and the value is of type {@link java.lang.String},
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Properties</em>' map isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Properties</em>' map.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYElement_Properties()
+	 * @model mapType="org.eclipse.osbp.ecview.core.common.model.core.YStringToStringMap<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>"
+	 * @generated
+	 */
+	EMap<String, String> getProperties();
+} // YUiElement
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddable.java
new file mode 100644
index 0000000..f5e6971
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddable.java
@@ -0,0 +1,252 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YUi Embeddable</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getOrphanDatatypes <em>Orphan Datatypes</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getOrphanDatadescriptions <em>Orphan Datadescriptions</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#isMementoEnabled <em>Memento Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getMementoId <em>Memento Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getLabel <em>Label</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getLabelI18nKey <em>Label I1 8n Key</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface YEmbeddable extends YElement, YCssAble, YVisibleable, YAuthorizationable {
+	/**
+	 * Returns the value of the '<em><b>Orphan Datatypes</b></em>' containment
+	 * reference list. The list contents are of type
+	 * {@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Orphan Datatypes</em>' containment reference
+	 * list isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Orphan Datatypes</em>' containment
+	 *         reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddable_OrphanDatatypes()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YDatatype> getOrphanDatatypes();
+
+	/**
+	 * Returns the value of the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Orphan Datadescriptions</em>' containment
+	 * reference list isn't clear, there really should be more of a description
+	 * here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Orphan Datadescriptions</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddable_OrphanDatadescriptions()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YDatadescription> getOrphanDatadescriptions();
+
+	/**
+	 * Returns the value of the '<em><b>Memento Enabled</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Memento Enabled</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Memento Enabled</em>' attribute.
+	 * @see #setMementoEnabled(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddable_MementoEnabled()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isMementoEnabled();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#isMementoEnabled <em>Memento Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Memento Enabled</em>' attribute.
+	 * @see #isMementoEnabled()
+	 * @generated
+	 */
+	void setMementoEnabled(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Memento Id</b></em>' attribute.
+	 * The default value is <code>""</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Memento Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Memento Id</em>' attribute.
+	 * @see #setMementoId(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddable_MementoId()
+	 * @model default=""
+	 * @generated
+	 */
+	String getMementoId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getMementoId <em>Memento Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Memento Id</em>' attribute.
+	 * @see #getMementoId()
+	 * @generated
+	 */
+	void setMementoId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Label</em>' attribute.
+	 * @see #setLabel(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddable_Label()
+	 * @model volatile="true" derived="true"
+	 * @generated
+	 */
+	String getLabel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getLabel <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Label</em>' attribute.
+	 * @see #getLabel()
+	 * @generated
+	 */
+	void setLabel(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label I1 8n Key</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Label I1 8n Key</em>' attribute.
+	 * @see #setLabelI18nKey(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddable_LabelI18nKey()
+	 * @model volatile="true" derived="true"
+	 * @generated
+	 */
+	String getLabelI18nKey();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable#getLabelI18nKey <em>Label I1 8n Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Label I1 8n Key</em>' attribute.
+	 * @see #getLabelI18nKey()
+	 * @generated
+	 */
+	void setLabelI18nKey(String value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YView getView();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the parent
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YLayout getParent();
+
+//	/**
+//	 * Sets the label by creating a new datadescription.
+//	 *
+//	 * @param label
+//	 *            the new label
+//	 */
+//	public void setLabel(String label);
+//
+//	/**
+//	 * Sets the label i18nKey by creating a new datadescription.
+//	 *
+//	 * @param i18nKey
+//	 *            the new label i18n key
+//	 */
+//	public void setLabelI18nKey(String i18nKey);
+//
+//	/**
+//	 * Returns the label.
+//	 *
+//	 * @return the label
+//	 */
+//	public String getLabel();
+//	
+//	/**
+//	 * Returns the label i18n key.
+//	 *
+//	 * @return the label i18n key
+//	 */
+//	public String getLabelI18nKey();
+	
+	
+	/**
+	 * Creates a binding endpoint to observe the visible property.
+	 *
+	 * @return the y value binding endpoint
+	 */
+	YValueBindingEndpoint createVisibleEndpoint();
+
+	/**
+	 * Creates a binding endpoint to observe the cssId property.
+	 *
+	 * @return the y value binding endpoint
+	 */
+	YValueBindingEndpoint createCssIdEndpoint();
+
+	/**
+	 * Creates a binding endpoint to observe the cssClass property.
+	 *
+	 * @return the y value binding endpoint
+	 */
+	YValueBindingEndpoint createCssClassEndpoint();
+
+} // YUiEmbeddable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableBindingEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableBindingEndpoint.java
new file mode 100644
index 0000000..aaecae5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableBindingEndpoint.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEmbeddable Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableBindingEndpoint()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YEmbeddableBindingEndpoint extends EObject {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YBindable getElement();
+
+} // YEmbeddableBindingEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableCollectionEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableCollectionEndpoint.java
new file mode 100644
index 0000000..ddac182
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableCollectionEndpoint.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEmbeddable Collection Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableCollectionEndpoint()
+ * @model
+ * @generated
+ */
+public interface YEmbeddableCollectionEndpoint extends YListBindingEndpoint, YEmbeddableBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Element</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element</em>' reference.
+	 * @see #setElement(YCollectionBindable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableCollectionEndpoint_Element()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable#getCollectionBindingEndpoint
+	 * @model opposite="collectionBindingEndpoint" required="true"
+	 * @generated
+	 */
+	YCollectionBindable getElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint#getElement <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element</em>' reference.
+	 * @see #getElement()
+	 * @generated
+	 */
+	void setElement(YCollectionBindable value);
+
+} // YEmbeddableCollectionEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableMultiSelectionEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableMultiSelectionEndpoint.java
new file mode 100644
index 0000000..9985d49
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableMultiSelectionEndpoint.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEmbeddable Multi Selection Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableMultiSelectionEndpoint()
+ * @model
+ * @generated
+ */
+public interface YEmbeddableMultiSelectionEndpoint extends YListBindingEndpoint, YEmbeddableBindingEndpoint {
+	/**
+	 * Returns the value of the '<em><b>Element</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element</em>' reference.
+	 * @see #setElement(YMultiSelectionBindable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableMultiSelectionEndpoint_Element()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable#getMultiSelectionBindingEndpoint
+	 * @model opposite="multiSelectionBindingEndpoint" required="true"
+	 * @generated
+	 */
+	YMultiSelectionBindable getElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint#getElement <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element</em>' reference.
+	 * @see #getElement()
+	 * @generated
+	 */
+	void setElement(YMultiSelectionBindable value);
+
+} // YEmbeddableMultiSelectionEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableSelectionEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableSelectionEndpoint.java
new file mode 100644
index 0000000..3daa854
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableSelectionEndpoint.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEmbeddable Selection Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getElement <em>Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getAttributePath <em>Attribute Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableSelectionEndpoint()
+ * @model
+ * @generated
+ */
+public interface YEmbeddableSelectionEndpoint extends YValueBindingEndpoint, YEmbeddableBindingEndpoint {
+
+	/**
+	 * Returns the value of the '<em><b>Element</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element</em>' reference.
+	 * @see #setElement(YSelectionBindable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableSelectionEndpoint_Element()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable#getSelectionBindingEndpoint
+	 * @model opposite="selectionBindingEndpoint" required="true"
+	 * @generated
+	 */
+	YSelectionBindable getElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getElement <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element</em>' reference.
+	 * @see #getElement()
+	 * @generated
+	 */
+	void setElement(YSelectionBindable value);
+
+	/**
+	 * Returns the value of the '<em><b>Attribute Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Attribute Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Attribute Path</em>' attribute.
+	 * @see #setAttributePath(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableSelectionEndpoint_AttributePath()
+	 * @model
+	 * @generated
+	 */
+	String getAttributePath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getAttributePath <em>Attribute Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Attribute Path</em>' attribute.
+	 * @see #getAttributePath()
+	 * @generated
+	 */
+	void setAttributePath(String value);
+} // YEmbeddableSelectionEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableValueEndpoint.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableValueEndpoint.java
new file mode 100644
index 0000000..87f5d90
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEmbeddableValueEndpoint.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEmbeddable Value Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableValueEndpoint()
+ * @model
+ * @generated
+ */
+public interface YEmbeddableValueEndpoint extends YValueBindingEndpoint, YEmbeddableBindingEndpoint {
+
+	/**
+	 * Returns the value of the '<em><b>Element</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YValueBindable#getValueBindingEndpoint <em>Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element</em>' reference.
+	 * @see #setElement(YValueBindable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEmbeddableValueEndpoint_Element()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YValueBindable#getValueBindingEndpoint
+	 * @model opposite="valueBindingEndpoint" required="true"
+	 * @generated
+	 */
+	YValueBindable getElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint#getElement <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element</em>' reference.
+	 * @see #getElement()
+	 * @generated
+	 */
+	void setElement(YValueBindable value);
+} // YEmbeddableValueEndpoint
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEnable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEnable.java
new file mode 100644
index 0000000..44175fe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YEnable.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEnable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable#isInitialEnabled <em>Initial Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable#isEnabled <em>Enabled</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEnable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YEnable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Initial Enabled</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initial Enabled</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Initial Enabled</em>' attribute.
+	 * @see #setInitialEnabled(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEnable_InitialEnabled()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isInitialEnabled();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable#isInitialEnabled <em>Initial Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Initial Enabled</em>' attribute.
+	 * @see #isInitialEnabled()
+	 * @generated
+	 */
+	void setInitialEnabled(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Enabled</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Enabled</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Enabled</em>' attribute.
+	 * @see #setEnabled(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYEnable_Enabled()
+	 * @model default="true" transient="true" derived="true"
+	 * @generated
+	 */
+	boolean isEnabled();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable#isEnabled <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Enabled</em>' attribute.
+	 * @see #isEnabled()
+	 * @generated
+	 */
+	void setEnabled(boolean value);
+
+} // YEnable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YExposedAction.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YExposedAction.java
new file mode 100644
index 0000000..0f5a489
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YExposedAction.java
@@ -0,0 +1,283 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YExposed Action</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getIcon <em>Icon</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getLabel <em>Label</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getLabelI18nKey <em>Label I1 8n Key</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExternalClickTime <em>External Click Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getInternalClickTime <em>Internal Click Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExecutedNotificationTime <em>Executed Notification Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getCanceledNotificationTime <em>Canceled Notification Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#isCheckDirty <em>Check Dirty</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExternalCommandId <em>External Command Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction()
+ * @model
+ * @generated
+ */
+public interface YExposedAction extends YElement, YEnable {
+	/**
+	 * Returns the value of the '<em><b>Icon</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Icon</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Icon</em>' attribute.
+	 * @see #setIcon(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction_Icon()
+	 * @model
+	 * @generated
+	 */
+	String getIcon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getIcon <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Icon</em>' attribute.
+	 * @see #getIcon()
+	 * @generated
+	 */
+	void setIcon(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Label</em>' attribute.
+	 * @see #setLabel(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction_Label()
+	 * @model
+	 * @generated
+	 */
+	String getLabel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getLabel <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Label</em>' attribute.
+	 * @see #getLabel()
+	 * @generated
+	 */
+	void setLabel(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label I1 8n Key</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Label I1 8n Key</em>' attribute.
+	 * @see #setLabelI18nKey(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction_LabelI18nKey()
+	 * @model
+	 * @generated
+	 */
+	String getLabelI18nKey();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getLabelI18nKey <em>Label I1 8n Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Label I1 8n Key</em>' attribute.
+	 * @see #getLabelI18nKey()
+	 * @generated
+	 */
+	void setLabelI18nKey(String value);
+
+	/**
+	 * Returns the value of the '<em><b>External Click Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>External Click Time</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>External Click Time</em>' attribute.
+	 * @see #setExternalClickTime(long)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction_ExternalClickTime()
+	 * @model
+	 * @generated
+	 */
+	long getExternalClickTime();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExternalClickTime <em>External Click Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>External Click Time</em>' attribute.
+	 * @see #getExternalClickTime()
+	 * @generated
+	 */
+	void setExternalClickTime(long value);
+
+	/**
+	 * Returns the value of the '<em><b>Internal Click Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Internal Click Time</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Internal Click Time</em>' attribute.
+	 * @see #setInternalClickTime(long)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction_InternalClickTime()
+	 * @model
+	 * @generated
+	 */
+	long getInternalClickTime();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getInternalClickTime <em>Internal Click Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Internal Click Time</em>' attribute.
+	 * @see #getInternalClickTime()
+	 * @generated
+	 */
+	void setInternalClickTime(long value);
+
+	/**
+	 * Returns the value of the '<em><b>Executed Notification Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Executed Notification Time</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Executed Notification Time</em>' attribute.
+	 * @see #setExecutedNotificationTime(long)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction_ExecutedNotificationTime()
+	 * @model
+	 * @generated
+	 */
+	long getExecutedNotificationTime();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExecutedNotificationTime <em>Executed Notification Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Executed Notification Time</em>' attribute.
+	 * @see #getExecutedNotificationTime()
+	 * @generated
+	 */
+	void setExecutedNotificationTime(long value);
+
+	/**
+	 * Returns the value of the '<em><b>Canceled Notification Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Canceled Notification Time</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Canceled Notification Time</em>' attribute.
+	 * @see #setCanceledNotificationTime(long)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction_CanceledNotificationTime()
+	 * @model
+	 * @generated
+	 */
+	long getCanceledNotificationTime();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getCanceledNotificationTime <em>Canceled Notification Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Canceled Notification Time</em>' attribute.
+	 * @see #getCanceledNotificationTime()
+	 * @generated
+	 */
+	void setCanceledNotificationTime(long value);
+
+	/**
+	 * Returns the value of the '<em><b>Check Dirty</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Check Dirty</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Check Dirty</em>' attribute.
+	 * @see #setCheckDirty(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction_CheckDirty()
+	 * @model
+	 * @generated
+	 */
+	boolean isCheckDirty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#isCheckDirty <em>Check Dirty</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Check Dirty</em>' attribute.
+	 * @see #isCheckDirty()
+	 * @generated
+	 */
+	void setCheckDirty(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>External Command Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>External Command Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>External Command Id</em>' attribute.
+	 * @see #setExternalCommandId(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYExposedAction_ExternalCommandId()
+	 * @model
+	 * @generated
+	 */
+	String getExternalCommandId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction#getExternalCommandId <em>External Command Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>External Command Id</em>' attribute.
+	 * @see #getExternalCommandId()
+	 * @generated
+	 */
+	void setExternalCommandId(String value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YView getView();
+
+} // YExposedAction
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YField.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YField.java
new file mode 100644
index 0000000..e811cc6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YField.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YField#getValidators <em>Validators</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YField#getInternalValidators <em>Internal Validators</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YField#getConverter <em>Converter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYField()
+ * @model
+ * @generated
+ */
+public interface YField extends YEmbeddable, YEditable, YEnable, YFocusable {
+
+	/**
+	 * Returns the value of the '<em><b>Validators</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.validation.YValidator}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Validators</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Validators</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYField_Validators()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YValidator> getValidators();
+
+	/**
+	 * Returns the value of the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.validation.YValidator}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Internal Validators</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Internal Validators</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYField_InternalValidators()
+	 * @model containment="true" resolveProxies="true" transient="true"
+	 * @generated
+	 */
+	EList<YValidator> getInternalValidators();
+
+	/**
+	 * Returns the value of the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Converter</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Converter</em>' containment reference.
+	 * @see #setConverter(YConverter)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYField_Converter()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YConverter getConverter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YField#getConverter <em>Converter</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Converter</em>' containment reference.
+	 * @see #getConverter()
+	 * @generated
+	 */
+	void setConverter(YConverter value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param listener
+	 *            the listener
+	 * @return true, if successful
+	 * @model listenerDataType=
+	 *        "org.eclipse.osbp.ecview.core.common.model.core.YValueChangeListener"
+	 * @generated
+	 */
+	boolean addValueChangeListener(YValueChangeListener listener);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param listener
+	 *            the listener
+	 * @return true, if successful
+	 * @model listenerDataType=
+	 *        "org.eclipse.osbp.ecview.core.common.model.core.YValueChangeListener"
+	 * @generated
+	 */
+	boolean removeValueChangeListener(YValueChangeListener listener);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @model
+	 * @generated
+	 */
+	void removeAllValueChangListeners();
+	
+	/**
+	 * Creates a binding endpoint to observe the editable property.
+	 *
+	 * @return the y value binding endpoint
+	 */
+	YValueBindingEndpoint createEditableEndpoint();
+	
+	
+	/**
+	 * Creates a binding endpoint to observe the enabled property.
+	 *
+	 * @return the y value binding endpoint
+	 */
+	YValueBindingEndpoint createEnabledEndpoint();
+	
+	
+} // YUiField
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YFlatAlignment.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YFlatAlignment.java
new file mode 100644
index 0000000..9ce17b4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YFlatAlignment.java
@@ -0,0 +1,243 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YFlat Alignment</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYFlatAlignment()
+ * @model
+ * @generated
+ */
+public enum YFlatAlignment implements Enumerator {
+	/**
+	 * The '<em><b>LEFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LEFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LEFT(0, "LEFT", "LEFT"),
+
+	/**
+	 * The '<em><b>CENTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CENTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CENTER(1, "CENTER", "CENTER"),
+
+	/**
+	 * The '<em><b>RIGHT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RIGHT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RIGHT(2, "RIGHT", "RIGHT");
+
+	/**
+	 * The '<em><b>LEFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LEFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #LEFT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LEFT_VALUE = 0;
+
+	/**
+	 * The '<em><b>CENTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CENTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #CENTER
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CENTER_VALUE = 1;
+
+	/**
+	 * The '<em><b>RIGHT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RIGHT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #RIGHT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RIGHT_VALUE = 2;
+
+	/**
+	 * An array of all the '<em><b>YFlat Alignment</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YFlatAlignment[] VALUES_ARRAY =
+		new YFlatAlignment[] {
+			LEFT,
+			CENTER,
+			RIGHT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YFlat Alignment</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YFlatAlignment> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YFlat Alignment</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YFlatAlignment get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YFlatAlignment result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YFlat Alignment</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YFlatAlignment getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YFlatAlignment result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YFlat Alignment</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YFlatAlignment get(int value) {
+		switch (value) {
+			case LEFT_VALUE: return LEFT;
+			case CENTER_VALUE: return CENTER;
+			case RIGHT_VALUE: return RIGHT;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YFlatAlignment(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YFlatAlignment
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YFocusable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YFocusable.java
new file mode 100644
index 0000000..e4ac8ac
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YFocusable.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YFocusable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YFocusable#getTabIndex <em>Tab Index</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYFocusable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YFocusable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Tab Index</b></em>' attribute.
+	 * The default value is <code>"-1"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tab Index</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tab Index</em>' attribute.
+	 * @see #setTabIndex(int)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYFocusable_TabIndex()
+	 * @model default="-1"
+	 * @generated
+	 */
+	int getTabIndex();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YFocusable#getTabIndex <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tab Index</em>' attribute.
+	 * @see #getTabIndex()
+	 * @generated
+	 */
+	void setTabIndex(int value);
+
+} // YFocusable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YHeightable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YHeightable.java
new file mode 100644
index 0000000..8827e6d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YHeightable.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Heightable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable#getHeight <em>Height</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable#getHeightUnit <em>Height Unit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYHeightable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YHeightable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Height</b></em>' attribute.
+	 * The default value is <code>"100"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Height</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Height</em>' attribute.
+	 * @see #setHeight(int)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYHeightable_Height()
+	 * @model default="100"
+	 * @generated
+	 */
+	int getHeight();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable#getHeight <em>Height</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Height</em>' attribute.
+	 * @see #getHeight()
+	 * @generated
+	 */
+	void setHeight(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Height Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YUnit}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Height Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Height Unit</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YUnit
+	 * @see #setHeightUnit(YUnit)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYHeightable_HeightUnit()
+	 * @model
+	 * @generated
+	 */
+	YUnit getHeightUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable#getHeightUnit <em>Height Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Height Unit</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YUnit
+	 * @see #getHeightUnit()
+	 * @generated
+	 */
+	void setHeightUnit(YUnit value);
+
+} // YUiHeightable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YHelperLayout.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YHelperLayout.java
new file mode 100644
index 0000000..b2d523d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YHelperLayout.java
@@ -0,0 +1,62 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YHelperLayoutImpl;
+
+/**
+ * <!-- begin-user-doc --> A helper layout is a layout which contains
+ * YEmbeddables without containing them. For some reasons an embeddable may be
+ * contained by a different model object, which is not a layout. But for
+ * focusing issues we need to determine the next focusable element by YLayout.
+ * <p>
+ * For instance the CxGrid contains YColumns and each column contains an editor
+ * field. So the eContainer of editorfield is YColumn. But the focusing strategy
+ * needs to use an YLayout to find the next focusable element. Grid will use
+ * this layout to collect all editorfields inside this layout.
+ * <p>
+ * Calls to {@link #getElements()} are forwarded to
+ * {@link #getVirtualElements()}. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout#getVirtualElements <em>Virtual Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYHelperLayout()
+ * @model
+ * @generated
+ */
+public interface YHelperLayout extends YLayout {
+	/**
+	 * Returns the value of the '<em><b>Virtual Elements</b></em>' reference
+	 * list. The list contents are of type
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * A virtual element is an element that is <b>NOT</b> contained by its
+	 * parent. For instance see CxGrid#column#editorfield. See
+	 * {@link YHelperLayoutImpl}. <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Virtual Elements</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYHelperLayout_VirtualElements()
+	 * @model
+	 * @generated
+	 */
+	EList<YEmbeddable> getVirtualElements();
+
+} // YHelperLayout
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YHelperLayoutProvider.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YHelperLayoutProvider.java
new file mode 100644
index 0000000..7bc6681
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YHelperLayoutProvider.java
@@ -0,0 +1,50 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A helper layout is a layout which contains
+ * YEmbeddables without containing them. For some reasons an embeddable may be
+ * contained by a different model object, which is not a layout. But for
+ * focusing issues we need to determine the next focusable element by YLayout.
+ * <p>
+ * For instance the CxGrid contains YColumns and each column contains an editor
+ * field. So the eContainer of editorfield is YColumn. But the focusing strategy
+ * needs to use an YLayout to find the next focusable element. Grid will use
+ * this layout to collect all editorfields inside this layout.
+ * <p>
+ * Calls to <code>getElements()</code> are forwarded to
+ * <code>getVirtualElements()</code>. <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYHelperLayoutProvider()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YHelperLayoutProvider extends EObject {
+	
+	/**
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * A virtual element is an element that is <b>NOT</b> contained by its
+	 * parent. For instance see CxGrid#column#editorfield. See
+	 * {@link YHelperLayout}. <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YHelperLayout getHelperLayout();
+
+} // YHelperLayoutProvider
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YKeyCode.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YKeyCode.java
new file mode 100644
index 0000000..dd8359c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YKeyCode.java
@@ -0,0 +1,1863 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YKey Code</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYKeyCode()
+ * @model
+ * @generated
+ */
+public enum YKeyCode implements Enumerator {
+	/**
+	 * The '<em><b>ENTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ENTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ENTER(13, "ENTER", "ENTER"),
+
+	/**
+	 * The '<em><b>ESCAPE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ESCAPE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ESCAPE(27, "ESCAPE", "ESCAPE"),
+
+	/**
+	 * The '<em><b>PAGE UP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_UP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PAGE_UP(33, "PAGE_UP", "PAGE_UP"),
+
+	/**
+	 * The '<em><b>PAGE DOWN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_DOWN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PAGE_DOWN(34, "PAGE_DOWN", "PAGE_DOWN"),
+
+	/**
+	 * The '<em><b>TAB</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TAB_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TAB(9, "TAB", "TAB"),
+
+	/**
+	 * The '<em><b>ARROW LEFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_LEFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ARROW_LEFT(37, "ARROW_LEFT", "ARROW_LEFT"),
+
+	/**
+	 * The '<em><b>ARROW UP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_UP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ARROW_UP(38, "ARROW_UP", "ARROW_UP"),
+
+	/**
+	 * The '<em><b>ARROW RIGHT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_RIGHT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ARROW_RIGHT(39, "ARROW_RIGHT", "ARROW_RIGHT"),
+
+	/**
+	 * The '<em><b>ARROW DOWN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_DOWN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ARROW_DOWN(40, "ARROW_DOWN", "ARROW_DOWN"),
+
+	/**
+	 * The '<em><b>BACKSPACE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BACKSPACE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BACKSPACE(8, "BACKSPACE", "BACKSPACE"),
+
+	/**
+	 * The '<em><b>DELETE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DELETE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DELETE(46, "DELETE", "DELETE"),
+
+	/**
+	 * The '<em><b>INSERT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INSERT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	INSERT(45, "INSERT", "INSERT"),
+
+	/**
+	 * The '<em><b>END</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #END_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	END(35, "END", "END"),
+
+	/**
+	 * The '<em><b>HOME</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HOME_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	HOME(36, "HOME", "HOME"),
+
+	/**
+	 * The '<em><b>F1</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F1_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F1(112, "F1", "F1"),
+
+	/**
+	 * The '<em><b>F2</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F2_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F2(113, "F2", "F2"),
+
+	/**
+	 * The '<em><b>F3</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F3_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F3(114, "F3", "F3"),
+
+	/**
+	 * The '<em><b>F4</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F4_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F4(115, "F4", "F4"),
+
+	/**
+	 * The '<em><b>F5</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F5_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F5(116, "F5", "F5"),
+
+	/**
+	 * The '<em><b>F6</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F6_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F6(117, "F6", "F6"),
+
+	/**
+	 * The '<em><b>F7</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F7_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F7(118, "F7", "F7"),
+
+	/**
+	 * The '<em><b>F8</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F8_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F8(119, "F8", "F8"),
+
+	/**
+	 * The '<em><b>F9</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F9_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F9(120, "F9", "F9"),
+
+	/**
+	 * The '<em><b>F10</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F10_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F10(121, "F10", "F10"),
+
+	/**
+	 * The '<em><b>F11</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F11_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F11(122, "F11", "F11"),
+
+	/**
+	 * The '<em><b>F12</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F12_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F12(123, "F12", "F12"),
+
+	/**
+	 * The '<em><b>A</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #A_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	A(65, "A", "A"),
+
+	/**
+	 * The '<em><b>B</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #B_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	B(66, "B", "B"),
+
+	/**
+	 * The '<em><b>C</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #C_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	C(67, "C", "C"),
+
+	/**
+	 * The '<em><b>D</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #D_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	D(68, "D", "D"),
+
+	/**
+	 * The '<em><b>E</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #E_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	E(69, "E", "E"),
+
+	/**
+	 * The '<em><b>F</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #F_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	F(70, "F", "F"),
+
+	/**
+	 * The '<em><b>G</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #G_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	G(71, "G", "G"),
+
+	/**
+	 * The '<em><b>H</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #H_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	H(72, "H", "H"),
+
+	/**
+	 * The '<em><b>I</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #I_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	I(73, "I", "I"),
+
+	/**
+	 * The '<em><b>J</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #J_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	J(74, "J", "J"),
+
+	/**
+	 * The '<em><b>K</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #K_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	K(75, "K", "K"),
+
+	/**
+	 * The '<em><b>L</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #L_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	L(76, "L", "L"),
+
+	/**
+	 * The '<em><b>M</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #M_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	M(77, "M", "M"),
+
+	/**
+	 * The '<em><b>N</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #N_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	N(78, "N", "N"),
+
+	/**
+	 * The '<em><b>O</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #O_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	O(79, "O", "O"),
+
+	/**
+	 * The '<em><b>P</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #P_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	P(80, "P", "P"),
+
+	/**
+	 * The '<em><b>Q</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #Q_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	Q(81, "Q", "Q"),
+
+	/**
+	 * The '<em><b>R</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #R_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	R(82, "R", "R"),
+
+	/**
+	 * The '<em><b>S</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #S_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	S(83, "S", "S"),
+
+	/**
+	 * The '<em><b>T</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #T_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	T(84, "T", "T"),
+
+	/**
+	 * The '<em><b>U</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #U_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	U(85, "U", "U"),
+
+	/**
+	 * The '<em><b>V</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #V_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	V(86, "V", "V"),
+
+	/**
+	 * The '<em><b>W</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #W_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	W(87, "W", "W"),
+
+	/**
+	 * The '<em><b>X</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #X_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	X(88, "X", "X"),
+
+	/**
+	 * The '<em><b>Y</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #Y_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	Y(89, "Y", "Y"),
+
+	/**
+	 * The '<em><b>Z</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #Z_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	Z(90, "Z", "Z"),
+
+	/**
+	 * The '<em><b>NUM0</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM0_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM0(48, "NUM0", "NUM0"),
+
+	/**
+	 * The '<em><b>NUM1</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM1_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM1(49, "NUM1", "NUM1"),
+
+	/**
+	 * The '<em><b>NUM2</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM2_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM2(50, "NUM2", "NUM2"),
+
+	/**
+	 * The '<em><b>NUM3</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM3_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM3(51, "NUM3", "NUM3"),
+
+	/**
+	 * The '<em><b>NUM4</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM4_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM4(52, "NUM4", "NUM4"),
+
+	/**
+	 * The '<em><b>NUM5</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM5_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM5(53, "NUM5", "NUM5"),
+
+	/**
+	 * The '<em><b>NUM6</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM6_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM6(54, "NUM6", "NUM6"),
+
+	/**
+	 * The '<em><b>NUM7</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM7_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM7(55, "NUM7", "NUM7"),
+
+	/**
+	 * The '<em><b>NUM8</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM8_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM8(56, "NUM8", "NUM8"),
+
+	/**
+	 * The '<em><b>NUM9</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUM9_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NUM9(57, "NUM9", "NUM9"),
+
+	/**
+	 * The '<em><b>SPACEBAR</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SPACEBAR_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SPACEBAR(32, "SPACEBAR", "SPACEBAR");
+
+	/**
+	 * The '<em><b>ENTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ENTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ENTER
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ENTER_VALUE = 13;
+
+	/**
+	 * The '<em><b>ESCAPE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ESCAPE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ESCAPE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ESCAPE_VALUE = 27;
+
+	/**
+	 * The '<em><b>PAGE UP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PAGE UP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_UP
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PAGE_UP_VALUE = 33;
+
+	/**
+	 * The '<em><b>PAGE DOWN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PAGE DOWN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_DOWN
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PAGE_DOWN_VALUE = 34;
+
+	/**
+	 * The '<em><b>TAB</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TAB</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #TAB
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TAB_VALUE = 9;
+
+	/**
+	 * The '<em><b>ARROW LEFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ARROW LEFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_LEFT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ARROW_LEFT_VALUE = 37;
+
+	/**
+	 * The '<em><b>ARROW UP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ARROW UP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_UP
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ARROW_UP_VALUE = 38;
+
+	/**
+	 * The '<em><b>ARROW RIGHT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ARROW RIGHT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_RIGHT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ARROW_RIGHT_VALUE = 39;
+
+	/**
+	 * The '<em><b>ARROW DOWN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ARROW DOWN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ARROW_DOWN
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ARROW_DOWN_VALUE = 40;
+
+	/**
+	 * The '<em><b>BACKSPACE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BACKSPACE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #BACKSPACE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BACKSPACE_VALUE = 8;
+
+	/**
+	 * The '<em><b>DELETE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DELETE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #DELETE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DELETE_VALUE = 46;
+
+	/**
+	 * The '<em><b>INSERT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>INSERT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #INSERT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INSERT_VALUE = 45;
+
+	/**
+	 * The '<em><b>END</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>END</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #END
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int END_VALUE = 35;
+
+	/**
+	 * The '<em><b>HOME</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>HOME</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #HOME
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HOME_VALUE = 36;
+
+	/**
+	 * The '<em><b>F1</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F1</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F1
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F1_VALUE = 112;
+
+	/**
+	 * The '<em><b>F2</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F2</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F2
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F2_VALUE = 113;
+
+	/**
+	 * The '<em><b>F3</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F3</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F3
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F3_VALUE = 114;
+
+	/**
+	 * The '<em><b>F4</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F4</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F4
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F4_VALUE = 115;
+
+	/**
+	 * The '<em><b>F5</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F5</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F5
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F5_VALUE = 116;
+
+	/**
+	 * The '<em><b>F6</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F6</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F6
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F6_VALUE = 117;
+
+	/**
+	 * The '<em><b>F7</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F7</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F7
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F7_VALUE = 118;
+
+	/**
+	 * The '<em><b>F8</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F8</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F8
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F8_VALUE = 119;
+
+	/**
+	 * The '<em><b>F9</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F9</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F9
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F9_VALUE = 120;
+
+	/**
+	 * The '<em><b>F10</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F10</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F10
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F10_VALUE = 121;
+
+	/**
+	 * The '<em><b>F11</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F11</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F11
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F11_VALUE = 122;
+
+	/**
+	 * The '<em><b>F12</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F12</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F12
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F12_VALUE = 123;
+
+	/**
+	 * The '<em><b>A</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>A</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #A
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int A_VALUE = 65;
+
+	/**
+	 * The '<em><b>B</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>B</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #B
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int B_VALUE = 66;
+
+	/**
+	 * The '<em><b>C</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>C</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #C
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int C_VALUE = 67;
+
+	/**
+	 * The '<em><b>D</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>D</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #D
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int D_VALUE = 68;
+
+	/**
+	 * The '<em><b>E</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>E</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #E
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int E_VALUE = 69;
+
+	/**
+	 * The '<em><b>F</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>F</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #F
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int F_VALUE = 70;
+
+	/**
+	 * The '<em><b>G</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>G</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #G
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int G_VALUE = 71;
+
+	/**
+	 * The '<em><b>H</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>H</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #H
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int H_VALUE = 72;
+
+	/**
+	 * The '<em><b>I</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>I</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #I
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int I_VALUE = 73;
+
+	/**
+	 * The '<em><b>J</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>J</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #J
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int J_VALUE = 74;
+
+	/**
+	 * The '<em><b>K</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>K</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #K
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int K_VALUE = 75;
+
+	/**
+	 * The '<em><b>L</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>L</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #L
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int L_VALUE = 76;
+
+	/**
+	 * The '<em><b>M</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>M</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #M
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int M_VALUE = 77;
+
+	/**
+	 * The '<em><b>N</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>N</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #N
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int N_VALUE = 78;
+
+	/**
+	 * The '<em><b>O</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>O</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #O
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int O_VALUE = 79;
+
+	/**
+	 * The '<em><b>P</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>P</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #P
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int P_VALUE = 80;
+
+	/**
+	 * The '<em><b>Q</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Q</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #Q
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int Q_VALUE = 81;
+
+	/**
+	 * The '<em><b>R</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>R</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #R
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int R_VALUE = 82;
+
+	/**
+	 * The '<em><b>S</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>S</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #S
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int S_VALUE = 83;
+
+	/**
+	 * The '<em><b>T</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>T</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #T
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int T_VALUE = 84;
+
+	/**
+	 * The '<em><b>U</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>U</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #U
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int U_VALUE = 85;
+
+	/**
+	 * The '<em><b>V</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>V</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #V
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int V_VALUE = 86;
+
+	/**
+	 * The '<em><b>W</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>W</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #W
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int W_VALUE = 87;
+
+	/**
+	 * The '<em><b>X</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>X</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #X
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int X_VALUE = 88;
+
+	/**
+	 * The '<em><b>Y</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Y</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #Y
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int Y_VALUE = 89;
+
+	/**
+	 * The '<em><b>Z</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Z</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #Z
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int Z_VALUE = 90;
+
+	/**
+	 * The '<em><b>NUM0</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM0</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM0
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM0_VALUE = 48;
+
+	/**
+	 * The '<em><b>NUM1</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM1</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM1
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM1_VALUE = 49;
+
+	/**
+	 * The '<em><b>NUM2</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM2</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM2
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM2_VALUE = 50;
+
+	/**
+	 * The '<em><b>NUM3</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM3</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM3
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM3_VALUE = 51;
+
+	/**
+	 * The '<em><b>NUM4</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM4</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM4
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM4_VALUE = 52;
+
+	/**
+	 * The '<em><b>NUM5</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM5</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM5
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM5_VALUE = 53;
+
+	/**
+	 * The '<em><b>NUM6</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM6</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM6
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM6_VALUE = 54;
+
+	/**
+	 * The '<em><b>NUM7</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM7</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM7
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM7_VALUE = 55;
+
+	/**
+	 * The '<em><b>NUM8</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM8</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM8
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM8_VALUE = 56;
+
+	/**
+	 * The '<em><b>NUM9</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUM9</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NUM9
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUM9_VALUE = 57;
+
+	/**
+	 * The '<em><b>SPACEBAR</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SPACEBAR</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #SPACEBAR
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPACEBAR_VALUE = 32;
+
+	/**
+	 * An array of all the '<em><b>YKey Code</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YKeyCode[] VALUES_ARRAY =
+		new YKeyCode[] {
+			ENTER,
+			ESCAPE,
+			PAGE_UP,
+			PAGE_DOWN,
+			TAB,
+			ARROW_LEFT,
+			ARROW_UP,
+			ARROW_RIGHT,
+			ARROW_DOWN,
+			BACKSPACE,
+			DELETE,
+			INSERT,
+			END,
+			HOME,
+			F1,
+			F2,
+			F3,
+			F4,
+			F5,
+			F6,
+			F7,
+			F8,
+			F9,
+			F10,
+			F11,
+			F12,
+			A,
+			B,
+			C,
+			D,
+			E,
+			F,
+			G,
+			H,
+			I,
+			J,
+			K,
+			L,
+			M,
+			N,
+			O,
+			P,
+			Q,
+			R,
+			S,
+			T,
+			U,
+			V,
+			W,
+			X,
+			Y,
+			Z,
+			NUM0,
+			NUM1,
+			NUM2,
+			NUM3,
+			NUM4,
+			NUM5,
+			NUM6,
+			NUM7,
+			NUM8,
+			NUM9,
+			SPACEBAR,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YKey Code</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YKeyCode> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YKey Code</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YKeyCode get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YKeyCode result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YKey Code</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YKeyCode getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YKeyCode result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YKey Code</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YKeyCode get(int value) {
+		switch (value) {
+			case ENTER_VALUE: return ENTER;
+			case ESCAPE_VALUE: return ESCAPE;
+			case PAGE_UP_VALUE: return PAGE_UP;
+			case PAGE_DOWN_VALUE: return PAGE_DOWN;
+			case TAB_VALUE: return TAB;
+			case ARROW_LEFT_VALUE: return ARROW_LEFT;
+			case ARROW_UP_VALUE: return ARROW_UP;
+			case ARROW_RIGHT_VALUE: return ARROW_RIGHT;
+			case ARROW_DOWN_VALUE: return ARROW_DOWN;
+			case BACKSPACE_VALUE: return BACKSPACE;
+			case DELETE_VALUE: return DELETE;
+			case INSERT_VALUE: return INSERT;
+			case END_VALUE: return END;
+			case HOME_VALUE: return HOME;
+			case F1_VALUE: return F1;
+			case F2_VALUE: return F2;
+			case F3_VALUE: return F3;
+			case F4_VALUE: return F4;
+			case F5_VALUE: return F5;
+			case F6_VALUE: return F6;
+			case F7_VALUE: return F7;
+			case F8_VALUE: return F8;
+			case F9_VALUE: return F9;
+			case F10_VALUE: return F10;
+			case F11_VALUE: return F11;
+			case F12_VALUE: return F12;
+			case A_VALUE: return A;
+			case B_VALUE: return B;
+			case C_VALUE: return C;
+			case D_VALUE: return D;
+			case E_VALUE: return E;
+			case F_VALUE: return F;
+			case G_VALUE: return G;
+			case H_VALUE: return H;
+			case I_VALUE: return I;
+			case J_VALUE: return J;
+			case K_VALUE: return K;
+			case L_VALUE: return L;
+			case M_VALUE: return M;
+			case N_VALUE: return N;
+			case O_VALUE: return O;
+			case P_VALUE: return P;
+			case Q_VALUE: return Q;
+			case R_VALUE: return R;
+			case S_VALUE: return S;
+			case T_VALUE: return T;
+			case U_VALUE: return U;
+			case V_VALUE: return V;
+			case W_VALUE: return W;
+			case X_VALUE: return X;
+			case Y_VALUE: return Y;
+			case Z_VALUE: return Z;
+			case NUM0_VALUE: return NUM0;
+			case NUM1_VALUE: return NUM1;
+			case NUM2_VALUE: return NUM2;
+			case NUM3_VALUE: return NUM3;
+			case NUM4_VALUE: return NUM4;
+			case NUM5_VALUE: return NUM5;
+			case NUM6_VALUE: return NUM6;
+			case NUM7_VALUE: return NUM7;
+			case NUM8_VALUE: return NUM8;
+			case NUM9_VALUE: return NUM9;
+			case SPACEBAR_VALUE: return SPACEBAR;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YKeyCode(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YKeyCode
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YKeyStrokeDefinition.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YKeyStrokeDefinition.java
new file mode 100644
index 0000000..73f30ec
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YKeyStrokeDefinition.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EList;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YKey Stroke Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition#getKeyCode <em>Key Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition#getModifierKeys <em>Modifier Keys</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYKeyStrokeDefinition()
+ * @model
+ * @generated
+ */
+public interface YKeyStrokeDefinition extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Key Code</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YKeyCode}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Key Code</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Key Code</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YKeyCode
+	 * @see #setKeyCode(YKeyCode)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYKeyStrokeDefinition_KeyCode()
+	 * @model
+	 * @generated
+	 */
+	YKeyCode getKeyCode();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition#getKeyCode <em>Key Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Key Code</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YKeyCode
+	 * @see #getKeyCode()
+	 * @generated
+	 */
+	void setKeyCode(YKeyCode value);
+
+	/**
+	 * Returns the value of the '<em><b>Modifier Keys</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.core.YModifierKey}.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YModifierKey}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Modifier Keys</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Modifier Keys</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YModifierKey
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYKeyStrokeDefinition_ModifierKeys()
+	 * @model
+	 * @generated
+	 */
+	EList<YModifierKey> getModifierKeys();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YView getView();
+
+} // YKeyStrokeDefinition
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YLayout.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YLayout.java
new file mode 100644
index 0000000..12c89eb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YLayout.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EList;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YUi Layout</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YLayout#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYLayout()
+ * @model
+ * @generated
+ */
+public interface YLayout extends YEmbeddable, YEditable, YEnable {
+	/**
+	 * Returns the value of the '<em><b>Elements</b></em>' containment reference
+	 * list. The list contents are of type
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Elements</em>' containment reference list
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Elements</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYLayout_Elements()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<YEmbeddable> getElements();
+
+	/**
+	 * Adds the given element to the list of elements.
+	 *
+	 * @param element
+	 *            the element
+	 * @return true, if the element was added
+	 */
+	boolean addElement(YEmbeddable element);
+
+	/**
+	 * Adds the given element to the list of elements at the given position. If
+	 * position is greater than list size, the element will be added at the end
+	 * of the list.
+	 *
+	 * @param index
+	 *            the index
+	 * @param element
+	 *            the element
+	 * @throws IllegalArgumentException
+	 *             if the object is a duplicate.
+	 */
+	void insertElement(int index, YEmbeddable element);
+
+	/**
+	 * Moves the given element from its current position to the new position.
+	 *
+	 * @param newPosition
+	 *            the new position
+	 * @param element
+	 *            the element
+	 */
+	void moveElement(int newPosition, YEmbeddable element);
+
+	/**
+	 * Removes the given element from the elements.
+	 *
+	 * @param element
+	 *            the element
+	 * @return true, if the element was removed
+	 */
+	boolean removeElement(YEmbeddable element);
+
+	/**
+	 * Returns the index of the given element. If element is not present then -1
+	 * will be returned.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the index of the element or -1 if not present.
+	 */
+	int getIndex(YEmbeddable element);
+
+	/**
+	 * Returns the element at the given index.
+	 *
+	 * @param index
+	 *            the index
+	 * @return the element at the given index.
+	 * @throws IndexOutOfBoundsException
+	 *             if the index is out of range (
+	 *             <tt>index &lt; 0 || index &gt;= size()</tt>)
+	 */
+	YEmbeddable getElement(int index);
+
+} // YUiLayout
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YMarginable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YMarginable.java
new file mode 100644
index 0000000..7e5743b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YMarginable.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Marginable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YMarginable#isMargin <em>Margin</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYMarginable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YMarginable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Margin</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Margin</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Margin</em>' attribute.
+	 * @see #setMargin(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYMarginable_Margin()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isMargin();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YMarginable#isMargin <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Margin</em>' attribute.
+	 * @see #isMargin()
+	 * @generated
+	 */
+	void setMargin(boolean value);
+
+} // YUiMarginable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YMemento.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YMemento.java
new file mode 100644
index 0000000..68441fe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YMemento.java
@@ -0,0 +1,28 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YMemento</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYMemento()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YMemento extends YElement {
+} // YMemento
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YModifierKey.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YModifierKey.java
new file mode 100644
index 0000000..91c04ba
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YModifierKey.java
@@ -0,0 +1,269 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YModifier Key</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYModifierKey()
+ * @model
+ * @generated
+ */
+public enum YModifierKey implements Enumerator {
+	/**
+	 * The '<em><b>SHIFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SHIFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SHIFT(16, "SHIFT", "SHIFT"),
+
+	/**
+	 * The '<em><b>CTRL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CTRL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CTRL(17, "CTRL", "CTRL"),
+
+	/**
+	 * The '<em><b>ALT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ALT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ALT(18, "ALT", "ALT"),
+
+	/**
+	 * The '<em><b>META</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #META_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	META(91, "META", "META");
+
+	/**
+	 * The '<em><b>SHIFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SHIFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #SHIFT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SHIFT_VALUE = 16;
+
+	/**
+	 * The '<em><b>CTRL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CTRL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #CTRL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CTRL_VALUE = 17;
+
+	/**
+	 * The '<em><b>ALT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ALT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ALT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ALT_VALUE = 18;
+
+	/**
+	 * The '<em><b>META</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>META</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #META
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int META_VALUE = 91;
+
+	/**
+	 * An array of all the '<em><b>YModifier Key</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YModifierKey[] VALUES_ARRAY =
+		new YModifierKey[] {
+			SHIFT,
+			CTRL,
+			ALT,
+			META,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YModifier Key</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YModifierKey> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YModifier Key</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YModifierKey get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YModifierKey result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YModifier Key</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YModifierKey getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YModifierKey result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YModifier Key</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YModifierKey get(int value) {
+		switch (value) {
+			case SHIFT_VALUE: return SHIFT;
+			case CTRL_VALUE: return CTRL;
+			case ALT_VALUE: return ALT;
+			case META_VALUE: return META;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YModifierKey(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YModifierKey
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YMultiSelectionBindable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YMultiSelectionBindable.java
new file mode 100644
index 0000000..6ed39d0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YMultiSelectionBindable.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YMulti Selection Bindable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYMultiSelectionBindable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YMultiSelectionBindable extends YBindable {
+	/**
+	 * Returns the value of the '<em><b>Multi Selection Binding Endpoint</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Multi Selection Binding Endpoint</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Multi Selection Binding Endpoint</em>' reference.
+	 * @see #setMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYMultiSelectionBindable_MultiSelectionBindingEndpoint()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint#getElement
+	 * @model opposite="element"
+	 * @generated
+	 */
+	YEmbeddableMultiSelectionEndpoint getMultiSelectionBindingEndpoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Multi Selection Binding Endpoint</em>' reference.
+	 * @see #getMultiSelectionBindingEndpoint()
+	 * @generated
+	 */
+	void setMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @model
+	 * @generated
+	 */
+	YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpoint();
+
+} // YMultiSelectionBindable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YOpenDialogCommand.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YOpenDialogCommand.java
new file mode 100644
index 0000000..541a734
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YOpenDialogCommand.java
@@ -0,0 +1,105 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YOpen Dialog Command</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand#getDialog <em>Dialog</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand#getTrigger <em>Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYOpenDialogCommand()
+ * @model
+ * @generated
+ */
+public interface YOpenDialogCommand extends YCommand {
+	/**
+	 * Returns the value of the '<em><b>Dialog</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Dialog</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Dialog</em>' reference.
+	 * @see #setDialog(YDialog)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYOpenDialogCommand_Dialog()
+	 * @model
+	 * @generated
+	 */
+	YDialog getDialog();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand#getDialog <em>Dialog</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Dialog</em>' reference.
+	 * @see #getDialog()
+	 * @generated
+	 */
+	void setDialog(YDialog value);
+
+	/**
+	 * Returns the value of the '<em><b>Trigger</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trigger</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Trigger</em>' attribute.
+	 * @see #setTrigger(Object)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYOpenDialogCommand_Trigger()
+	 * @model
+	 * @generated
+	 */
+	Object getTrigger();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand#getTrigger <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Trigger</em>' attribute.
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	void setTrigger(Object value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YView getView();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the YEC view model value binding endpoint
+	 * @model
+	 * @generated
+	 */
+	YECViewModelValueBindingEndpoint createTriggerDialogEndpoint();
+
+} // YOpenDialogCommand
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YOrientation.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YOrientation.java
new file mode 100644
index 0000000..bf8b71d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YOrientation.java
@@ -0,0 +1,219 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YOrientation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYOrientation()
+ * @model
+ * @generated
+ */
+public enum YOrientation implements Enumerator {
+	/**
+	 * The '<em><b>HORIZONTAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HORIZONTAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	HORIZONTAL(0, "HORIZONTAL", "HORIZONTAL"),
+
+	/**
+	 * The '<em><b>VERTICAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #VERTICAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	VERTICAL(1, "VERTICAL", "VERTICAL");
+
+	/**
+	 * The '<em><b>HORIZONTAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>HORIZONTAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #HORIZONTAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HORIZONTAL_VALUE = 0;
+
+	/**
+	 * The '<em><b>VERTICAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>VERTICAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #VERTICAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int VERTICAL_VALUE = 1;
+
+	/**
+	 * An array of all the '<em><b>YOrientation</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YOrientation[] VALUES_ARRAY =
+		new YOrientation[] {
+			HORIZONTAL,
+			VERTICAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YOrientation</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YOrientation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YOrientation</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YOrientation get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YOrientation result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YOrientation</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YOrientation getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YOrientation result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YOrientation</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YOrientation get(int value) {
+		switch (value) {
+			case HORIZONTAL_VALUE: return HORIZONTAL;
+			case VERTICAL_VALUE: return VERTICAL;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YOrientation(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YOrientation
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YSelectionBindable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YSelectionBindable.java
new file mode 100644
index 0000000..8e8adc7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YSelectionBindable.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YSelection Bindable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYSelectionBindable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YSelectionBindable extends YBindable {
+
+	/**
+	 * Returns the value of the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection Binding Endpoint</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection Binding Endpoint</em>' reference.
+	 * @see #setSelectionBindingEndpoint(YEmbeddableSelectionEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYSelectionBindable_SelectionBindingEndpoint()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint#getElement
+	 * @model opposite="element"
+	 * @generated
+	 */
+	YEmbeddableSelectionEndpoint getSelectionBindingEndpoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection Binding Endpoint</em>' reference.
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 */
+	void setSelectionBindingEndpoint(YEmbeddableSelectionEndpoint value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @model
+	 * @generated
+	 */
+	YEmbeddableSelectionEndpoint createSelectionEndpoint();
+
+} // YSelectionBindable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YSendEventCommand.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YSendEventCommand.java
new file mode 100644
index 0000000..5e86f30
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YSendEventCommand.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YSend Event Command</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getEventTopic <em>Event Topic</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getMessage <em>Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getTrigger <em>Trigger</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#isAutoTrigger <em>Auto Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYSendEventCommand()
+ * @model
+ * @generated
+ */
+public interface YSendEventCommand extends YCommand {
+	/**
+	 * Returns the value of the '<em><b>Event Topic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Event Topic</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Event Topic</em>' attribute.
+	 * @see #setEventTopic(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYSendEventCommand_EventTopic()
+	 * @model
+	 * @generated
+	 */
+	String getEventTopic();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getEventTopic <em>Event Topic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Event Topic</em>' attribute.
+	 * @see #getEventTopic()
+	 * @generated
+	 */
+	void setEventTopic(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Message</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Message</em>' attribute.
+	 * @see #setMessage(Object)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYSendEventCommand_Message()
+	 * @model
+	 * @generated
+	 */
+	Object getMessage();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getMessage <em>Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Message</em>' attribute.
+	 * @see #getMessage()
+	 * @generated
+	 */
+	void setMessage(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Trigger</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trigger</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Trigger</em>' attribute.
+	 * @see #setTrigger(Object)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYSendEventCommand_Trigger()
+	 * @model
+	 * @generated
+	 */
+	Object getTrigger();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#getTrigger <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Trigger</em>' attribute.
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	void setTrigger(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Auto Trigger</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Auto Trigger</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Auto Trigger</em>' attribute.
+	 * @see #setAutoTrigger(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYSendEventCommand_AutoTrigger()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isAutoTrigger();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand#isAutoTrigger <em>Auto Trigger</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Auto Trigger</em>' attribute.
+	 * @see #isAutoTrigger()
+	 * @generated
+	 */
+	void setAutoTrigger(boolean value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YView getView();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the YEC view model value binding endpoint
+	 * @model
+	 * @generated
+	 */
+	YECViewModelValueBindingEndpoint createTriggerEndpoint();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the YEC view model value binding endpoint
+	 * @model
+	 * @generated
+	 */
+	YECViewModelValueBindingEndpoint createMessageEndpoint();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the YEC view model value binding endpoint
+	 * @model
+	 * @generated
+	 */
+	YECViewModelValueBindingEndpoint createAutoTriggerEndpoint();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the YEC view model value binding endpoint
+	 * @model
+	 * @generated
+	 */
+	YECViewModelValueBindingEndpoint createEventTopicEndpoint();
+
+} // YSendEventCommand
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YSpacingable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YSpacingable.java
new file mode 100644
index 0000000..31b7138
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YSpacingable.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Spacingable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YSpacingable#isSpacing <em>Spacing</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYSpacingable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YSpacingable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Spacing</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Spacing</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Spacing</em>' attribute.
+	 * @see #setSpacing(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYSpacingable_Spacing()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isSpacing();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YSpacingable#isSpacing <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Spacing</em>' attribute.
+	 * @see #isSpacing()
+	 * @generated
+	 */
+	void setSpacing(boolean value);
+
+} // YUiSpacingable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YTaggable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YTaggable.java
new file mode 100644
index 0000000..c88205e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YTaggable.java
@@ -0,0 +1,53 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YTaggable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable#getTags <em>Tags</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYTaggable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YTaggable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Tags</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tags</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tags</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYTaggable_Tags()
+	 * @model
+	 * @generated
+	 */
+	EList<String> getTags();
+
+} // YTaggable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YUnit.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YUnit.java
new file mode 100644
index 0000000..657dc9d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YUnit.java
@@ -0,0 +1,220 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YUi Unit</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYUnit()
+ * @model
+ * @generated
+ */
+public enum YUnit implements Enumerator {
+	/**
+	 * The '<em><b>Pixel</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PIXEL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PIXEL(0, "Pixel", "PIXEL"),
+
+	/**
+	 * The '<em><b>Em</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	EM(1, "Em", "EM");
+
+	/**
+	 * The '<em><b>Pixel</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Pixel</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #PIXEL
+	 * @model name="Pixel" literal="PIXEL"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PIXEL_VALUE = 0;
+
+	/**
+	 * The '<em><b>Em</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Em</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #EM
+	 * @model name="Em" literal="EM"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EM_VALUE = 1;
+
+	/**
+	 * An array of all the '<em><b>YUnit</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YUnit[] VALUES_ARRAY =
+		new YUnit[] {
+			PIXEL,
+			EM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YUnit</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YUnit> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YUnit</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YUnit get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YUnit result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YUnit</b></em>' literal with the specified name. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            the name
+	 * @return the by name
+	 * @generated
+	 */
+	public static YUnit getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YUnit result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YUnit</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YUnit get(int value) {
+		switch (value) {
+			case PIXEL_VALUE: return PIXEL;
+			case EM_VALUE: return EM;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YUnit(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YUiUnit
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YValueBindable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YValueBindable.java
new file mode 100644
index 0000000..e301028
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YValueBindable.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YValue Bindable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YValueBindable#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYValueBindable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YValueBindable extends YBindable {
+	/**
+	 * Returns the value of the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint#getElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value Binding Endpoint</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value Binding Endpoint</em>' reference.
+	 * @see #setValueBindingEndpoint(YEmbeddableValueEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYValueBindable_ValueBindingEndpoint()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint#getElement
+	 * @model opposite="element"
+	 * @generated
+	 */
+	YEmbeddableValueEndpoint getValueBindingEndpoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YValueBindable#getValueBindingEndpoint <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value Binding Endpoint</em>' reference.
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 */
+	void setValueBindingEndpoint(YEmbeddableValueEndpoint value);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	YEmbeddableValueEndpoint createValueEndpoint();
+
+} // YValueBindable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YView.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YView.java
new file mode 100644
index 0000000..bbbb403
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YView.java
@@ -0,0 +1,571 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YUi View</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getRoot <em>Root</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getViewName <em>View Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getVersion <em>Version</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getBindingSet <em>Binding Set</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getBeanSlots <em>Bean Slots</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getCommandSet <em>Command Set</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getDialogs <em>Dialogs</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getDeviceType <em>Device Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getContentAlignment <em>Content Alignment</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getVisibilityProcessors <em>Visibility Processors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getTransientVisibilityProcessors <em>Transient Visibility Processors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getExposedActions <em>Exposed Actions</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getSharedStateGroup <em>Shared State Group</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getCategory <em>Category</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getInitialFocus <em>Initial Focus</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getCurrentFocus <em>Current Focus</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getDisabledElements <em>Disabled Elements</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getAuthorizationStore <em>Authorization Store</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView()
+ * @model
+ * @generated
+ */
+public interface YView extends YElement, YCssAble, YMarginable,
+		YAlignmentContainer {
+	/**
+	 * Returns the value of the '<em><b>View Name</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>View Name</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>View Name</em>' attribute.
+	 * @see #setViewName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_ViewName()
+	 * @model
+	 * @generated
+	 */
+	String getViewName();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YView#getViewName
+	 * <em>View Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>View Name</em>' attribute.
+	 * @see #getViewName()
+	 * @generated
+	 */
+	void setViewName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Version</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Version</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Version</em>' attribute.
+	 * @see #setVersion(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_Version()
+	 * @model
+	 * @generated
+	 */
+	String getVersion();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YView#getVersion
+	 * <em>Version</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Version</em>' attribute.
+	 * @see #getVersion()
+	 * @generated
+	 */
+	void setVersion(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Content</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Content</em>' containment reference isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Content</em>' containment reference.
+	 * @see #setContent(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_Content()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YEmbeddable getContent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getContent <em>Content</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Content</em>' containment reference.
+	 * @see #getContent()
+	 * @generated
+	 */
+	void setContent(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Binding Set</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Binding Set</em>' containment reference isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Binding Set</em>' containment reference.
+	 * @see #setBindingSet(YBindingSet)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_BindingSet()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YBindingSet getBindingSet();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getBindingSet <em>Binding Set</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Binding Set</em>' containment reference.
+	 * @see #getBindingSet()
+	 * @generated
+	 */
+	void setBindingSet(YBindingSet value);
+
+	/**
+	 * Returns the value of the '<em><b>Bean Slots</b></em>' containment
+	 * reference list. The list contents are of type
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bean Slots</em>' containment reference list
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Bean Slots</em>' containment reference
+	 *         list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_BeanSlots()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YBeanSlot> getBeanSlots();
+
+	/**
+	 * Returns the value of the '<em><b>Command Set</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Command Set</em>' containment reference list
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Command Set</em>' containment reference.
+	 * @see #setCommandSet(YCommandSet)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_CommandSet()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YCommandSet getCommandSet();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getCommandSet <em>Command Set</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Command Set</em>' containment reference.
+	 * @see #getCommandSet()
+	 * @generated
+	 */
+	void setCommandSet(YCommandSet value);
+
+	/**
+	 * Returns the value of the '<em><b>Dialogs</b></em>' containment reference
+	 * list. The list contents are of type
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YDialog}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Dialogs</em>' containment reference list isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Dialogs</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_Dialogs()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YDialog> getDialogs();
+
+	/**
+	 * Returns the value of the '<em><b>Device Type</b></em>' attribute. The
+	 * default value is <code>"IDE"</code>. The literals are from the
+	 * enumeration
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YDeviceType}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Device Type</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Device Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDeviceType
+	 * @see #setDeviceType(YDeviceType)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_DeviceType()
+	 * @model default="IDE"
+	 * @generated
+	 */
+	YDeviceType getDeviceType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getDeviceType <em>Device Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Device Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDeviceType
+	 * @see #getDeviceType()
+	 * @generated
+	 */
+	void setDeviceType(YDeviceType value);
+
+	/**
+	 * Returns the value of the '<em><b>Content Alignment</b></em>' attribute.
+	 * The default value is <code>"FILL_FILL"</code>. The literals are from the
+	 * enumeration
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YAlignment}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Content Alignment</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Content Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #setContentAlignment(YAlignment)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_ContentAlignment()
+	 * @model default="FILL_FILL"
+	 * @generated
+	 */
+	YAlignment getContentAlignment();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getContentAlignment <em>Content Alignment</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Content Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #getContentAlignment()
+	 * @generated
+	 */
+	void setContentAlignment(YAlignment value);
+
+	/**
+	 * Returns the value of the '<em><b>Visibility Processors</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Visibility Processors</em>' containment
+	 * reference list isn't clear, there really should be more of a description
+	 * here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Visibility Processors</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_VisibilityProcessors()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YVisibilityProcessor> getVisibilityProcessors();
+
+	/**
+	 * Returns the value of the '<em><b>Transient Visibility Processors</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Transient Visibility Processors</em>'
+	 * reference list isn't clear, there really should be more of a description
+	 * here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Transient Visibility Processors</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_TransientVisibilityProcessors()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<YVisibilityProcessor> getTransientVisibilityProcessors();
+
+	/**
+	 * Returns the value of the '<em><b>Exposed Actions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Exposed Actions</em>' containment reference
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Exposed Actions</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_ExposedActions()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YExposedAction> getExposedActions();
+
+	/**
+	 * Returns the value of the '<em><b>Shared State Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Shared State Group</em>' attribute isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Shared State Group</em>' attribute.
+	 * @see #setSharedStateGroup(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_SharedStateGroup()
+	 * @model
+	 * @generated
+	 */
+	String getSharedStateGroup();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getSharedStateGroup <em>Shared State Group</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Shared State Group</em>' attribute.
+	 * @see #getSharedStateGroup()
+	 * @generated
+	 */
+	void setSharedStateGroup(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Category</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Category</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Category</em>' attribute.
+	 * @see #setCategory(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_Category()
+	 * @model
+	 * @generated
+	 */
+	String getCategory();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YView#getCategory
+	 * <em>Category</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Category</em>' attribute.
+	 * @see #getCategory()
+	 * @generated
+	 */
+	void setCategory(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Initial Focus</b></em>' reference. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initial Focus</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Initial Focus</em>' reference.
+	 * @see #setInitialFocus(YFocusable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_InitialFocus()
+	 * @model
+	 * @generated
+	 */
+	YFocusable getInitialFocus();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getInitialFocus <em>Initial Focus</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Initial Focus</em>' reference.
+	 * @see #getInitialFocus()
+	 * @generated
+	 */
+	void setInitialFocus(YFocusable value);
+
+	/**
+	 * Returns the value of the '<em><b>Current Focus</b></em>' reference. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Current Focus</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Current Focus</em>' reference.
+	 * @see #setCurrentFocus(YFocusable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_CurrentFocus()
+	 * @model transient="true"
+	 * @generated
+	 */
+	YFocusable getCurrentFocus();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getCurrentFocus <em>Current Focus</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Current Focus</em>' reference.
+	 * @see #getCurrentFocus()
+	 * @generated
+	 */
+	void setCurrentFocus(YFocusable value);
+
+	/**
+	 * Returns the value of the '<em><b>Disabled Elements</b></em>' reference
+	 * list. The list contents are of type
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Disabled Elements</em>' reference list isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Disabled Elements</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_DisabledElements()
+	 * @model
+	 * @generated
+	 */
+	EList<YEmbeddable> getDisabledElements();
+
+	/**
+	 * Returns the value of the '<em><b>Authorization Store</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Authorization Store</em>' containment
+	 * reference isn't clear, there really should be more of a description
+	 * here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Authorization Store</em>' containment reference.
+	 * @see #setAuthorizationStore(YAuthorizationStore)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_AuthorizationStore()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YAuthorizationStore getAuthorizationStore();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getAuthorizationStore <em>Authorization Store</em>}' containment reference.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Authorization Store</em>' containment reference.
+	 * @see #getAuthorizationStore()
+	 * @generated
+	 */
+	void setAuthorizationStore(YAuthorizationStore value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the or create binding set
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YBindingSet getOrCreateBindingSet();
+
+	/**
+	 * Returns the value of the '<em><b>Root</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet#getViews <em>Views</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Root</em>' reference isn't clear, there really
+	 * should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Root</em>' reference.
+	 * @see #setRoot(YViewSet)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYView_Root()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YViewSet#getViews
+	 * @model opposite="views"
+	 * @generated
+	 */
+	YViewSet getRoot();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getRoot <em>Root</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Root</em>' reference.
+	 * @see #getRoot()
+	 * @generated
+	 */
+	void setRoot(YViewSet value);
+
+	/**
+	 * Adds a new bean slot for the given name and type.
+	 *
+	 * @param name
+	 *            the name
+	 * @param type
+	 *            the type
+	 * @return the y bean slot
+	 */
+	YBeanSlot addBeanSlot(String name, Class<?> type);
+
+	/**
+	 * Adds a new bean slot for the given name and type.
+	 *
+	 * @param name
+	 *            the name
+	 * @param type
+	 *            the type
+	 * @param masterSlot
+	 *            the masterslot to bind the new slot against
+	 * @param propertyPath
+	 *            the propertyPath for detail binding
+	 * @return the y bean slot
+	 */
+	YDetailBeanSlot addDetailBeanSlot(String name, Class<?> type,
+			YBeanSlot masterSlot, String propertyPath);
+
+	/**
+	 * Returns the bean slot for the given name. Or <code>null</code> if no bean
+	 * slot is available.
+	 *
+	 * @param name
+	 *            the name
+	 * @return the bean slot
+	 */
+	YBeanSlot getBeanSlot(String name);
+
+} // YUiView
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YViewSet.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YViewSet.java
new file mode 100644
index 0000000..4bf0529
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YViewSet.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YUi View Set</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet#getViews <em>Views</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet#getBeanSlots <em>Bean Slots</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYViewSet()
+ * @model
+ * @generated
+ */
+public interface YViewSet extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Views</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.core.YView}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.common.model.core.YView#getRoot <em>Root</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Views</em>' containment reference list isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Views</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYViewSet_Views()
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView#getRoot
+	 * @model opposite="root"
+	 * @generated
+	 */
+	EList<YView> getViews();
+
+	/**
+	 * Returns the value of the '<em><b>Bean Slots</b></em>' containment
+	 * reference list. The list contents are of type
+	 * {@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bean Slots</em>' containment reference list
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Bean Slots</em>' containment reference
+	 *         list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYViewSet_BeanSlots()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YBeanSlot> getBeanSlots();
+
+	/**
+	 * Adds a new bean slot for the given name and type.
+	 * 
+	 * @param name
+	 * @param type
+	 * @return
+	 */
+	YBeanSlot addBeanSlot(String name, Class<?> type);
+
+} // YUiViewSet
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YVisibilityProcessable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YVisibilityProcessable.java
new file mode 100644
index 0000000..64b04b6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YVisibilityProcessable.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YVisibility Processable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibilityProcessable#getVisibilityProcessor <em>Visibility Processor</em>}</li>
+ * </ul>
+ * 
+ *
+ * see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYVisibilityProcessable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YVisibilityProcessable extends EObject {
+
+	/**
+	 * Returns the value of the '<em><b>Visibility Processor</b></em>' containment reference.
+	 * It is bidirectional and its opposite is '<code>org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getParent <em>Parent</em></code>'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Visibility Processor</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Visibility Processor</em>' containment reference.
+	 * @see #setVisibilityProcessor(YVisibilityProcessor)
+	 * see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYVisibilityProcessable_VisibilityProcessor()
+	 * see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getParent
+	 * @model opposite="parent" containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YVisibilityProcessor getVisibilityProcessor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibilityProcessable#getVisibilityProcessor <em>Visibility Processor</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Visibility Processor</em>' containment reference.
+	 * @see #getVisibilityProcessor()
+	 * @generated
+	 */
+	void setVisibilityProcessor(YVisibilityProcessor value);
+} // YVisibilityProcessable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YVisibleable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YVisibleable.java
new file mode 100644
index 0000000..66b321d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YVisibleable.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YVisibleable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable#isInitialVisible <em>Initial Visible</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable#isVisible <em>Visible</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYVisibleable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YVisibleable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Initial Visible</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initial Visible</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Initial Visible</em>' attribute.
+	 * @see #setInitialVisible(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYVisibleable_InitialVisible()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isInitialVisible();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable#isInitialVisible <em>Initial Visible</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Initial Visible</em>' attribute.
+	 * @see #isInitialVisible()
+	 * @generated
+	 */
+	void setInitialVisible(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Visible</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Visible</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Visible</em>' attribute.
+	 * @see #setVisible(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYVisibleable_Visible()
+	 * @model default="true" transient="true" derived="true"
+	 * @generated
+	 */
+	boolean isVisible();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable#isVisible <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Visible</em>' attribute.
+	 * @see #isVisible()
+	 * @generated
+	 */
+	void setVisible(boolean value);
+
+} // YVisibleable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YWidthable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YWidthable.java
new file mode 100644
index 0000000..70f867c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/YWidthable.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Widthable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable#getWidth <em>Width</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable#getWidthUnit <em>Width Unit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYWidthable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YWidthable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Width</b></em>' attribute.
+	 * The default value is <code>"100"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Width</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Width</em>' attribute.
+	 * @see #setWidth(int)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYWidthable_Width()
+	 * @model default="100"
+	 * @generated
+	 */
+	int getWidth();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable#getWidth <em>Width</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Width</em>' attribute.
+	 * @see #getWidth()
+	 * @generated
+	 */
+	void setWidth(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Width Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YUnit}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Width Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Width Unit</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YUnit
+	 * @see #setWidthUnit(YUnit)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#getYWidthable_WidthUnit()
+	 * @model
+	 * @generated
+	 */
+	YUnit getWidthUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable#getWidthUnit <em>Width Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Width Unit</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YUnit
+	 * @see #getWidthUnit()
+	 * @generated
+	 */
+	void setWidthUnit(YUnit value);
+
+} // YUiWidthable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/AuthorizationFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/AuthorizationFactory.java
new file mode 100644
index 0000000..a4beea7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/AuthorizationFactory.java
@@ -0,0 +1,62 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage
+ * @generated
+ */
+public interface AuthorizationFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	AuthorizationFactory eINSTANCE = org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>YAuthorization Store</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YAuthorization Store</em>'.
+	 * @generated
+	 */
+	YAuthorizationStore createYAuthorizationStore();
+
+	/**
+	 * Returns a new object of class '<em>YField Authorization</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YField Authorization</em>'.
+	 * @generated
+	 */
+	YFieldAuthorization createYFieldAuthorization();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	AuthorizationPackage getAuthorizationPackage();
+
+} //AuthorizationFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/AuthorizationPackage.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/AuthorizationPackage.java
new file mode 100644
index 0000000..ca8ab00
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/AuthorizationPackage.java
@@ -0,0 +1,323 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface AuthorizationPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "authorization";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/ecview/v1/core/view/authorization";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "authorization";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	AuthorizationPackage eINSTANCE = org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YAuthorizationStoreImpl <em>YAuthorization Store</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YAuthorizationStoreImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl#getYAuthorizationStore()
+	 * @generated
+	 */
+	int YAUTHORIZATION_STORE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Authorizations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YAUTHORIZATION_STORE__AUTHORIZATIONS = 0;
+
+	/**
+	 * The number of structural features of the '<em>YAuthorization Store</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YAUTHORIZATION_STORE_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization <em>YAuthorization</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl#getYAuthorization()
+	 * @generated
+	 */
+	int YAUTHORIZATION = 1;
+
+	/**
+	 * The number of structural features of the '<em>YAuthorization</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YAUTHORIZATION_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YFieldAuthorizationImpl <em>YField Authorization</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YFieldAuthorizationImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl#getYFieldAuthorization()
+	 * @generated
+	 */
+	int YFIELD_AUTHORIZATION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD_AUTHORIZATION__TARGET = YAUTHORIZATION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Roles</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD_AUTHORIZATION__ROLES = YAUTHORIZATION_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Actions</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD_AUTHORIZATION__ACTIONS = YAUTHORIZATION_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YField Authorization</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFIELD_AUTHORIZATION_FEATURE_COUNT = YAUTHORIZATION_FEATURE_COUNT + 3;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore <em>YAuthorization Store</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YAuthorization Store</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore
+	 * @generated
+	 */
+	EClass getYAuthorizationStore();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore#getAuthorizations <em>Authorizations</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Authorizations</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore#getAuthorizations()
+	 * @see #getYAuthorizationStore()
+	 * @generated
+	 */
+	EReference getYAuthorizationStore_Authorizations();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization <em>YAuthorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YAuthorization</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization
+	 * @generated
+	 */
+	EClass getYAuthorization();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization <em>YField Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YField Authorization</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization
+	 * @generated
+	 */
+	EClass getYFieldAuthorization();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getTarget <em>Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getTarget()
+	 * @see #getYFieldAuthorization()
+	 * @generated
+	 */
+	EReference getYFieldAuthorization_Target();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getRoles <em>Roles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Roles</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getRoles()
+	 * @see #getYFieldAuthorization()
+	 * @generated
+	 */
+	EAttribute getYFieldAuthorization_Roles();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getActions <em>Actions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Actions</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getActions()
+	 * @see #getYFieldAuthorization()
+	 * @generated
+	 */
+	EAttribute getYFieldAuthorization_Actions();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	AuthorizationFactory getAuthorizationFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YAuthorizationStoreImpl <em>YAuthorization Store</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YAuthorizationStoreImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl#getYAuthorizationStore()
+		 * @generated
+		 */
+		EClass YAUTHORIZATION_STORE = eINSTANCE.getYAuthorizationStore();
+
+		/**
+		 * The meta object literal for the '<em><b>Authorizations</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YAUTHORIZATION_STORE__AUTHORIZATIONS = eINSTANCE.getYAuthorizationStore_Authorizations();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization <em>YAuthorization</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl#getYAuthorization()
+		 * @generated
+		 */
+		EClass YAUTHORIZATION = eINSTANCE.getYAuthorization();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YFieldAuthorizationImpl <em>YField Authorization</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YFieldAuthorizationImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl#getYFieldAuthorization()
+		 * @generated
+		 */
+		EClass YFIELD_AUTHORIZATION = eINSTANCE.getYFieldAuthorization();
+
+		/**
+		 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YFIELD_AUTHORIZATION__TARGET = eINSTANCE.getYFieldAuthorization_Target();
+
+		/**
+		 * The meta object literal for the '<em><b>Roles</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YFIELD_AUTHORIZATION__ROLES = eINSTANCE.getYFieldAuthorization_Roles();
+
+		/**
+		 * The meta object literal for the '<em><b>Actions</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YFIELD_AUTHORIZATION__ACTIONS = eINSTANCE.getYFieldAuthorization_Actions();
+
+	}
+
+} //AuthorizationPackage
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/YAuthorization.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/YAuthorization.java
new file mode 100644
index 0000000..dc6083c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/YAuthorization.java
@@ -0,0 +1,36 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YAuthorization</b></em>'. <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage#getYAuthorization()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YAuthorization extends EObject {
+	/**
+	 * Returns true, if the role may execute the action on the given embeddable.
+	 * If embeddable == null is passed, subclasses need to decide what should
+	 * happen.
+	 */
+	boolean isAllowed(String role, String action, YEmbeddable embeddable);
+
+} // YAuthorization
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/YAuthorizationStore.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/YAuthorizationStore.java
new file mode 100644
index 0000000..b2c92cf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/YAuthorizationStore.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.authorization;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YAuthorization Store</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore#getAuthorizations <em>Authorizations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage#getYAuthorizationStore()
+ * @model
+ * @generated
+ */
+public interface YAuthorizationStore extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Authorizations</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Authorizations</em>' containment reference
+	 * list isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Authorizations</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage#getYAuthorizationStore_Authorizations()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YAuthorization> getAuthorizations();
+
+	/**
+	 * <!-- begin-user-doc --> Returns true, if the role may execute the action
+	 * on the given embeddable. If embeddable == null is passed, the
+	 * {@link YAuthorization authorization implementation} is required to check.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param role
+	 *            the role
+	 * @param action
+	 *            the action
+	 * @param embeddable
+	 *            the embeddable
+	 * @return true, if is allowed
+	 */
+	boolean isAllowed(String role, String action, YEmbeddable embeddable);
+
+} // YAuthorizationStore
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/YFieldAuthorization.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/YFieldAuthorization.java
new file mode 100644
index 0000000..748e670
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/YFieldAuthorization.java
@@ -0,0 +1,97 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YField Authorization</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getRoles <em>Roles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getActions <em>Actions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage#getYFieldAuthorization()
+ * @model
+ * @generated
+ */
+public interface YFieldAuthorization extends YAuthorization {
+	/**
+	 * Returns the value of the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage#getYFieldAuthorization_Target()
+	 * @model
+	 * @generated
+	 */
+	YEmbeddable getTarget();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization#getTarget <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Roles</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Roles</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Roles</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage#getYFieldAuthorization_Roles()
+	 * @model
+	 * @generated
+	 */
+	EList<String> getRoles();
+
+	/**
+	 * Returns the value of the '<em><b>Actions</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Actions</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Actions</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage#getYFieldAuthorization_Actions()
+	 * @model
+	 * @generated
+	 */
+	EList<String> getActions();
+
+} // YFieldAuthorization
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/AuthorizationFactoryImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/AuthorizationFactoryImpl.java
new file mode 100644
index 0000000..81fbf48
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/AuthorizationFactoryImpl.java
@@ -0,0 +1,117 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AuthorizationFactoryImpl extends EFactoryImpl implements AuthorizationFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static AuthorizationFactory init() {
+		try {
+			AuthorizationFactory theAuthorizationFactory = (AuthorizationFactory)EPackage.Registry.INSTANCE.getEFactory(AuthorizationPackage.eNS_URI);
+			if (theAuthorizationFactory != null) {
+				return theAuthorizationFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new AuthorizationFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case AuthorizationPackage.YAUTHORIZATION_STORE: return createYAuthorizationStore();
+			case AuthorizationPackage.YFIELD_AUTHORIZATION: return createYFieldAuthorization();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YAuthorizationStore createYAuthorizationStore() {
+		YAuthorizationStoreImpl yAuthorizationStore = new YAuthorizationStoreImpl();
+		return yAuthorizationStore;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFieldAuthorization createYFieldAuthorization() {
+		YFieldAuthorizationImpl yFieldAuthorization = new YFieldAuthorizationImpl();
+		return yFieldAuthorization;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationPackage getAuthorizationPackage() {
+		return (AuthorizationPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static AuthorizationPackage getPackage() {
+		return AuthorizationPackage.eINSTANCE;
+	}
+
+} //AuthorizationFactoryImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/AuthorizationPackageImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/AuthorizationPackageImpl.java
new file mode 100644
index 0000000..a8ef403
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/AuthorizationPackageImpl.java
@@ -0,0 +1,290 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AuthorizationPackageImpl extends EPackageImpl implements AuthorizationPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yAuthorizationStoreEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yAuthorizationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yFieldAuthorizationEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private AuthorizationPackageImpl() {
+		super(eNS_URI, AuthorizationFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link AuthorizationPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static AuthorizationPackage init() {
+		if (isInited) return (AuthorizationPackage)EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI);
+
+		// Obtain or create and register package
+		AuthorizationPackageImpl theAuthorizationPackage = (AuthorizationPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof AuthorizationPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new AuthorizationPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		BindingPackageImpl theBindingPackage = (BindingPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) instanceof BindingPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) : BindingPackage.eINSTANCE);
+		CoreModelPackageImpl theCoreModelPackage = (CoreModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) instanceof CoreModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) : CoreModelPackage.eINSTANCE);
+		ValidationPackageImpl theValidationPackage = (ValidationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) instanceof ValidationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) : ValidationPackage.eINSTANCE);
+		DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) instanceof DatatypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) : DatatypesPackage.eINSTANCE);
+		VisibilityPackageImpl theVisibilityPackage = (VisibilityPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) instanceof VisibilityPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) : VisibilityPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theAuthorizationPackage.createPackageContents();
+		theBindingPackage.createPackageContents();
+		theCoreModelPackage.createPackageContents();
+		theValidationPackage.createPackageContents();
+		theDatatypesPackage.createPackageContents();
+		theVisibilityPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theAuthorizationPackage.initializePackageContents();
+		theBindingPackage.initializePackageContents();
+		theCoreModelPackage.initializePackageContents();
+		theValidationPackage.initializePackageContents();
+		theDatatypesPackage.initializePackageContents();
+		theVisibilityPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theAuthorizationPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(AuthorizationPackage.eNS_URI, theAuthorizationPackage);
+		return theAuthorizationPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYAuthorizationStore() {
+		return yAuthorizationStoreEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYAuthorizationStore_Authorizations() {
+		return (EReference)yAuthorizationStoreEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYAuthorization() {
+		return yAuthorizationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYFieldAuthorization() {
+		return yFieldAuthorizationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYFieldAuthorization_Target() {
+		return (EReference)yFieldAuthorizationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYFieldAuthorization_Roles() {
+		return (EAttribute)yFieldAuthorizationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYFieldAuthorization_Actions() {
+		return (EAttribute)yFieldAuthorizationEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationFactory getAuthorizationFactory() {
+		return (AuthorizationFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		yAuthorizationStoreEClass = createEClass(YAUTHORIZATION_STORE);
+		createEReference(yAuthorizationStoreEClass, YAUTHORIZATION_STORE__AUTHORIZATIONS);
+
+		yAuthorizationEClass = createEClass(YAUTHORIZATION);
+
+		yFieldAuthorizationEClass = createEClass(YFIELD_AUTHORIZATION);
+		createEReference(yFieldAuthorizationEClass, YFIELD_AUTHORIZATION__TARGET);
+		createEAttribute(yFieldAuthorizationEClass, YFIELD_AUTHORIZATION__ROLES);
+		createEAttribute(yFieldAuthorizationEClass, YFIELD_AUTHORIZATION__ACTIONS);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		CoreModelPackage theCoreModelPackage = (CoreModelPackage)EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		yFieldAuthorizationEClass.getESuperTypes().add(this.getYAuthorization());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(yAuthorizationStoreEClass, YAuthorizationStore.class, "YAuthorizationStore", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYAuthorizationStore_Authorizations(), this.getYAuthorization(), null, "authorizations", null, 0, -1, YAuthorizationStore.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yAuthorizationEClass, YAuthorization.class, "YAuthorization", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yFieldAuthorizationEClass, YFieldAuthorization.class, "YFieldAuthorization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYFieldAuthorization_Target(), theCoreModelPackage.getYEmbeddable(), null, "target", null, 0, 1, YFieldAuthorization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYFieldAuthorization_Roles(), ecorePackage.getEString(), "roles", null, 0, -1, YFieldAuthorization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYFieldAuthorization_Actions(), ecorePackage.getEString(), "actions", null, 0, -1, YFieldAuthorization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+	}
+
+} //AuthorizationPackageImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/YAuthorizationStoreImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/YAuthorizationStoreImpl.java
new file mode 100644
index 0000000..6036284
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/YAuthorizationStoreImpl.java
@@ -0,0 +1,161 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YAuthorization Store</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YAuthorizationStoreImpl#getAuthorizations <em>Authorizations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YAuthorizationStoreImpl extends MinimalEObjectImpl.Container
+		implements YAuthorizationStore {
+	/**
+	 * The cached value of the '{@link #getAuthorizations() <em>Authorizations</em>}' containment reference list.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @see #getAuthorizations()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YAuthorization> authorizations;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YAuthorizationStoreImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AuthorizationPackage.Literals.YAUTHORIZATION_STORE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YAuthorization> getAuthorizations() {
+		if (authorizations == null) {
+			authorizations = new EObjectContainmentEList.Resolving<YAuthorization>(YAuthorization.class, this, AuthorizationPackage.YAUTHORIZATION_STORE__AUTHORIZATIONS);
+		}
+		return authorizations;
+	}
+
+	public boolean isAllowed(String role, String action, YEmbeddable embeddable) {
+		for (YAuthorization auth : getAuthorizations()) {
+			if (auth.isAllowed(role, action, embeddable)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AuthorizationPackage.YAUTHORIZATION_STORE__AUTHORIZATIONS:
+				return ((InternalEList<?>)getAuthorizations()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AuthorizationPackage.YAUTHORIZATION_STORE__AUTHORIZATIONS:
+				return getAuthorizations();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case AuthorizationPackage.YAUTHORIZATION_STORE__AUTHORIZATIONS:
+				getAuthorizations().clear();
+				getAuthorizations().addAll((Collection<? extends YAuthorization>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case AuthorizationPackage.YAUTHORIZATION_STORE__AUTHORIZATIONS:
+				getAuthorizations().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AuthorizationPackage.YAUTHORIZATION_STORE__AUTHORIZATIONS:
+				return authorizations != null && !authorizations.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // YAuthorizationStoreImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/YFieldAuthorizationImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/YFieldAuthorizationImpl.java
new file mode 100644
index 0000000..435916e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/impl/YFieldAuthorizationImpl.java
@@ -0,0 +1,246 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YField Authorization</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YFieldAuthorizationImpl#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YFieldAuthorizationImpl#getRoles <em>Roles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.YFieldAuthorizationImpl#getActions <em>Actions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YFieldAuthorizationImpl extends MinimalEObjectImpl.Container
+		implements YFieldAuthorization {
+	/**
+	 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTarget()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable target;
+
+	/**
+	 * The cached value of the '{@link #getRoles() <em>Roles</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getRoles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> roles;
+
+	/**
+	 * The cached value of the '{@link #getActions() <em>Actions</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getActions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> actions;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YFieldAuthorizationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AuthorizationPackage.Literals.YFIELD_AUTHORIZATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEmbeddable getTarget() {
+		if (target != null && target.eIsProxy()) {
+			InternalEObject oldTarget = (InternalEObject)target;
+			target = (YEmbeddable)eResolveProxy(oldTarget);
+			if (target != oldTarget) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AuthorizationPackage.YFIELD_AUTHORIZATION__TARGET, oldTarget, target));
+			}
+		}
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEmbeddable basicGetTarget() {
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTarget(YEmbeddable newTarget) {
+		YEmbeddable oldTarget = target;
+		target = newTarget;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AuthorizationPackage.YFIELD_AUTHORIZATION__TARGET, oldTarget, target));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getRoles() {
+		if (roles == null) {
+			roles = new EDataTypeUniqueEList<String>(String.class, this, AuthorizationPackage.YFIELD_AUTHORIZATION__ROLES);
+		}
+		return roles;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getActions() {
+		if (actions == null) {
+			actions = new EDataTypeUniqueEList<String>(String.class, this, AuthorizationPackage.YFIELD_AUTHORIZATION__ACTIONS);
+		}
+		return actions;
+	}
+
+	public boolean isAllowed(String role, String action, YEmbeddable embeddable) {
+		return getTarget() == embeddable && getRoles().contains(role)
+				&& getActions().contains(action);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__TARGET:
+				if (resolve) return getTarget();
+				return basicGetTarget();
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ROLES:
+				return getRoles();
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ACTIONS:
+				return getActions();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__TARGET:
+				setTarget((YEmbeddable)newValue);
+				return;
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ROLES:
+				getRoles().clear();
+				getRoles().addAll((Collection<? extends String>)newValue);
+				return;
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ACTIONS:
+				getActions().clear();
+				getActions().addAll((Collection<? extends String>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__TARGET:
+				setTarget((YEmbeddable)null);
+				return;
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ROLES:
+				getRoles().clear();
+				return;
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ACTIONS:
+				getActions().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__TARGET:
+				return target != null;
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ROLES:
+				return roles != null && !roles.isEmpty();
+			case AuthorizationPackage.YFIELD_AUTHORIZATION__ACTIONS:
+				return actions != null && !actions.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (roles: ");
+		result.append(roles);
+		result.append(", actions: ");
+		result.append(actions);
+		result.append(')');
+		return result.toString();
+	}
+
+} // YFieldAuthorizationImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/util/AuthorizationAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/util/AuthorizationAdapterFactory.java
new file mode 100644
index 0000000..4f466f0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/util/AuthorizationAdapterFactory.java
@@ -0,0 +1,167 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.authorization.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage
+ * @generated
+ */
+public class AuthorizationAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static AuthorizationPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = AuthorizationPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AuthorizationSwitch<Adapter> modelSwitch =
+		new AuthorizationSwitch<Adapter>() {
+			@Override
+			public Adapter caseYAuthorizationStore(YAuthorizationStore object) {
+				return createYAuthorizationStoreAdapter();
+			}
+			@Override
+			public Adapter caseYAuthorization(YAuthorization object) {
+				return createYAuthorizationAdapter();
+			}
+			@Override
+			public Adapter caseYFieldAuthorization(YFieldAuthorization object) {
+				return createYFieldAuthorizationAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore <em>YAuthorization Store</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore
+	 * @generated
+	 */
+	public Adapter createYAuthorizationStoreAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization <em>YAuthorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorization
+	 * @generated
+	 */
+	public Adapter createYAuthorizationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization <em>YField Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.YFieldAuthorization
+	 * @generated
+	 */
+	public Adapter createYFieldAuthorizationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //AuthorizationAdapterFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/util/AuthorizationSwitch.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/util/AuthorizationSwitch.java
new file mode 100644
index 0000000..4a3fde9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/authorization/util/AuthorizationSwitch.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.authorization.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.*;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance
+ * hierarchy. It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object and proceeding up the
+ * inheritance hierarchy until a non-null result is returned, which is the
+ * result of the switch. <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage
+ * @generated
+ */
+public class AuthorizationSwitch<T> extends Switch<T> {
+	
+	/**
+	 * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected static AuthorizationPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationSwitch() {
+		if (modelPackage == null) {
+			modelPackage = AuthorizationPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param ePackage
+	 *            the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case AuthorizationPackage.YAUTHORIZATION_STORE: {
+				YAuthorizationStore yAuthorizationStore = (YAuthorizationStore)theEObject;
+				T result = caseYAuthorizationStore(yAuthorizationStore);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case AuthorizationPackage.YAUTHORIZATION: {
+				YAuthorization yAuthorization = (YAuthorization)theEObject;
+				T result = caseYAuthorization(yAuthorization);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case AuthorizationPackage.YFIELD_AUTHORIZATION: {
+				YFieldAuthorization yFieldAuthorization = (YFieldAuthorization)theEObject;
+				T result = caseYFieldAuthorization(yFieldAuthorization);
+				if (result == null) result = caseYAuthorization(yFieldAuthorization);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAuthorization Store</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAuthorization Store</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAuthorizationStore(YAuthorizationStore object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAuthorization</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAuthorization</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAuthorization(YAuthorization object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YField Authorization</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YField Authorization</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYFieldAuthorization(YFieldAuthorization object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //AuthorizationSwitch
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/CoreModelFactoryImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/CoreModelFactoryImpl.java
new file mode 100644
index 0000000..5f10cc0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/CoreModelFactoryImpl.java
@@ -0,0 +1,800 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.net.URI;
+import java.util.Map;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.osbp.ecview.core.common.model.core.*;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YDeviceType;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyCode;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YModifierKey;
+import org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YUnit;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CoreModelFactoryImpl extends EFactoryImpl implements CoreModelFactory {
+	
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	public static CoreModelFactory init() {
+		try {
+			CoreModelFactory theCoreModelFactory = (CoreModelFactory)EPackage.Registry.INSTANCE.getEFactory(CoreModelPackage.eNS_URI);
+			if (theCoreModelFactory != null) {
+				return theCoreModelFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new CoreModelFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CoreModelFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eClass
+	 *            the e class
+	 * @return the e object
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case CoreModelPackage.YSTRING_TO_STRING_MAP: return (EObject)createYStringToStringMap();
+			case CoreModelPackage.YLAYOUT: return createYLayout();
+			case CoreModelPackage.YHELPER_LAYOUT: return createYHelperLayout();
+			case CoreModelPackage.YFIELD: return createYField();
+			case CoreModelPackage.YVIEW: return createYView();
+			case CoreModelPackage.YVIEW_SET: return createYViewSet();
+			case CoreModelPackage.YBEAN_SLOT: return createYBeanSlot();
+			case CoreModelPackage.YDETAIL_BEAN_SLOT: return createYDetailBeanSlot();
+			case CoreModelPackage.YDIALOG: return createYDialog();
+			case CoreModelPackage.YACTION: return createYAction();
+			case CoreModelPackage.YCONTEXT_VALUE_BINDING_ENDPOINT: return createYContextValueBindingEndpoint();
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT: return createYBeanSlotValueBindingEndpoint();
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT: return createYBeanSlotListBindingEndpoint();
+			case CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT: return createYEmbeddableValueEndpoint();
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT: return createYEmbeddableSelectionEndpoint();
+			case CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT: return createYEmbeddableMultiSelectionEndpoint();
+			case CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT: return createYEmbeddableCollectionEndpoint();
+			case CoreModelPackage.YACTIVATED_ENDPOINT: return createYActivatedEndpoint();
+			case CoreModelPackage.YDT_WRAPPER: return createYDtWrapper();
+			case CoreModelPackage.YCOMMAND_SET: return createYCommandSet();
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND: return createYOpenDialogCommand();
+			case CoreModelPackage.YEXPOSED_ACTION: return createYExposedAction();
+			case CoreModelPackage.YSEND_EVENT_COMMAND: return createYSendEventCommand();
+			case CoreModelPackage.YKEY_STROKE_DEFINITION: return createYKeyStrokeDefinition();
+			case CoreModelPackage.YDELEGATE_CONVERTER: return createYDelegateConverter();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case CoreModelPackage.YDEVICE_TYPE:
+				return createYDeviceTypeFromString(eDataType, initialValue);
+			case CoreModelPackage.YALIGNMENT:
+				return createYAlignmentFromString(eDataType, initialValue);
+			case CoreModelPackage.YFLAT_ALIGNMENT:
+				return createYFlatAlignmentFromString(eDataType, initialValue);
+			case CoreModelPackage.YUNIT:
+				return createYUnitFromString(eDataType, initialValue);
+			case CoreModelPackage.YKEY_CODE:
+				return createYKeyCodeFromString(eDataType, initialValue);
+			case CoreModelPackage.YMODIFIER_KEY:
+				return createYModifierKeyFromString(eDataType, initialValue);
+			case CoreModelPackage.YORIENTATION:
+				return createYOrientationFromString(eDataType, initialValue);
+			case CoreModelPackage.YCOMPARE:
+				return createYCompareFromString(eDataType, initialValue);
+			case CoreModelPackage.YURI:
+				return createYURIFromString(eDataType, initialValue);
+			case CoreModelPackage.YVALUE_CHANGE_LISTENER:
+				return createYValueChangeListenerFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case CoreModelPackage.YDEVICE_TYPE:
+				return convertYDeviceTypeToString(eDataType, instanceValue);
+			case CoreModelPackage.YALIGNMENT:
+				return convertYAlignmentToString(eDataType, instanceValue);
+			case CoreModelPackage.YFLAT_ALIGNMENT:
+				return convertYFlatAlignmentToString(eDataType, instanceValue);
+			case CoreModelPackage.YUNIT:
+				return convertYUnitToString(eDataType, instanceValue);
+			case CoreModelPackage.YKEY_CODE:
+				return convertYKeyCodeToString(eDataType, instanceValue);
+			case CoreModelPackage.YMODIFIER_KEY:
+				return convertYModifierKeyToString(eDataType, instanceValue);
+			case CoreModelPackage.YORIENTATION:
+				return convertYOrientationToString(eDataType, instanceValue);
+			case CoreModelPackage.YCOMPARE:
+				return convertYCompareToString(eDataType, instanceValue);
+			case CoreModelPackage.YURI:
+				return convertYURIToString(eDataType, instanceValue);
+			case CoreModelPackage.YVALUE_CHANGE_LISTENER:
+				return convertYValueChangeListenerToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the map. entry
+	 * @generated
+	 */
+	public Map.Entry<String, String> createYStringToStringMap() {
+		YStringToStringMapImpl yStringToStringMap = new YStringToStringMapImpl();
+		return yStringToStringMap;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y layout
+	 * @generated
+	 */
+	public YLayout createYLayout() {
+		YLayoutImpl yLayout = new YLayoutImpl();
+		return yLayout;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y helper layout
+	 * @generated
+	 */
+	public YHelperLayout createYHelperLayout() {
+		YHelperLayoutImpl yHelperLayout = new YHelperLayoutImpl();
+		return yHelperLayout;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y field
+	 * @generated
+	 */
+	public YField createYField() {
+		YFieldImpl yField = new YFieldImpl();
+		return yField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y view
+	 * @generated
+	 */
+	public YView createYView() {
+		YViewImpl yView = new YViewImpl();
+		return yView;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y view set
+	 * @generated
+	 */
+	public YViewSet createYViewSet() {
+		YViewSetImpl yViewSet = new YViewSetImpl();
+		return yViewSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean slot
+	 * @generated
+	 */
+	public YBeanSlot createYBeanSlot() {
+		YBeanSlotImpl yBeanSlot = new YBeanSlotImpl();
+		return yBeanSlot;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDetailBeanSlot createYDetailBeanSlot() {
+		YDetailBeanSlotImpl yDetailBeanSlot = new YDetailBeanSlotImpl();
+		return yDetailBeanSlot;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y dialog
+	 * @generated
+	 */
+	public YDialog createYDialog() {
+		YDialogImpl yDialog = new YDialogImpl();
+		return yDialog;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y action
+	 * @generated
+	 */
+	public YAction createYAction() {
+		YActionImpl yAction = new YActionImpl();
+		return yAction;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y context value binding endpoint
+	 * @generated
+	 */
+	public YContextValueBindingEndpoint createYContextValueBindingEndpoint() {
+		YContextValueBindingEndpointImpl yContextValueBindingEndpoint = new YContextValueBindingEndpointImpl();
+		return yContextValueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean slot value binding endpoint
+	 * @generated
+	 */
+	public YBeanSlotValueBindingEndpoint createYBeanSlotValueBindingEndpoint() {
+		YBeanSlotValueBindingEndpointImpl yBeanSlotValueBindingEndpoint = new YBeanSlotValueBindingEndpointImpl();
+		return yBeanSlotValueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean slot list binding endpoint
+	 * @generated
+	 */
+	public YBeanSlotListBindingEndpoint createYBeanSlotListBindingEndpoint() {
+		YBeanSlotListBindingEndpointImpl yBeanSlotListBindingEndpoint = new YBeanSlotListBindingEndpointImpl();
+		return yBeanSlotListBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createYEmbeddableValueEndpoint() {
+		YEmbeddableValueEndpointImpl yEmbeddableValueEndpoint = new YEmbeddableValueEndpointImpl();
+		return yEmbeddableValueEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createYEmbeddableSelectionEndpoint() {
+		YEmbeddableSelectionEndpointImpl yEmbeddableSelectionEndpoint = new YEmbeddableSelectionEndpointImpl();
+		return yEmbeddableSelectionEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint createYEmbeddableMultiSelectionEndpoint() {
+		YEmbeddableMultiSelectionEndpointImpl yEmbeddableMultiSelectionEndpoint = new YEmbeddableMultiSelectionEndpointImpl();
+		return yEmbeddableMultiSelectionEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createYEmbeddableCollectionEndpoint() {
+		YEmbeddableCollectionEndpointImpl yEmbeddableCollectionEndpoint = new YEmbeddableCollectionEndpointImpl();
+		return yEmbeddableCollectionEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y activated endpoint
+	 * @generated
+	 */
+	public YActivatedEndpoint createYActivatedEndpoint() {
+		YActivatedEndpointImpl yActivatedEndpoint = new YActivatedEndpointImpl();
+		return yActivatedEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y dt wrapper
+	 * @generated
+	 */
+	public YDtWrapper createYDtWrapper() {
+		YDtWrapperImpl yDtWrapper = new YDtWrapperImpl();
+		return yDtWrapper;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y command set
+	 * @generated
+	 */
+	public YCommandSet createYCommandSet() {
+		YCommandSetImpl yCommandSet = new YCommandSetImpl();
+		return yCommandSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y open dialog command
+	 * @generated
+	 */
+	public YOpenDialogCommand createYOpenDialogCommand() {
+		YOpenDialogCommandImpl yOpenDialogCommand = new YOpenDialogCommandImpl();
+		return yOpenDialogCommand;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y exposed action
+	 * @generated
+	 */
+	public YExposedAction createYExposedAction() {
+		YExposedActionImpl yExposedAction = new YExposedActionImpl();
+		return yExposedAction;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y send event command
+	 * @generated
+	 */
+	public YSendEventCommand createYSendEventCommand() {
+		YSendEventCommandImpl ySendEventCommand = new YSendEventCommandImpl();
+		return ySendEventCommand;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y key stroke definition
+	 * @generated
+	 */
+	public YKeyStrokeDefinition createYKeyStrokeDefinition() {
+		YKeyStrokeDefinitionImpl yKeyStrokeDefinition = new YKeyStrokeDefinitionImpl();
+		return yKeyStrokeDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y delegate converter
+	 * @generated
+	 */
+	public YDelegateConverter createYDelegateConverter() {
+		YDelegateConverterImpl yDelegateConverter = new YDelegateConverterImpl();
+		return yDelegateConverter;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y device type
+	 * @generated
+	 */
+	public YDeviceType createYDeviceTypeFromString(EDataType eDataType, String initialValue) {
+		YDeviceType result = YDeviceType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYDeviceTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y alignment
+	 * @generated
+	 */
+	public YAlignment createYAlignmentFromString(EDataType eDataType, String initialValue) {
+		YAlignment result = YAlignment.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYAlignmentToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y flat alignment
+	 * @generated
+	 */
+	public YFlatAlignment createYFlatAlignmentFromString(EDataType eDataType, String initialValue) {
+		YFlatAlignment result = YFlatAlignment.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYFlatAlignmentToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y unit
+	 * @generated
+	 */
+	public YUnit createYUnitFromString(EDataType eDataType, String initialValue) {
+		YUnit result = YUnit.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYUnitToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y key code
+	 * @generated
+	 */
+	public YKeyCode createYKeyCodeFromString(EDataType eDataType, String initialValue) {
+		YKeyCode result = YKeyCode.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYKeyCodeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y modifier key
+	 * @generated
+	 */
+	public YModifierKey createYModifierKeyFromString(EDataType eDataType, String initialValue) {
+		YModifierKey result = YModifierKey.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYModifierKeyToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y orientation
+	 * @generated
+	 */
+	public YOrientation createYOrientationFromString(EDataType eDataType, String initialValue) {
+		YOrientation result = YOrientation.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYOrientationToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y compare
+	 * @generated
+	 */
+	public YCompare createYCompareFromString(EDataType eDataType, String initialValue) {
+		YCompare result = YCompare.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYCompareToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the uri
+	 * @generated
+	 */
+	public URI createYURIFromString(EDataType eDataType, String initialValue) {
+		return (URI)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYURIToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y value change listener
+	 * @generated
+	 */
+	public YValueChangeListener createYValueChangeListenerFromString(EDataType eDataType, String initialValue) {
+		return (YValueChangeListener)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYValueChangeListenerToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the core model package
+	 * @generated
+	 */
+	public CoreModelPackage getCoreModelPackage() {
+		return (CoreModelPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the package
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static CoreModelPackage getPackage() {
+		return CoreModelPackage.eINSTANCE;
+	}
+
+} //CoreModelFactoryImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/CoreModelPackageImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/CoreModelPackageImpl.java
new file mode 100644
index 0000000..5c65dc1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/CoreModelPackageImpl.java
@@ -0,0 +1,2893 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.net.URI;
+import java.util.Map;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivateable;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YCompare;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YConverter;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter;
+import org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YDeviceType;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YHeightable;
+import org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyCode;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMemento;
+import org.eclipse.osbp.ecview.core.common.model.core.YModifierKey;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YOrientation;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.core.YUnit;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YVisibleable;
+import org.eclipse.osbp.ecview.core.common.model.core.YWidthable;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CoreModelPackageImpl extends EPackageImpl implements CoreModelPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yElementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yStringToStringMapEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yLayoutEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yHelperLayoutEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yViewEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yViewSetEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yAlignmentContainerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBeanSlotEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yDetailBeanSlotEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yHelperLayoutProviderEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yEmbeddableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yDialogEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yCssAbleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yMarginableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ySpacingableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yHeightableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yWidthableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yActivateableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yVisibleableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yEditableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yEnableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yFocusableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yActionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBindableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yValueBindableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ySelectionBindableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yMultiSelectionBindableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yCollectionBindableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yContextValueBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBeanSlotValueBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBeanSlotListBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yEmbeddableBindingEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yEmbeddableValueEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yEmbeddableSelectionEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yEmbeddableMultiSelectionEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yEmbeddableCollectionEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yActivatedEndpointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yDtWrapperEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yCommandEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yCommandSetEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yOpenDialogCommandEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yExposedActionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ySendEventCommandEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yKeyStrokeDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yConverterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yDelegateConverterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yMementoEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yAuthorizationableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yTaggableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yDeviceTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yAlignmentEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yFlatAlignmentEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yUnitEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yKeyCodeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yModifierKeyEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yOrientationEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yCompareEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType yuriEDataType = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType yValueChangeListenerEDataType = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private CoreModelPackageImpl() {
+		super(eNS_URI, CoreModelFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link CoreModelPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static CoreModelPackage init() {
+		if (isInited) return (CoreModelPackage)EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI);
+
+		// Obtain or create and register package
+		CoreModelPackageImpl theCoreModelPackage = (CoreModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CoreModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CoreModelPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		BindingPackageImpl theBindingPackage = (BindingPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) instanceof BindingPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) : BindingPackage.eINSTANCE);
+		AuthorizationPackageImpl theAuthorizationPackage = (AuthorizationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) instanceof AuthorizationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) : AuthorizationPackage.eINSTANCE);
+		ValidationPackageImpl theValidationPackage = (ValidationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) instanceof ValidationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) : ValidationPackage.eINSTANCE);
+		DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) instanceof DatatypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) : DatatypesPackage.eINSTANCE);
+		VisibilityPackageImpl theVisibilityPackage = (VisibilityPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) instanceof VisibilityPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) : VisibilityPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theCoreModelPackage.createPackageContents();
+		theBindingPackage.createPackageContents();
+		theAuthorizationPackage.createPackageContents();
+		theValidationPackage.createPackageContents();
+		theDatatypesPackage.createPackageContents();
+		theVisibilityPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theCoreModelPackage.initializePackageContents();
+		theBindingPackage.initializePackageContents();
+		theAuthorizationPackage.initializePackageContents();
+		theValidationPackage.initializePackageContents();
+		theDatatypesPackage.initializePackageContents();
+		theVisibilityPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theCoreModelPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(CoreModelPackage.eNS_URI, theCoreModelPackage);
+		return theCoreModelPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYElement() {
+		return yElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYElement_Id() {
+		return (EAttribute)yElementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYElement_Name() {
+		return (EAttribute)yElementEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYElement_Properties() {
+		return (EReference)yElementEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYStringToStringMap() {
+		return yStringToStringMapEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYStringToStringMap_Key() {
+		return (EAttribute)yStringToStringMapEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYStringToStringMap_Value() {
+		return (EAttribute)yStringToStringMapEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYLayout() {
+		return yLayoutEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYLayout_Elements() {
+		return (EReference)yLayoutEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYHelperLayout() {
+		return yHelperLayoutEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYHelperLayout_VirtualElements() {
+		return (EReference)yHelperLayoutEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYField() {
+		return yFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYField_Validators() {
+		return (EReference)yFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYField_InternalValidators() {
+		return (EReference)yFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYField_Converter() {
+		return (EReference)yFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYView() {
+		return yViewEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_Root() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYView_ViewName() {
+		return (EAttribute)yViewEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYView_Version() {
+		return (EAttribute)yViewEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_Content() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_BindingSet() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_BeanSlots() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_CommandSet() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_Dialogs() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYView_DeviceType() {
+		return (EAttribute)yViewEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYView_ContentAlignment() {
+		return (EAttribute)yViewEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_VisibilityProcessors() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_TransientVisibilityProcessors() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_ExposedActions() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYView_SharedStateGroup() {
+		return (EAttribute)yViewEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYView_Category() {
+		return (EAttribute)yViewEClass.getEStructuralFeatures().get(14);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_InitialFocus() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(15);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_CurrentFocus() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(16);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_DisabledElements() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(17);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYView_AuthorizationStore() {
+		return (EReference)yViewEClass.getEStructuralFeatures().get(18);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYViewSet() {
+		return yViewSetEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYViewSet_Views() {
+		return (EReference)yViewSetEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYViewSet_BeanSlots() {
+		return (EReference)yViewSetEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYAlignmentContainer() {
+		return yAlignmentContainerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBeanSlot() {
+		return yBeanSlotEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanSlot_Name() {
+		return (EAttribute)yBeanSlotEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanSlot_ValueType() {
+		return (EAttribute)yBeanSlotEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanSlot_ValueTypeQualifiedName() {
+		return (EAttribute)yBeanSlotEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanSlot_EventTopic() {
+		return (EAttribute)yBeanSlotEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanSlot_RedirectEvents() {
+		return (EAttribute)yBeanSlotEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYDetailBeanSlot() {
+		return yDetailBeanSlotEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYDetailBeanSlot_MasterBeanSlot() {
+		return (EReference)yDetailBeanSlotEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDetailBeanSlot_PropertyPath() {
+		return (EAttribute)yDetailBeanSlotEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYHelperLayoutProvider() {
+		return yHelperLayoutProviderEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYEmbeddable() {
+		return yEmbeddableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYEmbeddable_OrphanDatatypes() {
+		return (EReference)yEmbeddableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYEmbeddable_OrphanDatadescriptions() {
+		return (EReference)yEmbeddableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEmbeddable_MementoEnabled() {
+		return (EAttribute)yEmbeddableEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEmbeddable_MementoId() {
+		return (EAttribute)yEmbeddableEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEmbeddable_Label() {
+		return (EAttribute)yEmbeddableEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEmbeddable_LabelI18nKey() {
+		return (EAttribute)yEmbeddableEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYDialog() {
+		return yDialogEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYDialog_Content() {
+		return (EReference)yDialogEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDialog_Modal() {
+		return (EAttribute)yDialogEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDialog_Resizeable() {
+		return (EAttribute)yDialogEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDialog_Draggable() {
+		return (EAttribute)yDialogEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDialog_Closable() {
+		return (EAttribute)yDialogEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDialog_Value() {
+		return (EAttribute)yDialogEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDialog_Type() {
+		return (EAttribute)yDialogEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDialog_EmfNsURI() {
+		return (EAttribute)yDialogEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDialog_TypeQualifiedName() {
+		return (EAttribute)yDialogEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYDialog_Datadescription() {
+		return (EReference)yDialogEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYCssAble() {
+		return yCssAbleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYCssAble_CssClass() {
+		return (EAttribute)yCssAbleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYCssAble_CssID() {
+		return (EAttribute)yCssAbleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYMarginable() {
+		return yMarginableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYMarginable_Margin() {
+		return (EAttribute)yMarginableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYSpacingable() {
+		return ySpacingableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSpacingable_Spacing() {
+		return (EAttribute)ySpacingableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYHeightable() {
+		return yHeightableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYHeightable_Height() {
+		return (EAttribute)yHeightableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYHeightable_HeightUnit() {
+		return (EAttribute)yHeightableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYWidthable() {
+		return yWidthableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYWidthable_Width() {
+		return (EAttribute)yWidthableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYWidthable_WidthUnit() {
+		return (EAttribute)yWidthableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYActivateable() {
+		return yActivateableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYActivateable_InitialActivated() {
+		return (EAttribute)yActivateableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYActivateable_Activated() {
+		return (EAttribute)yActivateableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYVisibleable() {
+		return yVisibleableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibleable_InitialVisible() {
+		return (EAttribute)yVisibleableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibleable_Visible() {
+		return (EAttribute)yVisibleableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYEditable() {
+		return yEditableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEditable_InitialEditable() {
+		return (EAttribute)yEditableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEditable_Editable() {
+		return (EAttribute)yEditableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYEnable() {
+		return yEnableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEnable_InitialEnabled() {
+		return (EAttribute)yEnableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEnable_Enabled() {
+		return (EAttribute)yEnableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYFocusable() {
+		return yFocusableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYFocusable_TabIndex() {
+		return (EAttribute)yFocusableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYAction() {
+		return yActionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBindable() {
+		return yBindableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYValueBindable() {
+		return yValueBindableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYValueBindable_ValueBindingEndpoint() {
+		return (EReference)yValueBindableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYSelectionBindable() {
+		return ySelectionBindableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYSelectionBindable_SelectionBindingEndpoint() {
+		return (EReference)ySelectionBindableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYMultiSelectionBindable() {
+		return yMultiSelectionBindableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYMultiSelectionBindable_MultiSelectionBindingEndpoint() {
+		return (EReference)yMultiSelectionBindableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYCollectionBindable() {
+		return yCollectionBindableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYCollectionBindable_CollectionBindingEndpoint() {
+		return (EReference)yCollectionBindableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYContextValueBindingEndpoint() {
+		return yContextValueBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYContextValueBindingEndpoint_UrlString() {
+		return (EAttribute)yContextValueBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBeanSlotValueBindingEndpoint() {
+		return yBeanSlotValueBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanSlotValueBindingEndpoint_AttributePath() {
+		return (EAttribute)yBeanSlotValueBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYBeanSlotValueBindingEndpoint_BeanSlot() {
+		return (EReference)yBeanSlotValueBindingEndpointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBeanSlotListBindingEndpoint() {
+		return yBeanSlotListBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanSlotListBindingEndpoint_AttributePath() {
+		return (EAttribute)yBeanSlotListBindingEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYBeanSlotListBindingEndpoint_BeanSlot() {
+		return (EReference)yBeanSlotListBindingEndpointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanSlotListBindingEndpoint_CollectionType() {
+		return (EAttribute)yBeanSlotListBindingEndpointEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanSlotListBindingEndpoint_CollectionTypeQualifiedName() {
+		return (EAttribute)yBeanSlotListBindingEndpointEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYEmbeddableBindingEndpoint() {
+		return yEmbeddableBindingEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYEmbeddableValueEndpoint() {
+		return yEmbeddableValueEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYEmbeddableValueEndpoint_Element() {
+		return (EReference)yEmbeddableValueEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYEmbeddableSelectionEndpoint() {
+		return yEmbeddableSelectionEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYEmbeddableSelectionEndpoint_Element() {
+		return (EReference)yEmbeddableSelectionEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYEmbeddableSelectionEndpoint_AttributePath() {
+		return (EAttribute)yEmbeddableSelectionEndpointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYEmbeddableMultiSelectionEndpoint() {
+		return yEmbeddableMultiSelectionEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYEmbeddableMultiSelectionEndpoint_Element() {
+		return (EReference)yEmbeddableMultiSelectionEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYEmbeddableCollectionEndpoint() {
+		return yEmbeddableCollectionEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYEmbeddableCollectionEndpoint_Element() {
+		return (EReference)yEmbeddableCollectionEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYActivatedEndpoint() {
+		return yActivatedEndpointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYActivatedEndpoint_Element() {
+		return (EReference)yActivatedEndpointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYDtWrapper() {
+		return yDtWrapperEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYCommand() {
+		return yCommandEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYCommandSet() {
+		return yCommandSetEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYCommandSet_Commands() {
+		return (EReference)yCommandSetEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYCommandSet_TransientCommands() {
+		return (EReference)yCommandSetEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYOpenDialogCommand() {
+		return yOpenDialogCommandEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYOpenDialogCommand_Dialog() {
+		return (EReference)yOpenDialogCommandEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYOpenDialogCommand_Trigger() {
+		return (EAttribute)yOpenDialogCommandEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYExposedAction() {
+		return yExposedActionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYExposedAction_Icon() {
+		return (EAttribute)yExposedActionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYExposedAction_Label() {
+		return (EAttribute)yExposedActionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYExposedAction_LabelI18nKey() {
+		return (EAttribute)yExposedActionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYExposedAction_ExternalClickTime() {
+		return (EAttribute)yExposedActionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYExposedAction_InternalClickTime() {
+		return (EAttribute)yExposedActionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYExposedAction_ExecutedNotificationTime() {
+		return (EAttribute)yExposedActionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYExposedAction_CanceledNotificationTime() {
+		return (EAttribute)yExposedActionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYExposedAction_CheckDirty() {
+		return (EAttribute)yExposedActionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYExposedAction_ExternalCommandId() {
+		return (EAttribute)yExposedActionEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYSendEventCommand() {
+		return ySendEventCommandEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSendEventCommand_EventTopic() {
+		return (EAttribute)ySendEventCommandEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSendEventCommand_Message() {
+		return (EAttribute)ySendEventCommandEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSendEventCommand_Trigger() {
+		return (EAttribute)ySendEventCommandEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSendEventCommand_AutoTrigger() {
+		return (EAttribute)ySendEventCommandEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYKeyStrokeDefinition() {
+		return yKeyStrokeDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYKeyStrokeDefinition_KeyCode() {
+		return (EAttribute)yKeyStrokeDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYKeyStrokeDefinition_ModifierKeys() {
+		return (EAttribute)yKeyStrokeDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYConverter() {
+		return yConverterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYDelegateConverter() {
+		return yDelegateConverterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDelegateConverter_ConverterId() {
+		return (EAttribute)yDelegateConverterEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYMemento() {
+		return yMementoEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYAuthorizationable() {
+		return yAuthorizationableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYAuthorizationable_AuthorizationGroup() {
+		return (EAttribute)yAuthorizationableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYAuthorizationable_AuthorizationId() {
+		return (EAttribute)yAuthorizationableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYTaggable() {
+		return yTaggableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYTaggable_Tags() {
+		return (EAttribute)yTaggableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYDeviceType() {
+		return yDeviceTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYAlignment() {
+		return yAlignmentEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYFlatAlignment() {
+		return yFlatAlignmentEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYUnit() {
+		return yUnitEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYKeyCode() {
+		return yKeyCodeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYModifierKey() {
+		return yModifierKeyEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYOrientation() {
+		return yOrientationEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYCompare() {
+		return yCompareEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getYURI() {
+		return yuriEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getYValueChangeListener() {
+		return yValueChangeListenerEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CoreModelFactory getCoreModelFactory() {
+		return (CoreModelFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		yElementEClass = createEClass(YELEMENT);
+		createEAttribute(yElementEClass, YELEMENT__ID);
+		createEAttribute(yElementEClass, YELEMENT__NAME);
+		createEReference(yElementEClass, YELEMENT__PROPERTIES);
+
+		yStringToStringMapEClass = createEClass(YSTRING_TO_STRING_MAP);
+		createEAttribute(yStringToStringMapEClass, YSTRING_TO_STRING_MAP__KEY);
+		createEAttribute(yStringToStringMapEClass, YSTRING_TO_STRING_MAP__VALUE);
+
+		yLayoutEClass = createEClass(YLAYOUT);
+		createEReference(yLayoutEClass, YLAYOUT__ELEMENTS);
+
+		yHelperLayoutProviderEClass = createEClass(YHELPER_LAYOUT_PROVIDER);
+
+		yHelperLayoutEClass = createEClass(YHELPER_LAYOUT);
+		createEReference(yHelperLayoutEClass, YHELPER_LAYOUT__VIRTUAL_ELEMENTS);
+
+		yFieldEClass = createEClass(YFIELD);
+		createEReference(yFieldEClass, YFIELD__VALIDATORS);
+		createEReference(yFieldEClass, YFIELD__INTERNAL_VALIDATORS);
+		createEReference(yFieldEClass, YFIELD__CONVERTER);
+
+		yViewEClass = createEClass(YVIEW);
+		createEReference(yViewEClass, YVIEW__ROOT);
+		createEAttribute(yViewEClass, YVIEW__VIEW_NAME);
+		createEAttribute(yViewEClass, YVIEW__VERSION);
+		createEReference(yViewEClass, YVIEW__CONTENT);
+		createEReference(yViewEClass, YVIEW__BINDING_SET);
+		createEReference(yViewEClass, YVIEW__BEAN_SLOTS);
+		createEReference(yViewEClass, YVIEW__COMMAND_SET);
+		createEReference(yViewEClass, YVIEW__DIALOGS);
+		createEAttribute(yViewEClass, YVIEW__DEVICE_TYPE);
+		createEAttribute(yViewEClass, YVIEW__CONTENT_ALIGNMENT);
+		createEReference(yViewEClass, YVIEW__VISIBILITY_PROCESSORS);
+		createEReference(yViewEClass, YVIEW__TRANSIENT_VISIBILITY_PROCESSORS);
+		createEReference(yViewEClass, YVIEW__EXPOSED_ACTIONS);
+		createEAttribute(yViewEClass, YVIEW__SHARED_STATE_GROUP);
+		createEAttribute(yViewEClass, YVIEW__CATEGORY);
+		createEReference(yViewEClass, YVIEW__INITIAL_FOCUS);
+		createEReference(yViewEClass, YVIEW__CURRENT_FOCUS);
+		createEReference(yViewEClass, YVIEW__DISABLED_ELEMENTS);
+		createEReference(yViewEClass, YVIEW__AUTHORIZATION_STORE);
+
+		yViewSetEClass = createEClass(YVIEW_SET);
+		createEReference(yViewSetEClass, YVIEW_SET__VIEWS);
+		createEReference(yViewSetEClass, YVIEW_SET__BEAN_SLOTS);
+
+		yAlignmentContainerEClass = createEClass(YALIGNMENT_CONTAINER);
+
+		yBeanSlotEClass = createEClass(YBEAN_SLOT);
+		createEAttribute(yBeanSlotEClass, YBEAN_SLOT__NAME);
+		createEAttribute(yBeanSlotEClass, YBEAN_SLOT__VALUE_TYPE);
+		createEAttribute(yBeanSlotEClass, YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME);
+		createEAttribute(yBeanSlotEClass, YBEAN_SLOT__EVENT_TOPIC);
+		createEAttribute(yBeanSlotEClass, YBEAN_SLOT__REDIRECT_EVENTS);
+
+		yDetailBeanSlotEClass = createEClass(YDETAIL_BEAN_SLOT);
+		createEReference(yDetailBeanSlotEClass, YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT);
+		createEAttribute(yDetailBeanSlotEClass, YDETAIL_BEAN_SLOT__PROPERTY_PATH);
+
+		yEmbeddableEClass = createEClass(YEMBEDDABLE);
+		createEReference(yEmbeddableEClass, YEMBEDDABLE__ORPHAN_DATATYPES);
+		createEReference(yEmbeddableEClass, YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS);
+		createEAttribute(yEmbeddableEClass, YEMBEDDABLE__MEMENTO_ENABLED);
+		createEAttribute(yEmbeddableEClass, YEMBEDDABLE__MEMENTO_ID);
+		createEAttribute(yEmbeddableEClass, YEMBEDDABLE__LABEL);
+		createEAttribute(yEmbeddableEClass, YEMBEDDABLE__LABEL_I1_8N_KEY);
+
+		yDialogEClass = createEClass(YDIALOG);
+		createEReference(yDialogEClass, YDIALOG__CONTENT);
+		createEAttribute(yDialogEClass, YDIALOG__MODAL);
+		createEAttribute(yDialogEClass, YDIALOG__RESIZEABLE);
+		createEAttribute(yDialogEClass, YDIALOG__DRAGGABLE);
+		createEAttribute(yDialogEClass, YDIALOG__CLOSABLE);
+		createEAttribute(yDialogEClass, YDIALOG__VALUE);
+		createEAttribute(yDialogEClass, YDIALOG__TYPE);
+		createEAttribute(yDialogEClass, YDIALOG__EMF_NS_URI);
+		createEAttribute(yDialogEClass, YDIALOG__TYPE_QUALIFIED_NAME);
+		createEReference(yDialogEClass, YDIALOG__DATADESCRIPTION);
+
+		yCssAbleEClass = createEClass(YCSS_ABLE);
+		createEAttribute(yCssAbleEClass, YCSS_ABLE__CSS_CLASS);
+		createEAttribute(yCssAbleEClass, YCSS_ABLE__CSS_ID);
+
+		yMarginableEClass = createEClass(YMARGINABLE);
+		createEAttribute(yMarginableEClass, YMARGINABLE__MARGIN);
+
+		ySpacingableEClass = createEClass(YSPACINGABLE);
+		createEAttribute(ySpacingableEClass, YSPACINGABLE__SPACING);
+
+		yHeightableEClass = createEClass(YHEIGHTABLE);
+		createEAttribute(yHeightableEClass, YHEIGHTABLE__HEIGHT);
+		createEAttribute(yHeightableEClass, YHEIGHTABLE__HEIGHT_UNIT);
+
+		yWidthableEClass = createEClass(YWIDTHABLE);
+		createEAttribute(yWidthableEClass, YWIDTHABLE__WIDTH);
+		createEAttribute(yWidthableEClass, YWIDTHABLE__WIDTH_UNIT);
+
+		yActivateableEClass = createEClass(YACTIVATEABLE);
+		createEAttribute(yActivateableEClass, YACTIVATEABLE__INITIAL_ACTIVATED);
+		createEAttribute(yActivateableEClass, YACTIVATEABLE__ACTIVATED);
+
+		yVisibleableEClass = createEClass(YVISIBLEABLE);
+		createEAttribute(yVisibleableEClass, YVISIBLEABLE__INITIAL_VISIBLE);
+		createEAttribute(yVisibleableEClass, YVISIBLEABLE__VISIBLE);
+
+		yEditableEClass = createEClass(YEDITABLE);
+		createEAttribute(yEditableEClass, YEDITABLE__INITIAL_EDITABLE);
+		createEAttribute(yEditableEClass, YEDITABLE__EDITABLE);
+
+		yEnableEClass = createEClass(YENABLE);
+		createEAttribute(yEnableEClass, YENABLE__INITIAL_ENABLED);
+		createEAttribute(yEnableEClass, YENABLE__ENABLED);
+
+		yFocusableEClass = createEClass(YFOCUSABLE);
+		createEAttribute(yFocusableEClass, YFOCUSABLE__TAB_INDEX);
+
+		yActionEClass = createEClass(YACTION);
+
+		yBindableEClass = createEClass(YBINDABLE);
+
+		yValueBindableEClass = createEClass(YVALUE_BINDABLE);
+		createEReference(yValueBindableEClass, YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT);
+
+		ySelectionBindableEClass = createEClass(YSELECTION_BINDABLE);
+		createEReference(ySelectionBindableEClass, YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT);
+
+		yMultiSelectionBindableEClass = createEClass(YMULTI_SELECTION_BINDABLE);
+		createEReference(yMultiSelectionBindableEClass, YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT);
+
+		yCollectionBindableEClass = createEClass(YCOLLECTION_BINDABLE);
+		createEReference(yCollectionBindableEClass, YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT);
+
+		yContextValueBindingEndpointEClass = createEClass(YCONTEXT_VALUE_BINDING_ENDPOINT);
+		createEAttribute(yContextValueBindingEndpointEClass, YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING);
+
+		yBeanSlotValueBindingEndpointEClass = createEClass(YBEAN_SLOT_VALUE_BINDING_ENDPOINT);
+		createEAttribute(yBeanSlotValueBindingEndpointEClass, YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH);
+		createEReference(yBeanSlotValueBindingEndpointEClass, YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT);
+
+		yBeanSlotListBindingEndpointEClass = createEClass(YBEAN_SLOT_LIST_BINDING_ENDPOINT);
+		createEAttribute(yBeanSlotListBindingEndpointEClass, YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH);
+		createEReference(yBeanSlotListBindingEndpointEClass, YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT);
+		createEAttribute(yBeanSlotListBindingEndpointEClass, YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE);
+		createEAttribute(yBeanSlotListBindingEndpointEClass, YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME);
+
+		yEmbeddableBindingEndpointEClass = createEClass(YEMBEDDABLE_BINDING_ENDPOINT);
+
+		yEmbeddableValueEndpointEClass = createEClass(YEMBEDDABLE_VALUE_ENDPOINT);
+		createEReference(yEmbeddableValueEndpointEClass, YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT);
+
+		yEmbeddableSelectionEndpointEClass = createEClass(YEMBEDDABLE_SELECTION_ENDPOINT);
+		createEReference(yEmbeddableSelectionEndpointEClass, YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT);
+		createEAttribute(yEmbeddableSelectionEndpointEClass, YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH);
+
+		yEmbeddableMultiSelectionEndpointEClass = createEClass(YEMBEDDABLE_MULTI_SELECTION_ENDPOINT);
+		createEReference(yEmbeddableMultiSelectionEndpointEClass, YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT);
+
+		yEmbeddableCollectionEndpointEClass = createEClass(YEMBEDDABLE_COLLECTION_ENDPOINT);
+		createEReference(yEmbeddableCollectionEndpointEClass, YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT);
+
+		yActivatedEndpointEClass = createEClass(YACTIVATED_ENDPOINT);
+		createEReference(yActivatedEndpointEClass, YACTIVATED_ENDPOINT__ELEMENT);
+
+		yDtWrapperEClass = createEClass(YDT_WRAPPER);
+
+		yCommandEClass = createEClass(YCOMMAND);
+
+		yCommandSetEClass = createEClass(YCOMMAND_SET);
+		createEReference(yCommandSetEClass, YCOMMAND_SET__COMMANDS);
+		createEReference(yCommandSetEClass, YCOMMAND_SET__TRANSIENT_COMMANDS);
+
+		yOpenDialogCommandEClass = createEClass(YOPEN_DIALOG_COMMAND);
+		createEReference(yOpenDialogCommandEClass, YOPEN_DIALOG_COMMAND__DIALOG);
+		createEAttribute(yOpenDialogCommandEClass, YOPEN_DIALOG_COMMAND__TRIGGER);
+
+		yExposedActionEClass = createEClass(YEXPOSED_ACTION);
+		createEAttribute(yExposedActionEClass, YEXPOSED_ACTION__ICON);
+		createEAttribute(yExposedActionEClass, YEXPOSED_ACTION__LABEL);
+		createEAttribute(yExposedActionEClass, YEXPOSED_ACTION__LABEL_I1_8N_KEY);
+		createEAttribute(yExposedActionEClass, YEXPOSED_ACTION__EXTERNAL_CLICK_TIME);
+		createEAttribute(yExposedActionEClass, YEXPOSED_ACTION__INTERNAL_CLICK_TIME);
+		createEAttribute(yExposedActionEClass, YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME);
+		createEAttribute(yExposedActionEClass, YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME);
+		createEAttribute(yExposedActionEClass, YEXPOSED_ACTION__CHECK_DIRTY);
+		createEAttribute(yExposedActionEClass, YEXPOSED_ACTION__EXTERNAL_COMMAND_ID);
+
+		ySendEventCommandEClass = createEClass(YSEND_EVENT_COMMAND);
+		createEAttribute(ySendEventCommandEClass, YSEND_EVENT_COMMAND__EVENT_TOPIC);
+		createEAttribute(ySendEventCommandEClass, YSEND_EVENT_COMMAND__MESSAGE);
+		createEAttribute(ySendEventCommandEClass, YSEND_EVENT_COMMAND__TRIGGER);
+		createEAttribute(ySendEventCommandEClass, YSEND_EVENT_COMMAND__AUTO_TRIGGER);
+
+		yKeyStrokeDefinitionEClass = createEClass(YKEY_STROKE_DEFINITION);
+		createEAttribute(yKeyStrokeDefinitionEClass, YKEY_STROKE_DEFINITION__KEY_CODE);
+		createEAttribute(yKeyStrokeDefinitionEClass, YKEY_STROKE_DEFINITION__MODIFIER_KEYS);
+
+		yConverterEClass = createEClass(YCONVERTER);
+
+		yDelegateConverterEClass = createEClass(YDELEGATE_CONVERTER);
+		createEAttribute(yDelegateConverterEClass, YDELEGATE_CONVERTER__CONVERTER_ID);
+
+		yMementoEClass = createEClass(YMEMENTO);
+
+		yAuthorizationableEClass = createEClass(YAUTHORIZATIONABLE);
+		createEAttribute(yAuthorizationableEClass, YAUTHORIZATIONABLE__AUTHORIZATION_GROUP);
+		createEAttribute(yAuthorizationableEClass, YAUTHORIZATIONABLE__AUTHORIZATION_ID);
+
+		yTaggableEClass = createEClass(YTAGGABLE);
+		createEAttribute(yTaggableEClass, YTAGGABLE__TAGS);
+
+		// Create enums
+		yDeviceTypeEEnum = createEEnum(YDEVICE_TYPE);
+		yAlignmentEEnum = createEEnum(YALIGNMENT);
+		yFlatAlignmentEEnum = createEEnum(YFLAT_ALIGNMENT);
+		yUnitEEnum = createEEnum(YUNIT);
+		yKeyCodeEEnum = createEEnum(YKEY_CODE);
+		yModifierKeyEEnum = createEEnum(YMODIFIER_KEY);
+		yOrientationEEnum = createEEnum(YORIENTATION);
+		yCompareEEnum = createEEnum(YCOMPARE);
+
+		// Create data types
+		yuriEDataType = createEDataType(YURI);
+		yValueChangeListenerEDataType = createEDataType(YVALUE_CHANGE_LISTENER);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		AuthorizationPackage theAuthorizationPackage = (AuthorizationPackage)EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI);
+		ValidationPackage theValidationPackage = (ValidationPackage)EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI);
+		BindingPackage theBindingPackage = (BindingPackage)EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI);
+		VisibilityPackage theVisibilityPackage = (VisibilityPackage)EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI);
+		DatatypesPackage theDatatypesPackage = (DatatypesPackage)EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+
+		// Add subpackages
+		getESubpackages().add(theAuthorizationPackage);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		yElementEClass.getESuperTypes().add(this.getYTaggable());
+		yLayoutEClass.getESuperTypes().add(this.getYEmbeddable());
+		yLayoutEClass.getESuperTypes().add(this.getYEditable());
+		yLayoutEClass.getESuperTypes().add(this.getYEnable());
+		yHelperLayoutEClass.getESuperTypes().add(this.getYLayout());
+		yFieldEClass.getESuperTypes().add(this.getYEmbeddable());
+		yFieldEClass.getESuperTypes().add(this.getYEditable());
+		yFieldEClass.getESuperTypes().add(this.getYEnable());
+		yFieldEClass.getESuperTypes().add(this.getYFocusable());
+		yViewEClass.getESuperTypes().add(this.getYElement());
+		yViewEClass.getESuperTypes().add(this.getYCssAble());
+		yViewEClass.getESuperTypes().add(this.getYMarginable());
+		yViewEClass.getESuperTypes().add(this.getYAlignmentContainer());
+		yViewSetEClass.getESuperTypes().add(this.getYElement());
+		yBeanSlotEClass.getESuperTypes().add(this.getYBindable());
+		yBeanSlotEClass.getESuperTypes().add(this.getYTaggable());
+		yDetailBeanSlotEClass.getESuperTypes().add(this.getYBeanSlot());
+		yEmbeddableEClass.getESuperTypes().add(this.getYElement());
+		yEmbeddableEClass.getESuperTypes().add(this.getYCssAble());
+		yEmbeddableEClass.getESuperTypes().add(this.getYVisibleable());
+		yEmbeddableEClass.getESuperTypes().add(this.getYAuthorizationable());
+		yDialogEClass.getESuperTypes().add(this.getYElement());
+		yDialogEClass.getESuperTypes().add(this.getYValueBindable());
+		yDialogEClass.getESuperTypes().add(this.getYCssAble());
+		yActivateableEClass.getESuperTypes().add(this.getYBindable());
+		yActionEClass.getESuperTypes().add(this.getYEmbeddable());
+		yActionEClass.getESuperTypes().add(this.getYEnable());
+		yValueBindableEClass.getESuperTypes().add(this.getYBindable());
+		ySelectionBindableEClass.getESuperTypes().add(this.getYBindable());
+		yMultiSelectionBindableEClass.getESuperTypes().add(this.getYBindable());
+		yCollectionBindableEClass.getESuperTypes().add(this.getYBindable());
+		yContextValueBindingEndpointEClass.getESuperTypes().add(theBindingPackage.getYValueBindingEndpoint());
+		yBeanSlotValueBindingEndpointEClass.getESuperTypes().add(theBindingPackage.getYValueBindingEndpoint());
+		yBeanSlotListBindingEndpointEClass.getESuperTypes().add(theBindingPackage.getYListBindingEndpoint());
+		yEmbeddableValueEndpointEClass.getESuperTypes().add(theBindingPackage.getYValueBindingEndpoint());
+		yEmbeddableValueEndpointEClass.getESuperTypes().add(this.getYEmbeddableBindingEndpoint());
+		yEmbeddableSelectionEndpointEClass.getESuperTypes().add(theBindingPackage.getYValueBindingEndpoint());
+		yEmbeddableSelectionEndpointEClass.getESuperTypes().add(this.getYEmbeddableBindingEndpoint());
+		yEmbeddableMultiSelectionEndpointEClass.getESuperTypes().add(theBindingPackage.getYListBindingEndpoint());
+		yEmbeddableMultiSelectionEndpointEClass.getESuperTypes().add(this.getYEmbeddableBindingEndpoint());
+		yEmbeddableCollectionEndpointEClass.getESuperTypes().add(theBindingPackage.getYListBindingEndpoint());
+		yEmbeddableCollectionEndpointEClass.getESuperTypes().add(this.getYEmbeddableBindingEndpoint());
+		yActivatedEndpointEClass.getESuperTypes().add(theBindingPackage.getYValueBindingEndpoint());
+		yActivatedEndpointEClass.getESuperTypes().add(this.getYEmbeddableBindingEndpoint());
+		yDtWrapperEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yCommandEClass.getESuperTypes().add(this.getYElement());
+		yCommandSetEClass.getESuperTypes().add(this.getYElement());
+		yOpenDialogCommandEClass.getESuperTypes().add(this.getYCommand());
+		yExposedActionEClass.getESuperTypes().add(this.getYElement());
+		yExposedActionEClass.getESuperTypes().add(this.getYEnable());
+		ySendEventCommandEClass.getESuperTypes().add(this.getYCommand());
+		yKeyStrokeDefinitionEClass.getESuperTypes().add(this.getYElement());
+		yConverterEClass.getESuperTypes().add(this.getYElement());
+		yDelegateConverterEClass.getESuperTypes().add(this.getYConverter());
+		yMementoEClass.getESuperTypes().add(this.getYElement());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(yElementEClass, YElement.class, "YElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYElement_Id(), ecorePackage.getEString(), "id", null, 0, 1, YElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, YElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYElement_Properties(), this.getYStringToStringMap(), null, "properties", null, 0, -1, YElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yStringToStringMapEClass, Map.Entry.class, "YStringToStringMap", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYStringToStringMap_Key(), ecorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYStringToStringMap_Value(), ecorePackage.getEString(), "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yLayoutEClass, YLayout.class, "YLayout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYLayout_Elements(), this.getYEmbeddable(), null, "elements", null, 0, -1, YLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yHelperLayoutProviderEClass, YHelperLayoutProvider.class, "YHelperLayoutProvider", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		addEOperation(yHelperLayoutProviderEClass, this.getYHelperLayout(), "getHelperLayout", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yHelperLayoutEClass, YHelperLayout.class, "YHelperLayout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYHelperLayout_VirtualElements(), this.getYEmbeddable(), null, "virtualElements", null, 0, -1, YHelperLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yFieldEClass, YField.class, "YField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYField_Validators(), theValidationPackage.getYValidator(), null, "validators", null, 0, -1, YField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYField_InternalValidators(), theValidationPackage.getYValidator(), null, "internalValidators", null, 0, -1, YField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYField_Converter(), this.getYConverter(), null, "converter", null, 0, 1, YField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		EOperation op = addEOperation(yFieldEClass, ecorePackage.getEBoolean(), "addValueChangeListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYValueChangeListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yFieldEClass, ecorePackage.getEBoolean(), "removeValueChangeListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYValueChangeListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(yFieldEClass, null, "removeAllValueChangListeners", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yViewEClass, YView.class, "YView", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYView_Root(), this.getYViewSet(), this.getYViewSet_Views(), "root", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYView_ViewName(), ecorePackage.getEString(), "viewName", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYView_Version(), ecorePackage.getEString(), "version", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_Content(), this.getYEmbeddable(), null, "content", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_BindingSet(), theBindingPackage.getYBindingSet(), null, "bindingSet", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_BeanSlots(), this.getYBeanSlot(), null, "beanSlots", null, 0, -1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_CommandSet(), this.getYCommandSet(), null, "commandSet", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_Dialogs(), this.getYDialog(), null, "dialogs", null, 0, -1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYView_DeviceType(), this.getYDeviceType(), "deviceType", "IDE", 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYView_ContentAlignment(), this.getYAlignment(), "contentAlignment", "FILL_FILL", 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_VisibilityProcessors(), theVisibilityPackage.getYVisibilityProcessor(), null, "visibilityProcessors", null, 0, -1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_TransientVisibilityProcessors(), theVisibilityPackage.getYVisibilityProcessor(), null, "transientVisibilityProcessors", null, 0, -1, YView.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_ExposedActions(), this.getYExposedAction(), null, "exposedActions", null, 0, -1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYView_SharedStateGroup(), ecorePackage.getEString(), "sharedStateGroup", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYView_Category(), ecorePackage.getEString(), "category", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_InitialFocus(), this.getYFocusable(), null, "initialFocus", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_CurrentFocus(), this.getYFocusable(), null, "currentFocus", null, 0, 1, YView.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_DisabledElements(), this.getYEmbeddable(), null, "disabledElements", null, 0, -1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYView_AuthorizationStore(), theAuthorizationPackage.getYAuthorizationStore(), null, "authorizationStore", null, 0, 1, YView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yViewEClass, theBindingPackage.getYBindingSet(), "getOrCreateBindingSet", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yViewSetEClass, YViewSet.class, "YViewSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYViewSet_Views(), this.getYView(), this.getYView_Root(), "views", null, 0, -1, YViewSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYViewSet_BeanSlots(), this.getYBeanSlot(), null, "beanSlots", null, 0, -1, YViewSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yAlignmentContainerEClass, YAlignmentContainer.class, "YAlignmentContainer", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		op = addEOperation(yAlignmentContainerEClass, null, "applyAlignment", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYEmbeddable(), "child", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYAlignment(), "alignment", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yBeanSlotEClass, YBeanSlot.class, "YBeanSlot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYBeanSlot_Name(), ecorePackage.getEString(), "name", null, 1, 1, YBeanSlot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		EGenericType g1 = createEGenericType(ecorePackage.getEJavaClass());
+		EGenericType g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYBeanSlot_ValueType(), g1, "valueType", null, 0, 1, YBeanSlot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanSlot_ValueTypeQualifiedName(), ecorePackage.getEString(), "valueTypeQualifiedName", null, 0, 1, YBeanSlot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanSlot_EventTopic(), ecorePackage.getEString(), "eventTopic", null, 0, 1, YBeanSlot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanSlot_RedirectEvents(), ecorePackage.getEBoolean(), "redirectEvents", null, 0, 1, YBeanSlot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yDetailBeanSlotEClass, YDetailBeanSlot.class, "YDetailBeanSlot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYDetailBeanSlot_MasterBeanSlot(), this.getYBeanSlot(), null, "masterBeanSlot", null, 0, 1, YDetailBeanSlot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDetailBeanSlot_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 1, 1, YDetailBeanSlot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEmbeddableEClass, YEmbeddable.class, "YEmbeddable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYEmbeddable_OrphanDatatypes(), theDatatypesPackage.getYDatatype(), null, "orphanDatatypes", null, 0, -1, YEmbeddable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYEmbeddable_OrphanDatadescriptions(), theDatatypesPackage.getYDatadescription(), null, "orphanDatadescriptions", null, 0, -1, YEmbeddable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEmbeddable_MementoEnabled(), ecorePackage.getEBoolean(), "mementoEnabled", "false", 0, 1, YEmbeddable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEmbeddable_MementoId(), ecorePackage.getEString(), "mementoId", "", 0, 1, YEmbeddable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEmbeddable_Label(), ecorePackage.getEString(), "label", null, 0, 1, YEmbeddable.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEmbeddable_LabelI18nKey(), ecorePackage.getEString(), "labelI18nKey", null, 0, 1, YEmbeddable.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yEmbeddableEClass, this.getYView(), "getView", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(yEmbeddableEClass, this.getYLayout(), "getParent", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yDialogEClass, YDialog.class, "YDialog", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYDialog_Content(), this.getYEmbeddable(), null, "content", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDialog_Modal(), ecorePackage.getEBoolean(), "modal", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDialog_Resizeable(), ecorePackage.getEBoolean(), "resizeable", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDialog_Draggable(), ecorePackage.getEBoolean(), "draggable", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDialog_Closable(), ecorePackage.getEBoolean(), "closable", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDialog_Value(), ecorePackage.getEJavaObject(), "value", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYDialog_Type(), g1, "type", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDialog_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDialog_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYDialog_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yCssAbleEClass, YCssAble.class, "YCssAble", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYCssAble_CssClass(), ecorePackage.getEString(), "cssClass", null, 0, 1, YCssAble.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYCssAble_CssID(), ecorePackage.getEString(), "cssID", null, 0, 1, YCssAble.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yMarginableEClass, YMarginable.class, "YMarginable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYMarginable_Margin(), ecorePackage.getEBoolean(), "margin", "true", 0, 1, YMarginable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(ySpacingableEClass, YSpacingable.class, "YSpacingable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYSpacingable_Spacing(), ecorePackage.getEBoolean(), "spacing", "true", 0, 1, YSpacingable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yHeightableEClass, YHeightable.class, "YHeightable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYHeightable_Height(), ecorePackage.getEInt(), "height", "100", 0, 1, YHeightable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYHeightable_HeightUnit(), this.getYUnit(), "heightUnit", null, 0, 1, YHeightable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yWidthableEClass, YWidthable.class, "YWidthable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYWidthable_Width(), ecorePackage.getEInt(), "width", "100", 0, 1, YWidthable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYWidthable_WidthUnit(), this.getYUnit(), "widthUnit", null, 0, 1, YWidthable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yActivateableEClass, YActivateable.class, "YActivateable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYActivateable_InitialActivated(), ecorePackage.getEBoolean(), "initialActivated", "true", 0, 1, YActivateable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYActivateable_Activated(), ecorePackage.getEBoolean(), "activated", "true", 0, 1, YActivateable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEClass(yVisibleableEClass, YVisibleable.class, "YVisibleable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYVisibleable_InitialVisible(), ecorePackage.getEBoolean(), "initialVisible", "true", 0, 1, YVisibleable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibleable_Visible(), ecorePackage.getEBoolean(), "visible", "true", 0, 1, YVisibleable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEditableEClass, YEditable.class, "YEditable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYEditable_InitialEditable(), ecorePackage.getEBoolean(), "initialEditable", "true", 0, 1, YEditable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEditable_Editable(), ecorePackage.getEBoolean(), "editable", "true", 0, 1, YEditable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEnableEClass, YEnable.class, "YEnable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYEnable_InitialEnabled(), ecorePackage.getEBoolean(), "initialEnabled", "true", 0, 1, YEnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnable_Enabled(), ecorePackage.getEBoolean(), "enabled", "true", 0, 1, YEnable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEClass(yFocusableEClass, YFocusable.class, "YFocusable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYFocusable_TabIndex(), ecorePackage.getEInt(), "tabIndex", "-1", 0, 1, YFocusable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yActionEClass, YAction.class, "YAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yBindableEClass, YBindable.class, "YBindable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yValueBindableEClass, YValueBindable.class, "YValueBindable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYValueBindable_ValueBindingEndpoint(), this.getYEmbeddableValueEndpoint(), this.getYEmbeddableValueEndpoint_Element(), "valueBindingEndpoint", null, 0, 1, YValueBindable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yValueBindableEClass, this.getYEmbeddableValueEndpoint(), "createValueEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(ySelectionBindableEClass, YSelectionBindable.class, "YSelectionBindable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYSelectionBindable_SelectionBindingEndpoint(), this.getYEmbeddableSelectionEndpoint(), this.getYEmbeddableSelectionEndpoint_Element(), "selectionBindingEndpoint", null, 0, 1, YSelectionBindable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(ySelectionBindableEClass, this.getYEmbeddableSelectionEndpoint(), "createSelectionEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yMultiSelectionBindableEClass, YMultiSelectionBindable.class, "YMultiSelectionBindable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYMultiSelectionBindable_MultiSelectionBindingEndpoint(), this.getYEmbeddableMultiSelectionEndpoint(), this.getYEmbeddableMultiSelectionEndpoint_Element(), "multiSelectionBindingEndpoint", null, 0, 1, YMultiSelectionBindable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yMultiSelectionBindableEClass, this.getYEmbeddableMultiSelectionEndpoint(), "createMultiSelectionEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yCollectionBindableEClass, YCollectionBindable.class, "YCollectionBindable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYCollectionBindable_CollectionBindingEndpoint(), this.getYEmbeddableCollectionEndpoint(), this.getYEmbeddableCollectionEndpoint_Element(), "collectionBindingEndpoint", null, 0, 1, YCollectionBindable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yCollectionBindableEClass, this.getYEmbeddableCollectionEndpoint(), "createCollectionEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yContextValueBindingEndpointEClass, YContextValueBindingEndpoint.class, "YContextValueBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYContextValueBindingEndpoint_UrlString(), ecorePackage.getEString(), "urlString", null, 1, 1, YContextValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yBeanSlotValueBindingEndpointEClass, YBeanSlotValueBindingEndpoint.class, "YBeanSlotValueBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYBeanSlotValueBindingEndpoint_AttributePath(), ecorePackage.getEString(), "attributePath", null, 1, 1, YBeanSlotValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYBeanSlotValueBindingEndpoint_BeanSlot(), this.getYBeanSlot(), null, "beanSlot", null, 1, 1, YBeanSlotValueBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yBeanSlotListBindingEndpointEClass, YBeanSlotListBindingEndpoint.class, "YBeanSlotListBindingEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYBeanSlotListBindingEndpoint_AttributePath(), ecorePackage.getEString(), "attributePath", null, 1, 1, YBeanSlotListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYBeanSlotListBindingEndpoint_BeanSlot(), this.getYBeanSlot(), null, "beanSlot", null, 1, 1, YBeanSlotListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYBeanSlotListBindingEndpoint_CollectionType(), g1, "collectionType", null, 0, 1, YBeanSlotListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanSlotListBindingEndpoint_CollectionTypeQualifiedName(), ecorePackage.getEString(), "collectionTypeQualifiedName", null, 0, 1, YBeanSlotListBindingEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEmbeddableBindingEndpointEClass, YEmbeddableBindingEndpoint.class, "YEmbeddableBindingEndpoint", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		addEOperation(yEmbeddableBindingEndpointEClass, this.getYBindable(), "getElement", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yEmbeddableValueEndpointEClass, YEmbeddableValueEndpoint.class, "YEmbeddableValueEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYEmbeddableValueEndpoint_Element(), this.getYValueBindable(), this.getYValueBindable_ValueBindingEndpoint(), "element", null, 1, 1, YEmbeddableValueEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEmbeddableSelectionEndpointEClass, YEmbeddableSelectionEndpoint.class, "YEmbeddableSelectionEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYEmbeddableSelectionEndpoint_Element(), this.getYSelectionBindable(), this.getYSelectionBindable_SelectionBindingEndpoint(), "element", null, 1, 1, YEmbeddableSelectionEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEmbeddableSelectionEndpoint_AttributePath(), ecorePackage.getEString(), "attributePath", null, 0, 1, YEmbeddableSelectionEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEmbeddableMultiSelectionEndpointEClass, YEmbeddableMultiSelectionEndpoint.class, "YEmbeddableMultiSelectionEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYEmbeddableMultiSelectionEndpoint_Element(), this.getYMultiSelectionBindable(), this.getYMultiSelectionBindable_MultiSelectionBindingEndpoint(), "element", null, 1, 1, YEmbeddableMultiSelectionEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEmbeddableCollectionEndpointEClass, YEmbeddableCollectionEndpoint.class, "YEmbeddableCollectionEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYEmbeddableCollectionEndpoint_Element(), this.getYCollectionBindable(), this.getYCollectionBindable_CollectionBindingEndpoint(), "element", null, 1, 1, YEmbeddableCollectionEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yActivatedEndpointEClass, YActivatedEndpoint.class, "YActivatedEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYActivatedEndpoint_Element(), this.getYActivateable(), null, "element", null, 1, 1, YActivatedEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yDtWrapperEClass, YDtWrapper.class, "YDtWrapper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yCommandEClass, YCommand.class, "YCommand", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		addEOperation(yCommandEClass, this.getYView(), "getView", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yCommandSetEClass, YCommandSet.class, "YCommandSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYCommandSet_Commands(), this.getYCommand(), null, "commands", null, 0, -1, YCommandSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYCommandSet_TransientCommands(), this.getYCommand(), null, "transientCommands", null, 0, -1, YCommandSet.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yCommandSetEClass, this.getYView(), "getView", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yCommandSetEClass, null, "addCommand", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYCommand(), "command", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yCommandSetEClass, null, "removeCommand", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYCommand(), "command", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yOpenDialogCommandEClass, YOpenDialogCommand.class, "YOpenDialogCommand", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYOpenDialogCommand_Dialog(), this.getYDialog(), null, "dialog", null, 0, 1, YOpenDialogCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOpenDialogCommand_Trigger(), ecorePackage.getEJavaObject(), "trigger", null, 0, 1, YOpenDialogCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yOpenDialogCommandEClass, this.getYView(), "getView", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(yOpenDialogCommandEClass, theBindingPackage.getYECViewModelValueBindingEndpoint(), "createTriggerDialogEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yExposedActionEClass, YExposedAction.class, "YExposedAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYExposedAction_Icon(), ecorePackage.getEString(), "icon", null, 0, 1, YExposedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYExposedAction_Label(), ecorePackage.getEString(), "label", null, 0, 1, YExposedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYExposedAction_LabelI18nKey(), ecorePackage.getEString(), "labelI18nKey", null, 0, 1, YExposedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYExposedAction_ExternalClickTime(), ecorePackage.getELong(), "externalClickTime", null, 0, 1, YExposedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYExposedAction_InternalClickTime(), ecorePackage.getELong(), "internalClickTime", null, 0, 1, YExposedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYExposedAction_ExecutedNotificationTime(), ecorePackage.getELong(), "executedNotificationTime", null, 0, 1, YExposedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYExposedAction_CanceledNotificationTime(), ecorePackage.getELong(), "canceledNotificationTime", null, 0, 1, YExposedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYExposedAction_CheckDirty(), ecorePackage.getEBoolean(), "checkDirty", null, 0, 1, YExposedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYExposedAction_ExternalCommandId(), ecorePackage.getEString(), "externalCommandId", null, 0, 1, YExposedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yExposedActionEClass, this.getYView(), "getView", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(ySendEventCommandEClass, YSendEventCommand.class, "YSendEventCommand", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYSendEventCommand_EventTopic(), ecorePackage.getEString(), "eventTopic", null, 0, 1, YSendEventCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSendEventCommand_Message(), ecorePackage.getEJavaObject(), "message", null, 0, 1, YSendEventCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSendEventCommand_Trigger(), ecorePackage.getEJavaObject(), "trigger", null, 0, 1, YSendEventCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSendEventCommand_AutoTrigger(), ecorePackage.getEBoolean(), "autoTrigger", "true", 0, 1, YSendEventCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(ySendEventCommandEClass, this.getYView(), "getView", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(ySendEventCommandEClass, theBindingPackage.getYECViewModelValueBindingEndpoint(), "createTriggerEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(ySendEventCommandEClass, theBindingPackage.getYECViewModelValueBindingEndpoint(), "createMessageEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(ySendEventCommandEClass, theBindingPackage.getYECViewModelValueBindingEndpoint(), "createAutoTriggerEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(ySendEventCommandEClass, theBindingPackage.getYECViewModelValueBindingEndpoint(), "createEventTopicEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yKeyStrokeDefinitionEClass, YKeyStrokeDefinition.class, "YKeyStrokeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYKeyStrokeDefinition_KeyCode(), this.getYKeyCode(), "keyCode", null, 0, 1, YKeyStrokeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYKeyStrokeDefinition_ModifierKeys(), this.getYModifierKey(), "modifierKeys", null, 0, -1, YKeyStrokeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yKeyStrokeDefinitionEClass, this.getYView(), "getView", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yConverterEClass, YConverter.class, "YConverter", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yDelegateConverterEClass, YDelegateConverter.class, "YDelegateConverter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYDelegateConverter_ConverterId(), ecorePackage.getEString(), "converterId", null, 1, 1, YDelegateConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yMementoEClass, YMemento.class, "YMemento", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yAuthorizationableEClass, YAuthorizationable.class, "YAuthorizationable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYAuthorizationable_AuthorizationGroup(), ecorePackage.getEString(), "authorizationGroup", null, 0, 1, YAuthorizationable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYAuthorizationable_AuthorizationId(), ecorePackage.getEString(), "authorizationId", null, 0, 1, YAuthorizationable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yTaggableEClass, YTaggable.class, "YTaggable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYTaggable_Tags(), ecorePackage.getEString(), "tags", null, 0, -1, YTaggable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(yDeviceTypeEEnum, YDeviceType.class, "YDeviceType");
+		addEEnumLiteral(yDeviceTypeEEnum, YDeviceType.IDE);
+		addEEnumLiteral(yDeviceTypeEEnum, YDeviceType.MOBILE);
+
+		initEEnum(yAlignmentEEnum, YAlignment.class, "YAlignment");
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.BOTTOM_LEFT);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.BOTTOM_CENTER);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.BOTTOM_RIGHT);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.BOTTOM_FILL);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.MIDDLE_LEFT);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.MIDDLE_CENTER);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.MIDDLE_RIGHT);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.MIDDLE_FILL);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.TOP_LEFT);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.TOP_CENTER);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.TOP_RIGHT);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.TOP_FILL);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.FILL_FILL);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.FILL_LEFT);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.FILL_CENTER);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.FILL_RIGHT);
+		addEEnumLiteral(yAlignmentEEnum, YAlignment.UNDEFINED);
+
+		initEEnum(yFlatAlignmentEEnum, YFlatAlignment.class, "YFlatAlignment");
+		addEEnumLiteral(yFlatAlignmentEEnum, YFlatAlignment.LEFT);
+		addEEnumLiteral(yFlatAlignmentEEnum, YFlatAlignment.CENTER);
+		addEEnumLiteral(yFlatAlignmentEEnum, YFlatAlignment.RIGHT);
+
+		initEEnum(yUnitEEnum, YUnit.class, "YUnit");
+		addEEnumLiteral(yUnitEEnum, YUnit.PIXEL);
+		addEEnumLiteral(yUnitEEnum, YUnit.EM);
+
+		initEEnum(yKeyCodeEEnum, YKeyCode.class, "YKeyCode");
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.ENTER);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.ESCAPE);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.PAGE_UP);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.PAGE_DOWN);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.TAB);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.ARROW_LEFT);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.ARROW_UP);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.ARROW_RIGHT);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.ARROW_DOWN);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.BACKSPACE);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.DELETE);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.INSERT);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.END);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.HOME);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F1);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F2);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F3);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F4);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F5);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F6);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F7);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F8);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F9);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F10);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F11);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F12);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.A);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.B);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.C);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.D);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.E);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.F);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.G);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.H);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.I);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.J);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.K);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.L);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.M);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.N);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.O);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.P);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.Q);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.R);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.S);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.T);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.U);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.V);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.W);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.X);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.Y);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.Z);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM0);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM1);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM2);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM3);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM4);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM5);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM6);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM7);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM8);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.NUM9);
+		addEEnumLiteral(yKeyCodeEEnum, YKeyCode.SPACEBAR);
+
+		initEEnum(yModifierKeyEEnum, YModifierKey.class, "YModifierKey");
+		addEEnumLiteral(yModifierKeyEEnum, YModifierKey.SHIFT);
+		addEEnumLiteral(yModifierKeyEEnum, YModifierKey.CTRL);
+		addEEnumLiteral(yModifierKeyEEnum, YModifierKey.ALT);
+		addEEnumLiteral(yModifierKeyEEnum, YModifierKey.META);
+
+		initEEnum(yOrientationEEnum, YOrientation.class, "YOrientation");
+		addEEnumLiteral(yOrientationEEnum, YOrientation.HORIZONTAL);
+		addEEnumLiteral(yOrientationEEnum, YOrientation.VERTICAL);
+
+		initEEnum(yCompareEEnum, YCompare.class, "YCompare");
+		addEEnumLiteral(yCompareEEnum, YCompare.EQUAL);
+		addEEnumLiteral(yCompareEEnum, YCompare.GREATER_THAN);
+		addEEnumLiteral(yCompareEEnum, YCompare.GREATER_EQUAL);
+		addEEnumLiteral(yCompareEEnum, YCompare.LOWER_THAN);
+		addEEnumLiteral(yCompareEEnum, YCompare.LOWER_EQUAL);
+		addEEnumLiteral(yCompareEEnum, YCompare.NOT_EQUAL);
+
+		// Initialize data types
+		initEDataType(yuriEDataType, URI.class, "YURI", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+		initEDataType(yValueChangeListenerEDataType, YValueChangeListener.class, "YValueChangeListener", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //CoreModelPackageImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YActionImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YActionImpl.java
new file mode 100644
index 0000000..45c41bf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YActionImpl.java
@@ -0,0 +1,281 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YAction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl#isInitialEnabled <em>Initial Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl#isEnabled <em>Enabled</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YActionImpl extends YEmbeddableImpl implements YAction {
+	/**
+	 * The default value of the '{@link #isInitialEnabled() <em>Initial Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIAL_ENABLED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isInitialEnabled() <em>Initial Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initialEnabled = INITIAL_ENABLED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ENABLED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean enabled = ENABLED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YActionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YACTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInitialEnabled() {
+		return initialEnabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitialEnabled(boolean newInitialEnabled) {
+		boolean oldInitialEnabled = initialEnabled;
+		initialEnabled = newInitialEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YACTION__INITIAL_ENABLED, oldInitialEnabled, initialEnabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEnabled(boolean newEnabled) {
+		boolean oldEnabled = enabled;
+		enabled = newEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YACTION__ENABLED, oldEnabled, enabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YACTION__INITIAL_ENABLED:
+				return isInitialEnabled();
+			case CoreModelPackage.YACTION__ENABLED:
+				return isEnabled();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YACTION__INITIAL_ENABLED:
+				setInitialEnabled((Boolean)newValue);
+				return;
+			case CoreModelPackage.YACTION__ENABLED:
+				setEnabled((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YACTION__INITIAL_ENABLED:
+				setInitialEnabled(INITIAL_ENABLED_EDEFAULT);
+				return;
+			case CoreModelPackage.YACTION__ENABLED:
+				setEnabled(ENABLED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YACTION__INITIAL_ENABLED:
+				return initialEnabled != INITIAL_ENABLED_EDEFAULT;
+			case CoreModelPackage.YACTION__ENABLED:
+				return enabled != ENABLED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YEnable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YACTION__INITIAL_ENABLED: return CoreModelPackage.YENABLE__INITIAL_ENABLED;
+				case CoreModelPackage.YACTION__ENABLED: return CoreModelPackage.YENABLE__ENABLED;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YEnable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YENABLE__INITIAL_ENABLED: return CoreModelPackage.YACTION__INITIAL_ENABLED;
+				case CoreModelPackage.YENABLE__ENABLED: return CoreModelPackage.YACTION__ENABLED;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (initialEnabled: ");
+		result.append(initialEnabled);
+		result.append(", enabled: ");
+		result.append(enabled);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public void setLabel(String label) {
+		// nothing to do
+		
+	}
+
+	@Override
+	public void setLabelI18nKey(String i18nKey) {
+		// nothing to do
+		
+	}
+	
+	@Override
+	public String getLabel() {
+		return "";
+	}
+
+	@Override
+	public String getLabelI18nKey() {
+		return "";
+	}
+
+} //YActionImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YActivatedEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YActivatedEndpointImpl.java
new file mode 100644
index 0000000..bf894fe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YActivatedEndpointImpl.java
@@ -0,0 +1,188 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingEndpointImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivateable;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YActivated Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YActivatedEndpointImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YActivatedEndpointImpl extends YValueBindingEndpointImpl implements YActivatedEndpoint {
+	/**
+	 * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected YActivateable element;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YActivatedEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YACTIVATED_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YActivateable getElement() {
+		if (element != null && element.eIsProxy()) {
+			InternalEObject oldElement = (InternalEObject)element;
+			element = (YActivateable)eResolveProxy(oldElement);
+			if (element != oldElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YACTIVATED_ENDPOINT__ELEMENT, oldElement, element));
+			}
+		}
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YActivateable basicGetElement() {
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setElement(YActivateable newElement) {
+		YActivateable oldElement = element;
+		element = newElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YACTIVATED_ENDPOINT__ELEMENT, oldElement, element));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YACTIVATED_ENDPOINT__ELEMENT:
+				if (resolve) return getElement();
+				return basicGetElement();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YACTIVATED_ENDPOINT__ELEMENT:
+				setElement((YActivateable)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YACTIVATED_ENDPOINT__ELEMENT:
+				setElement((YActivateable)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YACTIVATED_ENDPOINT__ELEMENT:
+				return element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public boolean isBindsElement(YElement element) {
+		return element == getElement();
+	}
+	
+	@Override
+	public String getBindingIdString() {
+
+		if (!(getElement() instanceof YElement)) {
+			throw new IllegalArgumentException(
+					"not a valid element to create a binding id string");
+		}
+
+		YElement yElement = (YElement) getElement();
+		return BindingIdUtil.getActivatedId(yElement.getId());
+	}
+
+} //YActivatedEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YBeanSlotImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YBeanSlotImpl.java
new file mode 100644
index 0000000..4905de0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YBeanSlotImpl.java
@@ -0,0 +1,459 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YBean Slot</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl#getValueType <em>Value Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl#getValueTypeQualifiedName <em>Value Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl#getEventTopic <em>Event Topic</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotImpl#isRedirectEvents <em>Redirect Events</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBeanSlotImpl extends MinimalEObjectImpl.Container implements
+		YBeanSlot {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValueType() <em>Value Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValueType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> valueType;
+
+	/**
+	 * The default value of the '{@link #getValueTypeQualifiedName() <em>Value Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValueTypeQualifiedName() <em>Value Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String valueTypeQualifiedName = VALUE_TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getEventTopic() <em>Event Topic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEventTopic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EVENT_TOPIC_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEventTopic() <em>Event Topic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEventTopic()
+	 * @generated
+	 * @ordered
+	 */
+	protected String eventTopic = EVENT_TOPIC_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isRedirectEvents() <em>Redirect Events</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRedirectEvents()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean REDIRECT_EVENTS_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRedirectEvents() <em>Redirect Events</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRedirectEvents()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean redirectEvents = REDIRECT_EVENTS_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanSlotImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YBEAN_SLOT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Class<?> getValueType() {
+		return valueType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValueType(Class<?> newValueType) {
+		Class<?> oldValueType = valueType;
+		valueType = newValueType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT__VALUE_TYPE, oldValueType, valueType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getValueTypeQualifiedName() {
+		return valueTypeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValueTypeQualifiedName(String newValueTypeQualifiedName) {
+		String oldValueTypeQualifiedName = valueTypeQualifiedName;
+		valueTypeQualifiedName = newValueTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME, oldValueTypeQualifiedName, valueTypeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getEventTopic() {
+		return eventTopic;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEventTopic(String newEventTopic) {
+		String oldEventTopic = eventTopic;
+		eventTopic = newEventTopic;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT__EVENT_TOPIC, oldEventTopic, eventTopic));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRedirectEvents() {
+		return redirectEvents;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRedirectEvents(boolean newRedirectEvents) {
+		boolean oldRedirectEvents = redirectEvents;
+		redirectEvents = newRedirectEvents;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT__REDIRECT_EVENTS, oldRedirectEvents, redirectEvents));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YBEAN_SLOT__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT__TAGS:
+				return getTags();
+			case CoreModelPackage.YBEAN_SLOT__NAME:
+				return getName();
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE:
+				return getValueType();
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME:
+				return getValueTypeQualifiedName();
+			case CoreModelPackage.YBEAN_SLOT__EVENT_TOPIC:
+				return getEventTopic();
+			case CoreModelPackage.YBEAN_SLOT__REDIRECT_EVENTS:
+				return isRedirectEvents();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YBEAN_SLOT__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE:
+				setValueType((Class<?>)newValue);
+				return;
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME:
+				setValueTypeQualifiedName((String)newValue);
+				return;
+			case CoreModelPackage.YBEAN_SLOT__EVENT_TOPIC:
+				setEventTopic((String)newValue);
+				return;
+			case CoreModelPackage.YBEAN_SLOT__REDIRECT_EVENTS:
+				setRedirectEvents((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YBEAN_SLOT__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE:
+				setValueType((Class<?>)null);
+				return;
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME:
+				setValueTypeQualifiedName(VALUE_TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YBEAN_SLOT__EVENT_TOPIC:
+				setEventTopic(EVENT_TOPIC_EDEFAULT);
+				return;
+			case CoreModelPackage.YBEAN_SLOT__REDIRECT_EVENTS:
+				setRedirectEvents(REDIRECT_EVENTS_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YBEAN_SLOT__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE:
+				return valueType != null;
+			case CoreModelPackage.YBEAN_SLOT__VALUE_TYPE_QUALIFIED_NAME:
+				return VALUE_TYPE_QUALIFIED_NAME_EDEFAULT == null ? valueTypeQualifiedName != null : !VALUE_TYPE_QUALIFIED_NAME_EDEFAULT.equals(valueTypeQualifiedName);
+			case CoreModelPackage.YBEAN_SLOT__EVENT_TOPIC:
+				return EVENT_TOPIC_EDEFAULT == null ? eventTopic != null : !EVENT_TOPIC_EDEFAULT.equals(eventTopic);
+			case CoreModelPackage.YBEAN_SLOT__REDIRECT_EVENTS:
+				return redirectEvents != REDIRECT_EVENTS_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YTaggable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YBEAN_SLOT__TAGS: return CoreModelPackage.YTAGGABLE__TAGS;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YTaggable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YTAGGABLE__TAGS: return CoreModelPackage.YBEAN_SLOT__TAGS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", valueType: ");
+		result.append(valueType);
+		result.append(", valueTypeQualifiedName: ");
+		result.append(valueTypeQualifiedName);
+		result.append(", eventTopic: ");
+		result.append(eventTopic);
+		result.append(", redirectEvents: ");
+		result.append(redirectEvents);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public YBeanSlotValueBindingEndpoint createBindingEndpoint(String path) {
+		YBeanSlotValueBindingEndpoint yEndpoint = CoreModelFactory.eINSTANCE
+				.createYBeanSlotValueBindingEndpoint();
+		yEndpoint.setBeanSlot(this);
+		yEndpoint.setAttributePath(path);
+		return yEndpoint;
+	}
+
+	@Override
+	public YBeanSlotListBindingEndpoint createListBindingEndpoint(String path,
+			Class<?> collectionType) {
+		YBeanSlotListBindingEndpoint yEndpoint = CoreModelFactory.eINSTANCE
+				.createYBeanSlotListBindingEndpoint();
+		yEndpoint.setBeanSlot(this);
+		yEndpoint.setCollectionType(collectionType);
+		yEndpoint.setAttributePath(path);
+		return yEndpoint;
+	}
+
+} // YBeanSlotImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YBeanSlotListBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YBeanSlotListBindingEndpointImpl.java
new file mode 100644
index 0000000..378642c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YBeanSlotListBindingEndpointImpl.java
@@ -0,0 +1,337 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingEndpointImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YBean Slot List Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotListBindingEndpointImpl#getAttributePath <em>Attribute Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotListBindingEndpointImpl#getBeanSlot <em>Bean Slot</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotListBindingEndpointImpl#getCollectionType <em>Collection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotListBindingEndpointImpl#getCollectionTypeQualifiedName <em>Collection Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBeanSlotListBindingEndpointImpl extends YListBindingEndpointImpl implements YBeanSlotListBindingEndpoint {
+	/**
+	 * The default value of the '{@link #getAttributePath() <em>Attribute Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAttributePath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ATTRIBUTE_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAttributePath() <em>Attribute Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAttributePath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String attributePath = ATTRIBUTE_PATH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBeanSlot() <em>Bean Slot</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBeanSlot()
+	 * @generated
+	 * @ordered
+	 */
+	protected YBeanSlot beanSlot;
+
+	/**
+	 * The cached value of the '{@link #getCollectionType() <em>Collection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> collectionType;
+
+	/**
+	 * The default value of the '{@link #getCollectionTypeQualifiedName() <em>Collection Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String COLLECTION_TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCollectionTypeQualifiedName() <em>Collection Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String collectionTypeQualifiedName = COLLECTION_TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanSlotListBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YBEAN_SLOT_LIST_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAttributePath() {
+		return attributePath;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAttributePath(String newAttributePath) {
+		String oldAttributePath = attributePath;
+		attributePath = newAttributePath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH, oldAttributePath, attributePath));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanSlot getBeanSlot() {
+		if (beanSlot != null && beanSlot.eIsProxy()) {
+			InternalEObject oldBeanSlot = (InternalEObject)beanSlot;
+			beanSlot = (YBeanSlot)eResolveProxy(oldBeanSlot);
+			if (beanSlot != oldBeanSlot) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT, oldBeanSlot, beanSlot));
+			}
+		}
+		return beanSlot;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanSlot basicGetBeanSlot() {
+		return beanSlot;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBeanSlot(YBeanSlot newBeanSlot) {
+		YBeanSlot oldBeanSlot = beanSlot;
+		beanSlot = newBeanSlot;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT, oldBeanSlot, beanSlot));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Class<?> getCollectionType() {
+		return collectionType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCollectionType(Class<?> newCollectionType) {
+		Class<?> oldCollectionType = collectionType;
+		collectionType = newCollectionType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE, oldCollectionType, collectionType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCollectionTypeQualifiedName() {
+		return collectionTypeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCollectionTypeQualifiedName(String newCollectionTypeQualifiedName) {
+		String oldCollectionTypeQualifiedName = collectionTypeQualifiedName;
+		collectionTypeQualifiedName = newCollectionTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME, oldCollectionTypeQualifiedName, collectionTypeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+				return getAttributePath();
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT:
+				if (resolve) return getBeanSlot();
+				return basicGetBeanSlot();
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE:
+				return getCollectionType();
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME:
+				return getCollectionTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+				setAttributePath((String)newValue);
+				return;
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT:
+				setBeanSlot((YBeanSlot)newValue);
+				return;
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE:
+				setCollectionType((Class<?>)newValue);
+				return;
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME:
+				setCollectionTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+				setAttributePath(ATTRIBUTE_PATH_EDEFAULT);
+				return;
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT:
+				setBeanSlot((YBeanSlot)null);
+				return;
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE:
+				setCollectionType((Class<?>)null);
+				return;
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME:
+				setCollectionTypeQualifiedName(COLLECTION_TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+				return ATTRIBUTE_PATH_EDEFAULT == null ? attributePath != null : !ATTRIBUTE_PATH_EDEFAULT.equals(attributePath);
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__BEAN_SLOT:
+				return beanSlot != null;
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE:
+				return collectionType != null;
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT__COLLECTION_TYPE_QUALIFIED_NAME:
+				return COLLECTION_TYPE_QUALIFIED_NAME_EDEFAULT == null ? collectionTypeQualifiedName != null : !COLLECTION_TYPE_QUALIFIED_NAME_EDEFAULT.equals(collectionTypeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (attributePath: ");
+		result.append(attributePath);
+		result.append(", collectionType: ");
+		result.append(collectionType);
+		result.append(", collectionTypeQualifiedName: ");
+		result.append(collectionTypeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+	
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return element == getBeanSlot();
+	}
+
+} //YBeanSlotListBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YBeanSlotValueBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YBeanSlotValueBindingEndpointImpl.java
new file mode 100644
index 0000000..90460c4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YBeanSlotValueBindingEndpointImpl.java
@@ -0,0 +1,233 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingEndpointImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YBean Slot Value Binding Endpoint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotValueBindingEndpointImpl#getAttributePath <em>Attribute Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YBeanSlotValueBindingEndpointImpl#getBeanSlot <em>Bean Slot</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBeanSlotValueBindingEndpointImpl extends
+		YValueBindingEndpointImpl implements YBeanSlotValueBindingEndpoint {
+	/**
+	 * The default value of the '{@link #getAttributePath() <em>Attribute Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getAttributePath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ATTRIBUTE_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAttributePath() <em>Attribute Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getAttributePath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String attributePath = ATTRIBUTE_PATH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBeanSlot() <em>Bean Slot</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getBeanSlot()
+	 * @generated
+	 * @ordered
+	 */
+	protected YBeanSlot beanSlot;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanSlotValueBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YBEAN_SLOT_VALUE_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAttributePath() {
+		return attributePath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAttributePath(String newAttributePath) {
+		String oldAttributePath = attributePath;
+		attributePath = newAttributePath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH, oldAttributePath, attributePath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanSlot getBeanSlot() {
+		if (beanSlot != null && beanSlot.eIsProxy()) {
+			InternalEObject oldBeanSlot = (InternalEObject)beanSlot;
+			beanSlot = (YBeanSlot)eResolveProxy(oldBeanSlot);
+			if (beanSlot != oldBeanSlot) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT, oldBeanSlot, beanSlot));
+			}
+		}
+		return beanSlot;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanSlot basicGetBeanSlot() {
+		return beanSlot;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBeanSlot(YBeanSlot newBeanSlot) {
+		YBeanSlot oldBeanSlot = beanSlot;
+		beanSlot = newBeanSlot;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT, oldBeanSlot, beanSlot));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+				return getAttributePath();
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT:
+				if (resolve) return getBeanSlot();
+				return basicGetBeanSlot();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+				setAttributePath((String)newValue);
+				return;
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT:
+				setBeanSlot((YBeanSlot)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+				setAttributePath(ATTRIBUTE_PATH_EDEFAULT);
+				return;
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT:
+				setBeanSlot((YBeanSlot)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__ATTRIBUTE_PATH:
+				return ATTRIBUTE_PATH_EDEFAULT == null ? attributePath != null : !ATTRIBUTE_PATH_EDEFAULT.equals(attributePath);
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT__BEAN_SLOT:
+				return beanSlot != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (attributePath: ");
+		result.append(attributePath);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return element == getBeanSlot();
+	}
+
+	@Override
+	public String getBindingIdString() {
+		return BindingIdUtil.getBeanSlotId(getBeanSlot().getName(),
+				getAttributePath());
+	}
+
+} // YBeanSlotValueBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YCommandSetImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YCommandSetImpl.java
new file mode 100644
index 0000000..b89e7ad
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YCommandSetImpl.java
@@ -0,0 +1,417 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YCommand Set</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl#getCommands <em>Commands</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YCommandSetImpl#getTransientCommands <em>Transient Commands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YCommandSetImpl extends MinimalEObjectImpl.Container implements
+		YCommandSet {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The cached value of the '{@link #getCommands() <em>Commands</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCommands()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YCommand> commands;
+
+	/**
+	 * The cached value of the '{@link #getTransientCommands() <em>Transient Commands</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTransientCommands()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YCommand> transientCommands;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YCommandSetImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YCOMMAND_SET;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YCOMMAND_SET__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YCOMMAND_SET__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YCOMMAND_SET__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YCOMMAND_SET__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YCommand> getCommands() {
+		if (commands == null) {
+			commands = new EObjectContainmentEList.Resolving<YCommand>(YCommand.class, this, CoreModelPackage.YCOMMAND_SET__COMMANDS);
+		}
+		return commands;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YCommand> getTransientCommands() {
+		if (transientCommands == null) {
+			transientCommands = new EObjectResolvingEList<YCommand>(YCommand.class, this, CoreModelPackage.YCOMMAND_SET__TRANSIENT_COMMANDS);
+		}
+		return transientCommands;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YView getView() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addCommandGen(YCommand command) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	public void addCommand(YCommand command) {
+		getCommands().add(command);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeCommandGen(YCommand command) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	public void removeCommand(YCommand command) {
+		getCommands().remove(command);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YCOMMAND_SET__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YCOMMAND_SET__COMMANDS:
+				return ((InternalEList<?>)getCommands()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YCOMMAND_SET__TAGS:
+				return getTags();
+			case CoreModelPackage.YCOMMAND_SET__ID:
+				return getId();
+			case CoreModelPackage.YCOMMAND_SET__NAME:
+				return getName();
+			case CoreModelPackage.YCOMMAND_SET__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YCOMMAND_SET__COMMANDS:
+				return getCommands();
+			case CoreModelPackage.YCOMMAND_SET__TRANSIENT_COMMANDS:
+				return getTransientCommands();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YCOMMAND_SET__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YCOMMAND_SET__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YCOMMAND_SET__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YCOMMAND_SET__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YCOMMAND_SET__COMMANDS:
+				getCommands().clear();
+				getCommands().addAll((Collection<? extends YCommand>)newValue);
+				return;
+			case CoreModelPackage.YCOMMAND_SET__TRANSIENT_COMMANDS:
+				getTransientCommands().clear();
+				getTransientCommands().addAll((Collection<? extends YCommand>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YCOMMAND_SET__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YCOMMAND_SET__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YCOMMAND_SET__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YCOMMAND_SET__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YCOMMAND_SET__COMMANDS:
+				getCommands().clear();
+				return;
+			case CoreModelPackage.YCOMMAND_SET__TRANSIENT_COMMANDS:
+				getTransientCommands().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YCOMMAND_SET__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YCOMMAND_SET__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YCOMMAND_SET__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YCOMMAND_SET__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YCOMMAND_SET__COMMANDS:
+				return commands != null && !commands.isEmpty();
+			case CoreModelPackage.YCOMMAND_SET__TRANSIENT_COMMANDS:
+				return transientCommands != null && !transientCommands.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} // YCommandSetImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YContextValueBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YContextValueBindingEndpointImpl.java
new file mode 100644
index 0000000..1644248
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YContextValueBindingEndpointImpl.java
@@ -0,0 +1,186 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingEndpointImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YContext Value Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YContextValueBindingEndpointImpl#getUrlString <em>Url String</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YContextValueBindingEndpointImpl extends YValueBindingEndpointImpl implements YContextValueBindingEndpoint {
+	/**
+	 * The default value of the '{@link #getUrlString() <em>Url String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUrlString()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String URL_STRING_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getUrlString() <em>Url String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUrlString()
+	 * @generated
+	 * @ordered
+	 */
+	protected String urlString = URL_STRING_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YContextValueBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YCONTEXT_VALUE_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getUrlString() {
+		return urlString;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUrlString(String newUrlString) {
+		String oldUrlString = urlString;
+		urlString = newUrlString;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING, oldUrlString, urlString));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING:
+				return getUrlString();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING:
+				setUrlString((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING:
+				setUrlString(URL_STRING_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YCONTEXT_VALUE_BINDING_ENDPOINT__URL_STRING:
+				return URL_STRING_EDEFAULT == null ? urlString != null : !URL_STRING_EDEFAULT.equals(urlString);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (urlString: ");
+		result.append(urlString);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public boolean isBindsElement(YElement element) {
+		return false;
+	}
+
+	@Override
+	public String getBindingIdString() {
+		return getUrlString();
+	}
+
+} //YContextValueBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDelegateConverterImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDelegateConverterImpl.java
new file mode 100644
index 0000000..da5fd77
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDelegateConverterImpl.java
@@ -0,0 +1,379 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YDelegate Converter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDelegateConverterImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDelegateConverterImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDelegateConverterImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDelegateConverterImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDelegateConverterImpl#getConverterId <em>Converter Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YDelegateConverterImpl extends MinimalEObjectImpl.Container implements YDelegateConverter {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getConverterId() <em>Converter Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConverterId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CONVERTER_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getConverterId() <em>Converter Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConverterId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String converterId = CONVERTER_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDelegateConverterImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YDELEGATE_CONVERTER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDELEGATE_CONVERTER__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDELEGATE_CONVERTER__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YDELEGATE_CONVERTER__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YDELEGATE_CONVERTER__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getConverterId() {
+		return converterId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConverterId(String newConverterId) {
+		String oldConverterId = converterId;
+		converterId = newConverterId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDELEGATE_CONVERTER__CONVERTER_ID, oldConverterId, converterId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YDELEGATE_CONVERTER__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YDELEGATE_CONVERTER__TAGS:
+				return getTags();
+			case CoreModelPackage.YDELEGATE_CONVERTER__ID:
+				return getId();
+			case CoreModelPackage.YDELEGATE_CONVERTER__NAME:
+				return getName();
+			case CoreModelPackage.YDELEGATE_CONVERTER__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YDELEGATE_CONVERTER__CONVERTER_ID:
+				return getConverterId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YDELEGATE_CONVERTER__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YDELEGATE_CONVERTER__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YDELEGATE_CONVERTER__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YDELEGATE_CONVERTER__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YDELEGATE_CONVERTER__CONVERTER_ID:
+				setConverterId((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YDELEGATE_CONVERTER__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YDELEGATE_CONVERTER__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YDELEGATE_CONVERTER__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YDELEGATE_CONVERTER__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YDELEGATE_CONVERTER__CONVERTER_ID:
+				setConverterId(CONVERTER_ID_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YDELEGATE_CONVERTER__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YDELEGATE_CONVERTER__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YDELEGATE_CONVERTER__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YDELEGATE_CONVERTER__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YDELEGATE_CONVERTER__CONVERTER_ID:
+				return CONVERTER_ID_EDEFAULT == null ? converterId != null : !CONVERTER_ID_EDEFAULT.equals(converterId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", converterId: ");
+		result.append(converterId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YDelegateConverterImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDetailBeanSlotImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDetailBeanSlotImpl.java
new file mode 100644
index 0000000..1695432
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDetailBeanSlotImpl.java
@@ -0,0 +1,235 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YDetail Bean Slot</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDetailBeanSlotImpl#getMasterBeanSlot <em>Master Bean Slot</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDetailBeanSlotImpl#getPropertyPath <em>Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YDetailBeanSlotImpl extends YBeanSlotImpl implements YDetailBeanSlot {
+	/**
+	 * The cached value of the '{@link #getMasterBeanSlot() <em>Master Bean Slot</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMasterBeanSlot()
+	 * @generated
+	 * @ordered
+	 */
+	protected YBeanSlot masterBeanSlot;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDetailBeanSlotImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YDETAIL_BEAN_SLOT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanSlot getMasterBeanSlot() {
+		if (masterBeanSlot != null && masterBeanSlot.eIsProxy()) {
+			InternalEObject oldMasterBeanSlot = (InternalEObject)masterBeanSlot;
+			masterBeanSlot = (YBeanSlot)eResolveProxy(oldMasterBeanSlot);
+			if (masterBeanSlot != oldMasterBeanSlot) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT, oldMasterBeanSlot, masterBeanSlot));
+			}
+		}
+		return masterBeanSlot;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanSlot basicGetMasterBeanSlot() {
+		return masterBeanSlot;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMasterBeanSlot(YBeanSlot newMasterBeanSlot) {
+		YBeanSlot oldMasterBeanSlot = masterBeanSlot;
+		masterBeanSlot = newMasterBeanSlot;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT, oldMasterBeanSlot, masterBeanSlot));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDETAIL_BEAN_SLOT__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT:
+				if (resolve) return getMasterBeanSlot();
+				return basicGetMasterBeanSlot();
+			case CoreModelPackage.YDETAIL_BEAN_SLOT__PROPERTY_PATH:
+				return getPropertyPath();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT:
+				setMasterBeanSlot((YBeanSlot)newValue);
+				return;
+			case CoreModelPackage.YDETAIL_BEAN_SLOT__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT:
+				setMasterBeanSlot((YBeanSlot)null);
+				return;
+			case CoreModelPackage.YDETAIL_BEAN_SLOT__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YDETAIL_BEAN_SLOT__MASTER_BEAN_SLOT:
+				return masterBeanSlot != null;
+			case CoreModelPackage.YDETAIL_BEAN_SLOT__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (propertyPath: ");
+		result.append(propertyPath);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YDetailBeanSlotImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDialogImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDialogImpl.java
new file mode 100644
index 0000000..26886a8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDialogImpl.java
@@ -0,0 +1,1434 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YDialog</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getCssClass <em>Css Class</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getCssID <em>Css ID</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#isModal <em>Modal</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#isResizeable <em>Resizeable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#isDraggable <em>Draggable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#isClosable <em>Closable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDialogImpl#getDatadescription <em>Datadescription</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YDialogImpl extends MinimalEObjectImpl.Container implements
+		YDialog {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The default value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_CLASS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssClass = CSS_CLASS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCssID() <em>Css ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCssID()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCssID() <em>Css ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCssID()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssID = CSS_ID_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getContent() <em>Content</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable content;
+
+	/**
+	 * The default value of the '{@link #isModal() <em>Modal</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isModal()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MODAL_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isModal() <em>Modal</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isModal()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean modal = MODAL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isResizeable() <em>Resizeable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isResizeable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean RESIZEABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isResizeable() <em>Resizeable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isResizeable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean resizeable = RESIZEABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDraggable() <em>Draggable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDraggable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DRAGGABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDraggable() <em>Draggable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDraggable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean draggable = DRAGGABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isClosable() <em>Closable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClosable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CLOSABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isClosable() <em>Closable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClosable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean closable = CLOSABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object value = VALUE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YDialogImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YDIALOG;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getId() <em>Id</em>}' attribute
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newId
+	 *            the new cached value of the '{@link #getId() <em>Id</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getName() <em>Name</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newName
+	 *            the new cached value of the '{@link #getName() <em>Name</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTags() <em>Tags</em>}'
+	 *         attribute list
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YDIALOG__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getProperties()
+	 *         <em>Properties</em>}' map
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YDIALOG__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCssClass()
+	 *         <em>Css Class</em>}' attribute
+	 * @generated
+	 */
+	public String getCssClass() {
+		return cssClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCssClass
+	 *            the new cached value of the '{@link #getCssClass()
+	 *            <em>Css Class</em>}' attribute
+	 * @generated
+	 */
+	public void setCssClass(String newCssClass) {
+		String oldCssClass = cssClass;
+		cssClass = newCssClass;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__CSS_CLASS, oldCssClass, cssClass));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCssID() <em>Css ID</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getCssID() {
+		return cssID;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCssID
+	 *            the new cached value of the '{@link #getCssID()
+	 *            <em>Css ID</em>}' attribute
+	 * @generated
+	 */
+	public void setCssID(String newCssID) {
+		String oldCssID = cssID;
+		cssID = newCssID;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__CSS_ID, oldCssID, cssID));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getContent() <em>Content</em>}'
+	 *         containment reference
+	 * @generated
+	 */
+	public YEmbeddable getContent() {
+		if (content != null && content.eIsProxy()) {
+			InternalEObject oldContent = (InternalEObject)content;
+			content = (YEmbeddable)eResolveProxy(oldContent);
+			if (content != oldContent) {
+				InternalEObject newContent = (InternalEObject)content;
+				NotificationChain msgs = oldContent.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YDIALOG__CONTENT, null, null);
+				if (newContent.eInternalContainer() == null) {
+					msgs = newContent.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YDIALOG__CONTENT, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YDIALOG__CONTENT, oldContent, content));
+			}
+		}
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetContent() {
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newContent
+	 *            the new content
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetContent(YEmbeddable newContent,
+			NotificationChain msgs) {
+		YEmbeddable oldContent = content;
+		content = newContent;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__CONTENT, oldContent, newContent);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newContent
+	 *            the new cached value of the '{@link #getContent()
+	 *            <em>Content</em>}' containment reference
+	 * @generated
+	 */
+	public void setContent(YEmbeddable newContent) {
+		if (newContent != content) {
+			NotificationChain msgs = null;
+			if (content != null)
+				msgs = ((InternalEObject)content).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YDIALOG__CONTENT, null, msgs);
+			if (newContent != null)
+				msgs = ((InternalEObject)newContent).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YDIALOG__CONTENT, null, msgs);
+			msgs = basicSetContent(newContent, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__CONTENT, newContent, newContent));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isModal() <em>Modal</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isModal() {
+		return modal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newModal
+	 *            the new cached value of the '{@link #isModal() <em>Modal</em>}
+	 *            ' attribute
+	 * @generated
+	 */
+	public void setModal(boolean newModal) {
+		boolean oldModal = modal;
+		modal = newModal;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__MODAL, oldModal, modal));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isResizeable()
+	 *         <em>Resizeable</em>}' attribute
+	 * @generated
+	 */
+	public boolean isResizeable() {
+		return resizeable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newResizeable
+	 *            the new cached value of the '{@link #isResizeable()
+	 *            <em>Resizeable</em>}' attribute
+	 * @generated
+	 */
+	public void setResizeable(boolean newResizeable) {
+		boolean oldResizeable = resizeable;
+		resizeable = newResizeable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__RESIZEABLE, oldResizeable, resizeable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isDraggable()
+	 *         <em>Draggable</em>}' attribute
+	 * @generated
+	 */
+	public boolean isDraggable() {
+		return draggable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDraggable
+	 *            the new cached value of the '{@link #isDraggable()
+	 *            <em>Draggable</em>}' attribute
+	 * @generated
+	 */
+	public void setDraggable(boolean newDraggable) {
+		boolean oldDraggable = draggable;
+		draggable = newDraggable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__DRAGGABLE, oldDraggable, draggable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isClosable() <em>Closable</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isClosable() {
+		return closable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newClosable
+	 *            the new cached value of the '{@link #isClosable()
+	 *            <em>Closable</em>}' attribute
+	 * @generated
+	 */
+	public void setClosable(boolean newClosable) {
+		boolean oldClosable = closable;
+		closable = newClosable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__CLOSABLE, oldClosable, closable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Object getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(Object newValue) {
+		Object oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' containment reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				InternalEObject newDatadescription = (InternalEObject)datadescription;
+				NotificationChain msgs = oldDatadescription.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YDIALOG__DATADESCRIPTION, null, null);
+				if (newDatadescription.eInternalContainer() == null) {
+					msgs = newDatadescription.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YDIALOG__DATADESCRIPTION, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YDIALOG__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new datadescription
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetDatadescription(YDatadescription newDatadescription, NotificationChain msgs) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__DATADESCRIPTION, oldDatadescription, newDatadescription);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' containment reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		if (newDatadescription != datadescription) {
+			NotificationChain msgs = null;
+			if (datadescription != null)
+				msgs = ((InternalEObject)datadescription).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YDIALOG__DATADESCRIPTION, null, msgs);
+			if (newDatadescription != null)
+				msgs = ((InternalEObject)newDatadescription).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YDIALOG__DATADESCRIPTION, null, msgs);
+			msgs = basicSetDatadescription(newDatadescription, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDIALOG__DATADESCRIPTION, newDatadescription, newDatadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YDIALOG__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+			case CoreModelPackage.YDIALOG__CONTENT:
+				return basicSetContent(null, msgs);
+			case CoreModelPackage.YDIALOG__DATADESCRIPTION:
+				return basicSetDatadescription(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YDIALOG__TAGS:
+				return getTags();
+			case CoreModelPackage.YDIALOG__ID:
+				return getId();
+			case CoreModelPackage.YDIALOG__NAME:
+				return getName();
+			case CoreModelPackage.YDIALOG__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case CoreModelPackage.YDIALOG__CSS_CLASS:
+				return getCssClass();
+			case CoreModelPackage.YDIALOG__CSS_ID:
+				return getCssID();
+			case CoreModelPackage.YDIALOG__CONTENT:
+				if (resolve) return getContent();
+				return basicGetContent();
+			case CoreModelPackage.YDIALOG__MODAL:
+				return isModal();
+			case CoreModelPackage.YDIALOG__RESIZEABLE:
+				return isResizeable();
+			case CoreModelPackage.YDIALOG__DRAGGABLE:
+				return isDraggable();
+			case CoreModelPackage.YDIALOG__CLOSABLE:
+				return isClosable();
+			case CoreModelPackage.YDIALOG__VALUE:
+				return getValue();
+			case CoreModelPackage.YDIALOG__TYPE:
+				return getType();
+			case CoreModelPackage.YDIALOG__EMF_NS_URI:
+				return getEmfNsURI();
+			case CoreModelPackage.YDIALOG__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case CoreModelPackage.YDIALOG__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YDIALOG__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__CSS_CLASS:
+				setCssClass((String)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__CSS_ID:
+				setCssID((String)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__CONTENT:
+				setContent((YEmbeddable)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__MODAL:
+				setModal((Boolean)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__RESIZEABLE:
+				setResizeable((Boolean)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__DRAGGABLE:
+				setDraggable((Boolean)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__CLOSABLE:
+				setClosable((Boolean)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__VALUE:
+				setValue(newValue);
+				return;
+			case CoreModelPackage.YDIALOG__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case CoreModelPackage.YDIALOG__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YDIALOG__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YDIALOG__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case CoreModelPackage.YDIALOG__CSS_CLASS:
+				setCssClass(CSS_CLASS_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__CSS_ID:
+				setCssID(CSS_ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__CONTENT:
+				setContent((YEmbeddable)null);
+				return;
+			case CoreModelPackage.YDIALOG__MODAL:
+				setModal(MODAL_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__RESIZEABLE:
+				setResizeable(RESIZEABLE_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__DRAGGABLE:
+				setDraggable(DRAGGABLE_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__CLOSABLE:
+				setClosable(CLOSABLE_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__TYPE:
+				setType((Class<?>)null);
+				return;
+			case CoreModelPackage.YDIALOG__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YDIALOG__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YDIALOG__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YDIALOG__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YDIALOG__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YDIALOG__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case CoreModelPackage.YDIALOG__CSS_CLASS:
+				return CSS_CLASS_EDEFAULT == null ? cssClass != null : !CSS_CLASS_EDEFAULT.equals(cssClass);
+			case CoreModelPackage.YDIALOG__CSS_ID:
+				return CSS_ID_EDEFAULT == null ? cssID != null : !CSS_ID_EDEFAULT.equals(cssID);
+			case CoreModelPackage.YDIALOG__CONTENT:
+				return content != null;
+			case CoreModelPackage.YDIALOG__MODAL:
+				return modal != MODAL_EDEFAULT;
+			case CoreModelPackage.YDIALOG__RESIZEABLE:
+				return resizeable != RESIZEABLE_EDEFAULT;
+			case CoreModelPackage.YDIALOG__DRAGGABLE:
+				return draggable != DRAGGABLE_EDEFAULT;
+			case CoreModelPackage.YDIALOG__CLOSABLE:
+				return closable != CLOSABLE_EDEFAULT;
+			case CoreModelPackage.YDIALOG__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+			case CoreModelPackage.YDIALOG__TYPE:
+				return type != null;
+			case CoreModelPackage.YDIALOG__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case CoreModelPackage.YDIALOG__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case CoreModelPackage.YDIALOG__DATADESCRIPTION:
+				return datadescription != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YCssAble.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YDIALOG__CSS_CLASS: return CoreModelPackage.YCSS_ABLE__CSS_CLASS;
+				case CoreModelPackage.YDIALOG__CSS_ID: return CoreModelPackage.YCSS_ABLE__CSS_ID;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YDIALOG__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YCssAble.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCSS_ABLE__CSS_CLASS: return CoreModelPackage.YDIALOG__CSS_CLASS;
+				case CoreModelPackage.YCSS_ABLE__CSS_ID: return CoreModelPackage.YDIALOG__CSS_ID;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", cssClass: ");
+		result.append(cssClass);
+		result.append(", cssID: ");
+		result.append(cssID);
+		result.append(", modal: ");
+		result.append(modal);
+		result.append(", resizeable: ");
+		result.append(resizeable);
+		result.append(", draggable: ");
+		result.append(draggable);
+		result.append(", closable: ");
+		result.append(closable);
+		result.append(", value: ");
+		result.append(value);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog#getView()
+	 */
+	@Override
+	public YView getView() {
+		return findViewGeneric(eContainer());
+	}
+
+	/**
+	 * Find view generic.
+	 *
+	 * @param container
+	 *            the container
+	 * @return the y view
+	 */
+	protected YView findViewGeneric(EObject container) {
+		if (container == null) {
+			return null;
+		}
+		if (container instanceof YView) {
+			return (YView) container;
+		} else if (container instanceof YLayout) {
+			return ((YLayout) container).getView();
+		} else {
+			EObject parent = container.eContainer();
+			return findViewGeneric(parent);
+		}
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/**
+	 * Creates the datadescription.
+	 *
+	 * @param label
+	 *            the label
+	 * @return the y datadescription
+	 */
+	protected YDatadescription createDatadescription(String label) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabel(label);
+		return dsc;
+	}
+
+	/**
+	 * Creates the datadescription for i18n.
+	 *
+	 * @param i18nKey
+	 *            the i18n key
+	 * @return the y datadescription
+	 */
+	protected YDatadescription createDatadescriptionForI18n(String i18nKey) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabelI18nKey(i18nKey);
+		return dsc;
+	}
+
+} // YDialogImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDtWrapperImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDtWrapperImpl.java
new file mode 100644
index 0000000..90dfa71
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YDtWrapperImpl.java
@@ -0,0 +1,410 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YDt Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YDtWrapperImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YDtWrapperImpl extends MinimalEObjectImpl.Container implements YDtWrapper {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDtWrapperImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YDT_WRAPPER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDT_WRAPPER__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDT_WRAPPER__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YDT_WRAPPER__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YDT_WRAPPER__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YDT_WRAPPER__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, CoreModelPackage.YDT_WRAPPER__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YDT_WRAPPER__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YDT_WRAPPER__TAGS:
+				return getTags();
+			case CoreModelPackage.YDT_WRAPPER__ID:
+				return getId();
+			case CoreModelPackage.YDT_WRAPPER__NAME:
+				return getName();
+			case CoreModelPackage.YDT_WRAPPER__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YDT_WRAPPER__DESCRIPTION:
+				return getDescription();
+			case CoreModelPackage.YDT_WRAPPER__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YDT_WRAPPER__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YDT_WRAPPER__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YDT_WRAPPER__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YDT_WRAPPER__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YDT_WRAPPER__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case CoreModelPackage.YDT_WRAPPER__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YDT_WRAPPER__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YDT_WRAPPER__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YDT_WRAPPER__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YDT_WRAPPER__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YDT_WRAPPER__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case CoreModelPackage.YDT_WRAPPER__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YDT_WRAPPER__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YDT_WRAPPER__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YDT_WRAPPER__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YDT_WRAPPER__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YDT_WRAPPER__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case CoreModelPackage.YDT_WRAPPER__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YDtWrapperImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableBindingEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableBindingEndpointImpl.java
new file mode 100644
index 0000000..0fd9ffb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableBindingEndpointImpl.java
@@ -0,0 +1,62 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.YBindingEndpointImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YEmbeddable Binding Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * 
+ *
+ * @generated
+ */
+public abstract class YEmbeddableBindingEndpointImpl extends YBindingEndpointImpl implements YEmbeddableBindingEndpoint {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableBindingEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YEMBEDDABLE_BINDING_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindable getElement() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+} //YEmbeddableBindingEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableCollectionEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableCollectionEndpointImpl.java
new file mode 100644
index 0000000..57c3a7a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableCollectionEndpointImpl.java
@@ -0,0 +1,224 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingEndpointImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YEmbeddable Collection Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableCollectionEndpointImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YEmbeddableCollectionEndpointImpl extends YListBindingEndpointImpl implements YEmbeddableCollectionEndpoint {
+	/**
+	 * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected YCollectionBindable element;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableCollectionEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YEMBEDDABLE_COLLECTION_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YCollectionBindable getElement() {
+		if (element != null && element.eIsProxy()) {
+			InternalEObject oldElement = (InternalEObject)element;
+			element = (YCollectionBindable)eResolveProxy(oldElement);
+			if (element != oldElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, oldElement, element));
+			}
+		}
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YCollectionBindable basicGetElement() {
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetElement(YCollectionBindable newElement, NotificationChain msgs) {
+		YCollectionBindable oldElement = element;
+		element = newElement;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, oldElement, newElement);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setElement(YCollectionBindable newElement) {
+		if (newElement != element) {
+			NotificationChain msgs = null;
+			if (element != null)
+				msgs = ((InternalEObject)element).eInverseRemove(this, CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT, YCollectionBindable.class, msgs);
+			if (newElement != null)
+				msgs = ((InternalEObject)newElement).eInverseAdd(this, CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT, YCollectionBindable.class, msgs);
+			msgs = basicSetElement(newElement, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, newElement, newElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT:
+				if (element != null)
+					msgs = ((InternalEObject)element).eInverseRemove(this, CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT, YCollectionBindable.class, msgs);
+				return basicSetElement((YCollectionBindable)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT:
+				return basicSetElement(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT:
+				if (resolve) return getElement();
+				return basicGetElement();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT:
+				setElement((YCollectionBindable)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT:
+				setElement((YCollectionBindable)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT:
+				return element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return element == getElement();
+	}
+
+} //YEmbeddableCollectionEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableImpl.java
new file mode 100644
index 0000000..a2745f1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableImpl.java
@@ -0,0 +1,1024 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ * Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YVisibleable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Embeddable</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getCssClass <em>Css Class</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getCssID <em>Css ID</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#isInitialVisible <em>Initial Visible</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#isVisible <em>Visible</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getAuthorizationGroup <em>Authorization Group</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getAuthorizationId <em>Authorization Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getOrphanDatatypes <em>Orphan Datatypes</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getOrphanDatadescriptions <em>Orphan Datadescriptions</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#isMementoEnabled <em>Memento Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getMementoId <em>Memento Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getLabel <em>Label</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#getLabelI18nKey <em>Label I1 8n Key</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class YEmbeddableImpl extends MinimalEObjectImpl.Container
+		implements YEmbeddable {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+	/**
+	 * The default value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_CLASS_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssClass = CSS_CLASS_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getCssID() <em>Css ID</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssID()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_ID_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getCssID() <em>Css ID</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssID()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssID = CSS_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isInitialVisible() <em>Initial Visible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isInitialVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIAL_VISIBLE_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isInitialVisible() <em>Initial Visible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isInitialVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initialVisible = INITIAL_VISIBLE_EDEFAULT;
+	/**
+	 * The default value of the '{@link #isVisible() <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VISIBLE_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isVisible() <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean visible = VISIBLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAuthorizationGroup() <em>Authorization Group</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAuthorizationGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AUTHORIZATION_GROUP_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getAuthorizationGroup() <em>Authorization Group</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAuthorizationGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected String authorizationGroup = AUTHORIZATION_GROUP_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getAuthorizationId() <em>Authorization Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAuthorizationId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AUTHORIZATION_ID_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getAuthorizationId() <em>Authorization Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAuthorizationId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String authorizationId = AUTHORIZATION_ID_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getOrphanDatatypes()
+	 * <em>Orphan Datatypes</em>}' containment reference list. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getOrphanDatatypes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YDatatype> orphanDatatypes;
+	/**
+	 * The cached value of the '{@link #getOrphanDatadescriptions()
+	 * <em>Orphan Datadescriptions</em>}' containment reference list. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getOrphanDatadescriptions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YDatadescription> orphanDatadescriptions;
+
+	/**
+	 * The default value of the '{@link #isMementoEnabled() <em>Memento Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isMementoEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MEMENTO_ENABLED_EDEFAULT = false;
+	/**
+	 * The cached value of the '{@link #isMementoEnabled() <em>Memento Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isMementoEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean mementoEnabled = MEMENTO_ENABLED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMementoId() <em>Memento Id</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getMementoId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String MEMENTO_ID_EDEFAULT = "";
+	/**
+	 * The cached value of the '{@link #getMementoId() <em>Memento Id</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getMementoId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String mementoId = MEMENTO_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_EDEFAULT = null;
+	/**
+	 * The default value of the '{@link #getLabelI18nKey() <em>Label I1 8n Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabelI18nKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_I1_8N_KEY_EDEFAULT = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YEMBEDDABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getName() {
+		if (name == null) {
+			if (getLabel() != null && !getLabel().equals("")) {
+				return getLabel();
+			} else if (getLabelI18nKey() != null
+					&& !getLabelI18nKey().equals("")) {
+				return getLabelI18nKey();
+			}
+		}
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YEMBEDDABLE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YEMBEDDABLE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCssClass() {
+		return cssClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCssClass(String newCssClass) {
+		String oldCssClass = cssClass;
+		cssClass = newCssClass;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__CSS_CLASS, oldCssClass, cssClass));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCssID() {
+		return cssID;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCssID(String newCssID) {
+		String oldCssID = cssID;
+		cssID = newCssID;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__CSS_ID, oldCssID, cssID));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInitialVisible() {
+		return initialVisible;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitialVisible(boolean newInitialVisible) {
+		boolean oldInitialVisible = initialVisible;
+		initialVisible = newInitialVisible;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__INITIAL_VISIBLE, oldInitialVisible, initialVisible));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isVisible() {
+		return visible;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setVisible(boolean newVisible) {
+		boolean oldVisible = visible;
+		visible = newVisible;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__VISIBLE, oldVisible, visible));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAuthorizationGroup() {
+		return authorizationGroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAuthorizationGroup(String newAuthorizationGroup) {
+		String oldAuthorizationGroup = authorizationGroup;
+		authorizationGroup = newAuthorizationGroup;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_GROUP, oldAuthorizationGroup, authorizationGroup));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAuthorizationId() {
+		return authorizationId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAuthorizationId(String newAuthorizationId) {
+		String oldAuthorizationId = authorizationId;
+		authorizationId = newAuthorizationId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_ID, oldAuthorizationId, authorizationId));
+	}
+
+	protected YDatadescription createDatadescription(String label) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabel(label);
+
+		getOrphanDatadescriptions().add(dsc);
+
+		return dsc;
+	}
+
+	protected YDatadescription createDatadescriptionForI18n(String i18nKey) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabelI18nKey(i18nKey);
+
+		getOrphanDatadescriptions().add(dsc);
+
+		return dsc;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YDatatype> getOrphanDatatypes() {
+		if (orphanDatatypes == null) {
+			orphanDatatypes = new EObjectContainmentEList.Resolving<YDatatype>(YDatatype.class, this, CoreModelPackage.YEMBEDDABLE__ORPHAN_DATATYPES);
+		}
+		return orphanDatatypes;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YDatadescription> getOrphanDatadescriptions() {
+		if (orphanDatadescriptions == null) {
+			orphanDatadescriptions = new EObjectContainmentEList.Resolving<YDatadescription>(YDatadescription.class, this, CoreModelPackage.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS);
+		}
+		return orphanDatadescriptions;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMementoEnabled() {
+		return mementoEnabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMementoEnabled(boolean newMementoEnabled) {
+		boolean oldMementoEnabled = mementoEnabled;
+		mementoEnabled = newMementoEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__MEMENTO_ENABLED, oldMementoEnabled, mementoEnabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 */
+	public String getMementoId() {
+		if (mementoId == null || mementoId.trim().equals("")) {
+			return eClass().getName() + ":" + getId();
+		}
+		return mementoId;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMementoId(String newMementoId) {
+		String oldMementoId = mementoId;
+		mementoId = newMementoId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__MEMENTO_ID, oldMementoId, mementoId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLabel() {
+		// TODO: implement this method to return the 'Label' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabel(String newLabel) {
+		// TODO: implement this method to set the 'Label' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLabelI18nKey() {
+		// TODO: implement this method to return the 'Label I1 8n Key' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabelI18nKey(String newLabelI18nKey) {
+		// TODO: implement this method to set the 'Label I1 8n Key' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public YLayout getParent() {
+		EObject container = eContainer();
+		if (container instanceof YLayout) {
+			return (YLayout) container;
+		} else if (container instanceof YHelperLayoutProvider) {
+			YHelperLayoutProvider provider = (YHelperLayoutProvider) container;
+			return provider.getHelperLayout();
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public YView getView() {
+		return findViewGeneric(eContainer());
+	}
+
+	protected YView findViewGeneric(EObject container) {
+		if (container == null) {
+			return null;
+		}
+		if (container instanceof YView) {
+			return (YView) container;
+		} else if (container instanceof YLayout) {
+			return ((YLayout) container).getView();
+		} else {
+			EObject parent = container.eContainer();
+			return findViewGeneric(parent);
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATATYPES:
+				return ((InternalEList<?>)getOrphanDatatypes()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS:
+				return ((InternalEList<?>)getOrphanDatadescriptions()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE__TAGS:
+				return getTags();
+			case CoreModelPackage.YEMBEDDABLE__ID:
+				return getId();
+			case CoreModelPackage.YEMBEDDABLE__NAME:
+				return getName();
+			case CoreModelPackage.YEMBEDDABLE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YEMBEDDABLE__CSS_CLASS:
+				return getCssClass();
+			case CoreModelPackage.YEMBEDDABLE__CSS_ID:
+				return getCssID();
+			case CoreModelPackage.YEMBEDDABLE__INITIAL_VISIBLE:
+				return isInitialVisible();
+			case CoreModelPackage.YEMBEDDABLE__VISIBLE:
+				return isVisible();
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_GROUP:
+				return getAuthorizationGroup();
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_ID:
+				return getAuthorizationId();
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATATYPES:
+				return getOrphanDatatypes();
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS:
+				return getOrphanDatadescriptions();
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ENABLED:
+				return isMementoEnabled();
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ID:
+				return getMementoId();
+			case CoreModelPackage.YEMBEDDABLE__LABEL:
+				return getLabel();
+			case CoreModelPackage.YEMBEDDABLE__LABEL_I1_8N_KEY:
+				return getLabelI18nKey();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__CSS_CLASS:
+				setCssClass((String)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__CSS_ID:
+				setCssID((String)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__INITIAL_VISIBLE:
+				setInitialVisible((Boolean)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__VISIBLE:
+				setVisible((Boolean)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_GROUP:
+				setAuthorizationGroup((String)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_ID:
+				setAuthorizationId((String)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATATYPES:
+				getOrphanDatatypes().clear();
+				getOrphanDatatypes().addAll((Collection<? extends YDatatype>)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS:
+				getOrphanDatadescriptions().clear();
+				getOrphanDatadescriptions().addAll((Collection<? extends YDatadescription>)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ENABLED:
+				setMementoEnabled((Boolean)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ID:
+				setMementoId((String)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__LABEL:
+				setLabel((String)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__LABEL_I1_8N_KEY:
+				setLabelI18nKey((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YEMBEDDABLE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YEMBEDDABLE__CSS_CLASS:
+				setCssClass(CSS_CLASS_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__CSS_ID:
+				setCssID(CSS_ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__INITIAL_VISIBLE:
+				setInitialVisible(INITIAL_VISIBLE_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__VISIBLE:
+				setVisible(VISIBLE_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_GROUP:
+				setAuthorizationGroup(AUTHORIZATION_GROUP_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_ID:
+				setAuthorizationId(AUTHORIZATION_ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATATYPES:
+				getOrphanDatatypes().clear();
+				return;
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS:
+				getOrphanDatadescriptions().clear();
+				return;
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ENABLED:
+				setMementoEnabled(MEMENTO_ENABLED_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ID:
+				setMementoId(MEMENTO_ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__LABEL:
+				setLabel(LABEL_EDEFAULT);
+				return;
+			case CoreModelPackage.YEMBEDDABLE__LABEL_I1_8N_KEY:
+				setLabelI18nKey(LABEL_I1_8N_KEY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YEMBEDDABLE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YEMBEDDABLE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YEMBEDDABLE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YEMBEDDABLE__CSS_CLASS:
+				return CSS_CLASS_EDEFAULT == null ? cssClass != null : !CSS_CLASS_EDEFAULT.equals(cssClass);
+			case CoreModelPackage.YEMBEDDABLE__CSS_ID:
+				return CSS_ID_EDEFAULT == null ? cssID != null : !CSS_ID_EDEFAULT.equals(cssID);
+			case CoreModelPackage.YEMBEDDABLE__INITIAL_VISIBLE:
+				return initialVisible != INITIAL_VISIBLE_EDEFAULT;
+			case CoreModelPackage.YEMBEDDABLE__VISIBLE:
+				return visible != VISIBLE_EDEFAULT;
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_GROUP:
+				return AUTHORIZATION_GROUP_EDEFAULT == null ? authorizationGroup != null : !AUTHORIZATION_GROUP_EDEFAULT.equals(authorizationGroup);
+			case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_ID:
+				return AUTHORIZATION_ID_EDEFAULT == null ? authorizationId != null : !AUTHORIZATION_ID_EDEFAULT.equals(authorizationId);
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATATYPES:
+				return orphanDatatypes != null && !orphanDatatypes.isEmpty();
+			case CoreModelPackage.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS:
+				return orphanDatadescriptions != null && !orphanDatadescriptions.isEmpty();
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ENABLED:
+				return mementoEnabled != MEMENTO_ENABLED_EDEFAULT;
+			case CoreModelPackage.YEMBEDDABLE__MEMENTO_ID:
+				return MEMENTO_ID_EDEFAULT == null ? mementoId != null : !MEMENTO_ID_EDEFAULT.equals(mementoId);
+			case CoreModelPackage.YEMBEDDABLE__LABEL:
+				return LABEL_EDEFAULT == null ? getLabel() != null : !LABEL_EDEFAULT.equals(getLabel());
+			case CoreModelPackage.YEMBEDDABLE__LABEL_I1_8N_KEY:
+				return LABEL_I1_8N_KEY_EDEFAULT == null ? getLabelI18nKey() != null : !LABEL_I1_8N_KEY_EDEFAULT.equals(getLabelI18nKey());
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YCssAble.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YEMBEDDABLE__CSS_CLASS: return CoreModelPackage.YCSS_ABLE__CSS_CLASS;
+				case CoreModelPackage.YEMBEDDABLE__CSS_ID: return CoreModelPackage.YCSS_ABLE__CSS_ID;
+				default: return -1;
+			}
+		}
+		if (baseClass == YVisibleable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YEMBEDDABLE__INITIAL_VISIBLE: return CoreModelPackage.YVISIBLEABLE__INITIAL_VISIBLE;
+				case CoreModelPackage.YEMBEDDABLE__VISIBLE: return CoreModelPackage.YVISIBLEABLE__VISIBLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAuthorizationable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_GROUP: return CoreModelPackage.YAUTHORIZATIONABLE__AUTHORIZATION_GROUP;
+				case CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_ID: return CoreModelPackage.YAUTHORIZATIONABLE__AUTHORIZATION_ID;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YCssAble.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCSS_ABLE__CSS_CLASS: return CoreModelPackage.YEMBEDDABLE__CSS_CLASS;
+				case CoreModelPackage.YCSS_ABLE__CSS_ID: return CoreModelPackage.YEMBEDDABLE__CSS_ID;
+				default: return -1;
+			}
+		}
+		if (baseClass == YVisibleable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVISIBLEABLE__INITIAL_VISIBLE: return CoreModelPackage.YEMBEDDABLE__INITIAL_VISIBLE;
+				case CoreModelPackage.YVISIBLEABLE__VISIBLE: return CoreModelPackage.YEMBEDDABLE__VISIBLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAuthorizationable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YAUTHORIZATIONABLE__AUTHORIZATION_GROUP: return CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_GROUP;
+				case CoreModelPackage.YAUTHORIZATIONABLE__AUTHORIZATION_ID: return CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_ID;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", cssClass: ");
+		result.append(cssClass);
+		result.append(", cssID: ");
+		result.append(cssID);
+		result.append(", initialVisible: ");
+		result.append(initialVisible);
+		result.append(", visible: ");
+		result.append(visible);
+		result.append(", authorizationGroup: ");
+		result.append(authorizationGroup);
+		result.append(", authorizationId: ");
+		result.append(authorizationId);
+		result.append(", mementoEnabled: ");
+		result.append(mementoEnabled);
+		result.append(", mementoId: ");
+		result.append(mementoId);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public YValueBindingEndpoint createVisibleEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YVISIBLEABLE__VISIBLE);
+		return endpoint;
+	}
+
+	@Override
+	public YValueBindingEndpoint createCssIdEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YCSS_ABLE__CSS_ID);
+		return endpoint;
+	}
+
+	@Override
+	public YValueBindingEndpoint createCssClassEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YCSS_ABLE__CSS_CLASS);
+		return endpoint;
+	}
+
+} // YUiEmbeddableImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableMultiSelectionEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableMultiSelectionEndpointImpl.java
new file mode 100644
index 0000000..2205b8e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableMultiSelectionEndpointImpl.java
@@ -0,0 +1,224 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.YListBindingEndpointImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YEmbeddable Multi Selection Endpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableMultiSelectionEndpointImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YEmbeddableMultiSelectionEndpointImpl extends YListBindingEndpointImpl implements YEmbeddableMultiSelectionEndpoint {
+	/**
+	 * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected YMultiSelectionBindable element;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableMultiSelectionEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YMultiSelectionBindable getElement() {
+		if (element != null && element.eIsProxy()) {
+			InternalEObject oldElement = (InternalEObject)element;
+			element = (YMultiSelectionBindable)eResolveProxy(oldElement);
+			if (element != oldElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, oldElement, element));
+			}
+		}
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YMultiSelectionBindable basicGetElement() {
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetElement(YMultiSelectionBindable newElement, NotificationChain msgs) {
+		YMultiSelectionBindable oldElement = element;
+		element = newElement;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, oldElement, newElement);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setElement(YMultiSelectionBindable newElement) {
+		if (newElement != element) {
+			NotificationChain msgs = null;
+			if (element != null)
+				msgs = ((InternalEObject)element).eInverseRemove(this, CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT, YMultiSelectionBindable.class, msgs);
+			if (newElement != null)
+				msgs = ((InternalEObject)newElement).eInverseAdd(this, CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT, YMultiSelectionBindable.class, msgs);
+			msgs = basicSetElement(newElement, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, newElement, newElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT:
+				if (element != null)
+					msgs = ((InternalEObject)element).eInverseRemove(this, CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT, YMultiSelectionBindable.class, msgs);
+				return basicSetElement((YMultiSelectionBindable)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT:
+				return basicSetElement(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT:
+				if (resolve) return getElement();
+				return basicGetElement();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT:
+				setElement((YMultiSelectionBindable)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT:
+				setElement((YMultiSelectionBindable)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT:
+				return element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+	
+	@Override
+	public boolean isBindsElement(YElement element) {
+		return element == getElement();
+	}
+
+} //YEmbeddableMultiSelectionEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableSelectionEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableSelectionEndpointImpl.java
new file mode 100644
index 0000000..d3d768c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableSelectionEndpointImpl.java
@@ -0,0 +1,295 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingEndpointImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YEmbeddable Selection Endpoint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableSelectionEndpointImpl#getElement <em>Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableSelectionEndpointImpl#getAttributePath <em>Attribute Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YEmbeddableSelectionEndpointImpl extends YValueBindingEndpointImpl
+		implements YEmbeddableSelectionEndpoint {
+	/**
+	 * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSelectionBindable element;
+
+	/**
+	 * The default value of the '{@link #getAttributePath() <em>Attribute Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getAttributePath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ATTRIBUTE_PATH_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getAttributePath() <em>Attribute Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getAttributePath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String attributePath = ATTRIBUTE_PATH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableSelectionEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YEMBEDDABLE_SELECTION_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSelectionBindable getElement() {
+		if (element != null && element.eIsProxy()) {
+			InternalEObject oldElement = (InternalEObject)element;
+			element = (YSelectionBindable)eResolveProxy(oldElement);
+			if (element != oldElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, oldElement, element));
+			}
+		}
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSelectionBindable basicGetElement() {
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetElement(YSelectionBindable newElement,
+			NotificationChain msgs) {
+		YSelectionBindable oldElement = element;
+		element = newElement;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, oldElement, newElement);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setElement(YSelectionBindable newElement) {
+		if (newElement != element) {
+			NotificationChain msgs = null;
+			if (element != null)
+				msgs = ((InternalEObject)element).eInverseRemove(this, CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT, YSelectionBindable.class, msgs);
+			if (newElement != null)
+				msgs = ((InternalEObject)newElement).eInverseAdd(this, CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT, YSelectionBindable.class, msgs);
+			msgs = basicSetElement(newElement, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, newElement, newElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAttributePath() {
+		return attributePath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAttributePath(String newAttributePath) {
+		String oldAttributePath = attributePath;
+		attributePath = newAttributePath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH, oldAttributePath, attributePath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT:
+				if (element != null)
+					msgs = ((InternalEObject)element).eInverseRemove(this, CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT, YSelectionBindable.class, msgs);
+				return basicSetElement((YSelectionBindable)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT:
+				return basicSetElement(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT:
+				if (resolve) return getElement();
+				return basicGetElement();
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH:
+				return getAttributePath();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT:
+				setElement((YSelectionBindable)newValue);
+				return;
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH:
+				setAttributePath((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT:
+				setElement((YSelectionBindable)null);
+				return;
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH:
+				setAttributePath(ATTRIBUTE_PATH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT:
+				return element != null;
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ATTRIBUTE_PATH:
+				return ATTRIBUTE_PATH_EDEFAULT == null ? attributePath != null : !ATTRIBUTE_PATH_EDEFAULT.equals(attributePath);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (attributePath: ");
+		result.append(attributePath);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public boolean isBindsElement(YElement element) {
+		return element == getElement();
+	}
+
+	@Override
+	public String getBindingIdString() {
+
+		if (!(getElement() instanceof YElement)) {
+			throw new IllegalArgumentException(
+					"not a valid element to create a binding id string");
+		}
+
+		YElement yElement = (YElement) getElement();
+		return BindingIdUtil.getEmbeddableSelectionId(yElement.getId(), getAttributePath());
+	}
+
+} // YEmbeddableSelectionEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableValueEndpointImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableValueEndpointImpl.java
new file mode 100644
index 0000000..c1394a4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YEmbeddableValueEndpointImpl.java
@@ -0,0 +1,231 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.YValueBindingEndpointImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YEmbeddable Value Endpoint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableValueEndpointImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YEmbeddableValueEndpointImpl extends YValueBindingEndpointImpl
+		implements YEmbeddableValueEndpoint {
+	/**
+	 * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected YValueBindable element;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEmbeddableValueEndpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YEMBEDDABLE_VALUE_ENDPOINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YValueBindable getElement() {
+		if (element != null && element.eIsProxy()) {
+			InternalEObject oldElement = (InternalEObject)element;
+			element = (YValueBindable)eResolveProxy(oldElement);
+			if (element != oldElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, oldElement, element));
+			}
+		}
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YValueBindable basicGetElement() {
+		return element;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetElement(YValueBindable newElement,
+			NotificationChain msgs) {
+		YValueBindable oldElement = element;
+		element = newElement;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, oldElement, newElement);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setElement(YValueBindable newElement) {
+		if (newElement != element) {
+			NotificationChain msgs = null;
+			if (element != null)
+				msgs = ((InternalEObject)element).eInverseRemove(this, CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT, YValueBindable.class, msgs);
+			if (newElement != null)
+				msgs = ((InternalEObject)newElement).eInverseAdd(this, CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT, YValueBindable.class, msgs);
+			msgs = basicSetElement(newElement, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, newElement, newElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT:
+				if (element != null)
+					msgs = ((InternalEObject)element).eInverseRemove(this, CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT, YValueBindable.class, msgs);
+				return basicSetElement((YValueBindable)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT:
+				return basicSetElement(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT:
+				if (resolve) return getElement();
+				return basicGetElement();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT:
+				setElement((YValueBindable)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT:
+				setElement((YValueBindable)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT:
+				return element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public boolean isBindsElement(YElement element) {
+		return element == getElement();
+	}
+
+	@Override
+	public String getBindingIdString() {
+
+		if (!(getElement() instanceof YElement)) {
+			throw new IllegalArgumentException(
+					"not a valid element to create a binding id string");
+		}
+
+		YElement yElement = (YElement) getElement();
+		return BindingIdUtil.getEmbeddableValueId(yElement.getId());
+	}
+
+} // YEmbeddableValueEndpointImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YExposedActionImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YExposedActionImpl.java
new file mode 100644
index 0000000..1f0e718
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YExposedActionImpl.java
@@ -0,0 +1,980 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YExposed Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#isInitialEnabled <em>Initial Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#isEnabled <em>Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getIcon <em>Icon</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getLabel <em>Label</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getLabelI18nKey <em>Label I1 8n Key</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getExternalClickTime <em>External Click Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getInternalClickTime <em>Internal Click Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getExecutedNotificationTime <em>Executed Notification Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getCanceledNotificationTime <em>Canceled Notification Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#isCheckDirty <em>Check Dirty</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YExposedActionImpl#getExternalCommandId <em>External Command Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YExposedActionImpl extends MinimalEObjectImpl.Container implements YExposedAction {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #isInitialEnabled() <em>Initial Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIAL_ENABLED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isInitialEnabled() <em>Initial Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initialEnabled = INITIAL_ENABLED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ENABLED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean enabled = ENABLED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ICON_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected String icon = ICON_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected String label = LABEL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLabelI18nKey() <em>Label I1 8n Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabelI18nKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_I1_8N_KEY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLabelI18nKey() <em>Label I1 8n Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabelI18nKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected String labelI18nKey = LABEL_I1_8N_KEY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExternalClickTime() <em>External Click Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalClickTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final long EXTERNAL_CLICK_TIME_EDEFAULT = 0L;
+
+	/**
+	 * The cached value of the '{@link #getExternalClickTime() <em>External Click Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalClickTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected long externalClickTime = EXTERNAL_CLICK_TIME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getInternalClickTime() <em>Internal Click Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInternalClickTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final long INTERNAL_CLICK_TIME_EDEFAULT = 0L;
+
+	/**
+	 * The cached value of the '{@link #getInternalClickTime() <em>Internal Click Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInternalClickTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected long internalClickTime = INTERNAL_CLICK_TIME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExecutedNotificationTime() <em>Executed Notification Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExecutedNotificationTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final long EXECUTED_NOTIFICATION_TIME_EDEFAULT = 0L;
+
+	/**
+	 * The cached value of the '{@link #getExecutedNotificationTime() <em>Executed Notification Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExecutedNotificationTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected long executedNotificationTime = EXECUTED_NOTIFICATION_TIME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCanceledNotificationTime() <em>Canceled Notification Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCanceledNotificationTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final long CANCELED_NOTIFICATION_TIME_EDEFAULT = 0L;
+
+	/**
+	 * The cached value of the '{@link #getCanceledNotificationTime() <em>Canceled Notification Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCanceledNotificationTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected long canceledNotificationTime = CANCELED_NOTIFICATION_TIME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCheckDirty() <em>Check Dirty</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCheckDirty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CHECK_DIRTY_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCheckDirty() <em>Check Dirty</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCheckDirty()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean checkDirty = CHECK_DIRTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExternalCommandId() <em>External Command Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCommandId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EXTERNAL_COMMAND_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getExternalCommandId() <em>External Command Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCommandId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String externalCommandId = EXTERNAL_COMMAND_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YExposedActionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YEXPOSED_ACTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YEXPOSED_ACTION__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YEXPOSED_ACTION__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInitialEnabled() {
+		return initialEnabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitialEnabled(boolean newInitialEnabled) {
+		boolean oldInitialEnabled = initialEnabled;
+		initialEnabled = newInitialEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__INITIAL_ENABLED, oldInitialEnabled, initialEnabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEnabled(boolean newEnabled) {
+		boolean oldEnabled = enabled;
+		enabled = newEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__ENABLED, oldEnabled, enabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getIcon() {
+		return icon;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIcon(String newIcon) {
+		String oldIcon = icon;
+		icon = newIcon;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__ICON, oldIcon, icon));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLabel() {
+		return label;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabel(String newLabel) {
+		String oldLabel = label;
+		label = newLabel;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__LABEL, oldLabel, label));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLabelI18nKey() {
+		return labelI18nKey;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabelI18nKey(String newLabelI18nKey) {
+		String oldLabelI18nKey = labelI18nKey;
+		labelI18nKey = newLabelI18nKey;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__LABEL_I1_8N_KEY, oldLabelI18nKey, labelI18nKey));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public long getExternalClickTime() {
+		return externalClickTime;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExternalClickTime(long newExternalClickTime) {
+		long oldExternalClickTime = externalClickTime;
+		externalClickTime = newExternalClickTime;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_CLICK_TIME, oldExternalClickTime, externalClickTime));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public long getInternalClickTime() {
+		return internalClickTime;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInternalClickTime(long newInternalClickTime) {
+		long oldInternalClickTime = internalClickTime;
+		internalClickTime = newInternalClickTime;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__INTERNAL_CLICK_TIME, oldInternalClickTime, internalClickTime));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public long getExecutedNotificationTime() {
+		return executedNotificationTime;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExecutedNotificationTime(long newExecutedNotificationTime) {
+		long oldExecutedNotificationTime = executedNotificationTime;
+		executedNotificationTime = newExecutedNotificationTime;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME, oldExecutedNotificationTime, executedNotificationTime));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public long getCanceledNotificationTime() {
+		return canceledNotificationTime;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCanceledNotificationTime(long newCanceledNotificationTime) {
+		long oldCanceledNotificationTime = canceledNotificationTime;
+		canceledNotificationTime = newCanceledNotificationTime;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME, oldCanceledNotificationTime, canceledNotificationTime));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCheckDirty() {
+		return checkDirty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCheckDirty(boolean newCheckDirty) {
+		boolean oldCheckDirty = checkDirty;
+		checkDirty = newCheckDirty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__CHECK_DIRTY, oldCheckDirty, checkDirty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getExternalCommandId() {
+		return externalCommandId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExternalCommandId(String newExternalCommandId) {
+		String oldExternalCommandId = externalCommandId;
+		externalCommandId = newExternalCommandId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_COMMAND_ID, oldExternalCommandId, externalCommandId));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YView getViewGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	public YView getView() {
+		return findViewGeneric(eContainer());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YEXPOSED_ACTION__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	protected YView findViewGeneric(EObject container) {
+		if (container == null) {
+			return null;
+		}
+		if (container instanceof YView) {
+			return (YView) container;
+		} else if (container instanceof YLayout) {
+			return ((YLayout) container).getView();
+		} else {
+			EObject parent = container.eContainer();
+			return findViewGeneric(parent);
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YEXPOSED_ACTION__TAGS:
+				return getTags();
+			case CoreModelPackage.YEXPOSED_ACTION__ID:
+				return getId();
+			case CoreModelPackage.YEXPOSED_ACTION__NAME:
+				return getName();
+			case CoreModelPackage.YEXPOSED_ACTION__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YEXPOSED_ACTION__INITIAL_ENABLED:
+				return isInitialEnabled();
+			case CoreModelPackage.YEXPOSED_ACTION__ENABLED:
+				return isEnabled();
+			case CoreModelPackage.YEXPOSED_ACTION__ICON:
+				return getIcon();
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL:
+				return getLabel();
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL_I1_8N_KEY:
+				return getLabelI18nKey();
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_CLICK_TIME:
+				return getExternalClickTime();
+			case CoreModelPackage.YEXPOSED_ACTION__INTERNAL_CLICK_TIME:
+				return getInternalClickTime();
+			case CoreModelPackage.YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME:
+				return getExecutedNotificationTime();
+			case CoreModelPackage.YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME:
+				return getCanceledNotificationTime();
+			case CoreModelPackage.YEXPOSED_ACTION__CHECK_DIRTY:
+				return isCheckDirty();
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_COMMAND_ID:
+				return getExternalCommandId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YEXPOSED_ACTION__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__INITIAL_ENABLED:
+				setInitialEnabled((Boolean)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__ENABLED:
+				setEnabled((Boolean)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__ICON:
+				setIcon((String)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL:
+				setLabel((String)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL_I1_8N_KEY:
+				setLabelI18nKey((String)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_CLICK_TIME:
+				setExternalClickTime((Long)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__INTERNAL_CLICK_TIME:
+				setInternalClickTime((Long)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME:
+				setExecutedNotificationTime((Long)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME:
+				setCanceledNotificationTime((Long)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__CHECK_DIRTY:
+				setCheckDirty((Boolean)newValue);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_COMMAND_ID:
+				setExternalCommandId((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEXPOSED_ACTION__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__INITIAL_ENABLED:
+				setInitialEnabled(INITIAL_ENABLED_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__ENABLED:
+				setEnabled(ENABLED_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__ICON:
+				setIcon(ICON_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL:
+				setLabel(LABEL_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL_I1_8N_KEY:
+				setLabelI18nKey(LABEL_I1_8N_KEY_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_CLICK_TIME:
+				setExternalClickTime(EXTERNAL_CLICK_TIME_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__INTERNAL_CLICK_TIME:
+				setInternalClickTime(INTERNAL_CLICK_TIME_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME:
+				setExecutedNotificationTime(EXECUTED_NOTIFICATION_TIME_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME:
+				setCanceledNotificationTime(CANCELED_NOTIFICATION_TIME_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__CHECK_DIRTY:
+				setCheckDirty(CHECK_DIRTY_EDEFAULT);
+				return;
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_COMMAND_ID:
+				setExternalCommandId(EXTERNAL_COMMAND_ID_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YEXPOSED_ACTION__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YEXPOSED_ACTION__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YEXPOSED_ACTION__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YEXPOSED_ACTION__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YEXPOSED_ACTION__INITIAL_ENABLED:
+				return initialEnabled != INITIAL_ENABLED_EDEFAULT;
+			case CoreModelPackage.YEXPOSED_ACTION__ENABLED:
+				return enabled != ENABLED_EDEFAULT;
+			case CoreModelPackage.YEXPOSED_ACTION__ICON:
+				return ICON_EDEFAULT == null ? icon != null : !ICON_EDEFAULT.equals(icon);
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL:
+				return LABEL_EDEFAULT == null ? label != null : !LABEL_EDEFAULT.equals(label);
+			case CoreModelPackage.YEXPOSED_ACTION__LABEL_I1_8N_KEY:
+				return LABEL_I1_8N_KEY_EDEFAULT == null ? labelI18nKey != null : !LABEL_I1_8N_KEY_EDEFAULT.equals(labelI18nKey);
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_CLICK_TIME:
+				return externalClickTime != EXTERNAL_CLICK_TIME_EDEFAULT;
+			case CoreModelPackage.YEXPOSED_ACTION__INTERNAL_CLICK_TIME:
+				return internalClickTime != INTERNAL_CLICK_TIME_EDEFAULT;
+			case CoreModelPackage.YEXPOSED_ACTION__EXECUTED_NOTIFICATION_TIME:
+				return executedNotificationTime != EXECUTED_NOTIFICATION_TIME_EDEFAULT;
+			case CoreModelPackage.YEXPOSED_ACTION__CANCELED_NOTIFICATION_TIME:
+				return canceledNotificationTime != CANCELED_NOTIFICATION_TIME_EDEFAULT;
+			case CoreModelPackage.YEXPOSED_ACTION__CHECK_DIRTY:
+				return checkDirty != CHECK_DIRTY_EDEFAULT;
+			case CoreModelPackage.YEXPOSED_ACTION__EXTERNAL_COMMAND_ID:
+				return EXTERNAL_COMMAND_ID_EDEFAULT == null ? externalCommandId != null : !EXTERNAL_COMMAND_ID_EDEFAULT.equals(externalCommandId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YEnable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YEXPOSED_ACTION__INITIAL_ENABLED: return CoreModelPackage.YENABLE__INITIAL_ENABLED;
+				case CoreModelPackage.YEXPOSED_ACTION__ENABLED: return CoreModelPackage.YENABLE__ENABLED;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YEnable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YENABLE__INITIAL_ENABLED: return CoreModelPackage.YEXPOSED_ACTION__INITIAL_ENABLED;
+				case CoreModelPackage.YENABLE__ENABLED: return CoreModelPackage.YEXPOSED_ACTION__ENABLED;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", initialEnabled: ");
+		result.append(initialEnabled);
+		result.append(", enabled: ");
+		result.append(enabled);
+		result.append(", icon: ");
+		result.append(icon);
+		result.append(", label: ");
+		result.append(label);
+		result.append(", labelI18nKey: ");
+		result.append(labelI18nKey);
+		result.append(", externalClickTime: ");
+		result.append(externalClickTime);
+		result.append(", internalClickTime: ");
+		result.append(internalClickTime);
+		result.append(", executedNotificationTime: ");
+		result.append(executedNotificationTime);
+		result.append(", canceledNotificationTime: ");
+		result.append(canceledNotificationTime);
+		result.append(", checkDirty: ");
+		result.append(checkDirty);
+		result.append(", externalCommandId: ");
+		result.append(externalCommandId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YExposedActionImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YFieldImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YFieldImpl.java
new file mode 100644
index 0000000..767a3f0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YFieldImpl.java
@@ -0,0 +1,788 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YConverter;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.custom.ChangeAdapter;
+import org.eclipse.osbp.ecview.core.common.model.core.listeners.YValueChangeListener;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Field</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#isInitialEditable <em>Initial Editable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#isEditable <em>Editable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#isInitialEnabled <em>Initial Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#isEnabled <em>Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getTabIndex <em>Tab Index</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getValidators <em>Validators</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getInternalValidators <em>Internal Validators</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getConverter <em>Converter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YFieldImpl extends YEmbeddableImpl implements YField {
+	/**
+	 * The default value of the '{@link #isInitialEditable() <em>Initial Editable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isInitialEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIAL_EDITABLE_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isInitialEditable() <em>Initial Editable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isInitialEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initialEditable = INITIAL_EDITABLE_EDEFAULT;
+	/**
+	 * The default value of the '{@link #isEditable() <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EDITABLE_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isEditable() <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean editable = EDITABLE_EDEFAULT;
+	/**
+	 * The default value of the '{@link #isInitialEnabled() <em>Initial Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isInitialEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIAL_ENABLED_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isInitialEnabled() <em>Initial Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isInitialEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initialEnabled = INITIAL_ENABLED_EDEFAULT;
+	/**
+	 * The default value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ENABLED_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean enabled = ENABLED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int TAB_INDEX_EDEFAULT = -1;
+	/**
+	 * The cached value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected int tabIndex = TAB_INDEX_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+	/**
+	 * The cached value of the '{@link #getInternalValidators()
+	 * <em>Internal Validators</em>}' containment reference list. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getInternalValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> internalValidators;
+	/**
+	 * The cached value of the '{@link #getConverter() <em>Converter</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConverter()
+	 * @generated
+	 * @ordered
+	 */
+	protected YConverter converter;
+	/**
+	 * A list with all value change listeners registered.
+	 * 
+	 * @generated NOT
+	 */
+	private List<YValueChangeListener> valueChangeListeners;
+
+	/**
+	 * The change adapter which observe changing values.
+	 * 
+	 * @generated NOT
+	 */
+	private ChangeAdapter valueChangeAdapter;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YFIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInitialEditable() {
+		return initialEditable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitialEditable(boolean newInitialEditable) {
+		boolean oldInitialEditable = initialEditable;
+		initialEditable = newInitialEditable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YFIELD__INITIAL_EDITABLE, oldInitialEditable, initialEditable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEditable() {
+		return editable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEditable(boolean newEditable) {
+		boolean oldEditable = editable;
+		editable = newEditable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YFIELD__EDITABLE, oldEditable, editable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInitialEnabled() {
+		return initialEnabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitialEnabled(boolean newInitialEnabled) {
+		boolean oldInitialEnabled = initialEnabled;
+		initialEnabled = newInitialEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YFIELD__INITIAL_ENABLED, oldInitialEnabled, initialEnabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEnabled(boolean newEnabled) {
+		boolean oldEnabled = enabled;
+		enabled = newEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YFIELD__ENABLED, oldEnabled, enabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getTabIndex() {
+		return tabIndex;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTabIndex(int newTabIndex) {
+		int oldTabIndex = tabIndex;
+		tabIndex = newTabIndex;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YFIELD__TAB_INDEX, oldTabIndex, tabIndex));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectContainmentEList.Resolving<YValidator>(YValidator.class, this, CoreModelPackage.YFIELD__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getInternalValidators() {
+		if (internalValidators == null) {
+			internalValidators = new EObjectContainmentEList.Resolving<YValidator>(YValidator.class, this, CoreModelPackage.YFIELD__INTERNAL_VALIDATORS);
+		}
+		return internalValidators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YConverter getConverter() {
+		if (converter != null && converter.eIsProxy()) {
+			InternalEObject oldConverter = (InternalEObject)converter;
+			converter = (YConverter)eResolveProxy(oldConverter);
+			if (converter != oldConverter) {
+				InternalEObject newConverter = (InternalEObject)converter;
+				NotificationChain msgs = oldConverter.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YFIELD__CONVERTER, null, null);
+				if (newConverter.eInternalContainer() == null) {
+					msgs = newConverter.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YFIELD__CONVERTER, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YFIELD__CONVERTER, oldConverter, converter));
+			}
+		}
+		return converter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YConverter basicGetConverter() {
+		return converter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetConverter(YConverter newConverter, NotificationChain msgs) {
+		YConverter oldConverter = converter;
+		converter = newConverter;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YFIELD__CONVERTER, oldConverter, newConverter);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConverter(YConverter newConverter) {
+		if (newConverter != converter) {
+			NotificationChain msgs = null;
+			if (converter != null)
+				msgs = ((InternalEObject)converter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YFIELD__CONVERTER, null, msgs);
+			if (newConverter != null)
+				msgs = ((InternalEObject)newConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YFIELD__CONVERTER, null, msgs);
+			msgs = basicSetConverter(newConverter, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YFIELD__CONVERTER, newConverter, newConverter));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean addValueChangeListenerGen(YValueChangeListener listener) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean removeValueChangeListenerGen(YValueChangeListener listener) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates the value change adapter if not present yet.
+	 */
+	protected void ensureValueChangeAdapter() {
+		if (valueChangeAdapter == null) {
+			valueChangeListeners = new ArrayList<YValueChangeListener>();
+			valueChangeAdapter = new ChangeAdapter(
+					createNewChangeAdapterConfig()) {
+				@Override
+				protected void handleSet(Notification msg) {
+					YValueChangeListener.Event event = new YValueChangeListener.Event(
+							YFieldImpl.this, msg.getOldValue(),
+							msg.getNewValue());
+					for (YValueChangeListener listener : valueChangeListeners
+							.toArray(new YValueChangeListener[valueChangeListeners
+									.size()])) {
+						listener.valueChanged(event);
+					}
+
+				}
+			};
+			eAdapters().add(valueChangeAdapter);
+		}
+	}
+
+	/**
+	 * Returns a new instance of the change adapter config. Has to be overridden
+	 * by subclasses.
+	 * 
+	 * @return
+	 * 
+	 * @generated NOT
+	 */
+	protected ChangeAdapter.Config createNewChangeAdapterConfig() {
+		throw new UnsupportedOperationException("Not implemented by subclass!");
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public boolean addValueChangeListener(YValueChangeListener listener) {
+		ensureValueChangeAdapter();
+
+		return getValueChangeListeners().add(listener);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public boolean removeValueChangeListener(YValueChangeListener listener) {
+		if (valueChangeListeners == null) {
+			return false;
+		}
+
+		boolean result = valueChangeListeners.remove(listener);
+
+		disposeValueChangeAdapter();
+
+		return result;
+	}
+
+	/**
+	 * Disposes the value change adapter.
+	 * 
+	 * @generated NOT
+	 */
+	protected void disposeValueChangeAdapter() {
+		if (valueChangeListeners != null && valueChangeListeners.size() == 0) {
+			valueChangeListeners = null;
+			eAdapters().remove(valueChangeAdapter);
+			valueChangeAdapter = null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeAllValueChangListenersGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Removes all value change listeners.
+	 * 
+	 * @generated NOT
+	 */
+	public void removeAllValueChangListeners() {
+		if (valueChangeListeners != null) {
+			valueChangeListeners.clear();
+			disposeValueChangeAdapter();
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YFIELD__VALIDATORS:
+				return ((InternalEList<?>)getValidators()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YFIELD__INTERNAL_VALIDATORS:
+				return ((InternalEList<?>)getInternalValidators()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YFIELD__CONVERTER:
+				return basicSetConverter(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * Returns a list of all available value change listeners.
+	 * 
+	 * @return
+	 */
+	protected List<YValueChangeListener> getValueChangeListeners() {
+		return valueChangeListeners != null ? valueChangeListeners
+				: Collections.<YValueChangeListener> emptyList();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YFIELD__INITIAL_EDITABLE:
+				return isInitialEditable();
+			case CoreModelPackage.YFIELD__EDITABLE:
+				return isEditable();
+			case CoreModelPackage.YFIELD__INITIAL_ENABLED:
+				return isInitialEnabled();
+			case CoreModelPackage.YFIELD__ENABLED:
+				return isEnabled();
+			case CoreModelPackage.YFIELD__TAB_INDEX:
+				return getTabIndex();
+			case CoreModelPackage.YFIELD__VALIDATORS:
+				return getValidators();
+			case CoreModelPackage.YFIELD__INTERNAL_VALIDATORS:
+				return getInternalValidators();
+			case CoreModelPackage.YFIELD__CONVERTER:
+				if (resolve) return getConverter();
+				return basicGetConverter();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YFIELD__INITIAL_EDITABLE:
+				setInitialEditable((Boolean)newValue);
+				return;
+			case CoreModelPackage.YFIELD__EDITABLE:
+				setEditable((Boolean)newValue);
+				return;
+			case CoreModelPackage.YFIELD__INITIAL_ENABLED:
+				setInitialEnabled((Boolean)newValue);
+				return;
+			case CoreModelPackage.YFIELD__ENABLED:
+				setEnabled((Boolean)newValue);
+				return;
+			case CoreModelPackage.YFIELD__TAB_INDEX:
+				setTabIndex((Integer)newValue);
+				return;
+			case CoreModelPackage.YFIELD__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+			case CoreModelPackage.YFIELD__INTERNAL_VALIDATORS:
+				getInternalValidators().clear();
+				getInternalValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+			case CoreModelPackage.YFIELD__CONVERTER:
+				setConverter((YConverter)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YFIELD__INITIAL_EDITABLE:
+				setInitialEditable(INITIAL_EDITABLE_EDEFAULT);
+				return;
+			case CoreModelPackage.YFIELD__EDITABLE:
+				setEditable(EDITABLE_EDEFAULT);
+				return;
+			case CoreModelPackage.YFIELD__INITIAL_ENABLED:
+				setInitialEnabled(INITIAL_ENABLED_EDEFAULT);
+				return;
+			case CoreModelPackage.YFIELD__ENABLED:
+				setEnabled(ENABLED_EDEFAULT);
+				return;
+			case CoreModelPackage.YFIELD__TAB_INDEX:
+				setTabIndex(TAB_INDEX_EDEFAULT);
+				return;
+			case CoreModelPackage.YFIELD__VALIDATORS:
+				getValidators().clear();
+				return;
+			case CoreModelPackage.YFIELD__INTERNAL_VALIDATORS:
+				getInternalValidators().clear();
+				return;
+			case CoreModelPackage.YFIELD__CONVERTER:
+				setConverter((YConverter)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YFIELD__INITIAL_EDITABLE:
+				return initialEditable != INITIAL_EDITABLE_EDEFAULT;
+			case CoreModelPackage.YFIELD__EDITABLE:
+				return editable != EDITABLE_EDEFAULT;
+			case CoreModelPackage.YFIELD__INITIAL_ENABLED:
+				return initialEnabled != INITIAL_ENABLED_EDEFAULT;
+			case CoreModelPackage.YFIELD__ENABLED:
+				return enabled != ENABLED_EDEFAULT;
+			case CoreModelPackage.YFIELD__TAB_INDEX:
+				return tabIndex != TAB_INDEX_EDEFAULT;
+			case CoreModelPackage.YFIELD__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+			case CoreModelPackage.YFIELD__INTERNAL_VALIDATORS:
+				return internalValidators != null && !internalValidators.isEmpty();
+			case CoreModelPackage.YFIELD__CONVERTER:
+				return converter != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YEditable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YFIELD__INITIAL_EDITABLE: return CoreModelPackage.YEDITABLE__INITIAL_EDITABLE;
+				case CoreModelPackage.YFIELD__EDITABLE: return CoreModelPackage.YEDITABLE__EDITABLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YEnable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YFIELD__INITIAL_ENABLED: return CoreModelPackage.YENABLE__INITIAL_ENABLED;
+				case CoreModelPackage.YFIELD__ENABLED: return CoreModelPackage.YENABLE__ENABLED;
+				default: return -1;
+			}
+		}
+		if (baseClass == YFocusable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YFIELD__TAB_INDEX: return CoreModelPackage.YFOCUSABLE__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YEditable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YEDITABLE__INITIAL_EDITABLE: return CoreModelPackage.YFIELD__INITIAL_EDITABLE;
+				case CoreModelPackage.YEDITABLE__EDITABLE: return CoreModelPackage.YFIELD__EDITABLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YEnable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YENABLE__INITIAL_ENABLED: return CoreModelPackage.YFIELD__INITIAL_ENABLED;
+				case CoreModelPackage.YENABLE__ENABLED: return CoreModelPackage.YFIELD__ENABLED;
+				default: return -1;
+			}
+		}
+		if (baseClass == YFocusable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YFOCUSABLE__TAB_INDEX: return CoreModelPackage.YFIELD__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (initialEditable: ");
+		result.append(initialEditable);
+		result.append(", editable: ");
+		result.append(editable);
+		result.append(", initialEnabled: ");
+		result.append(initialEnabled);
+		result.append(", enabled: ");
+		result.append(enabled);
+		result.append(", tabIndex: ");
+		result.append(tabIndex);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public void setLabel(String label) {
+		// nothing to do
+
+	}
+
+	@Override
+	public void setLabelI18nKey(String i18nKey) {
+		// nothing to do
+
+	}
+
+	@Override
+	public YValueBindingEndpoint createEditableEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YEDITABLE__EDITABLE);
+		return endpoint;
+	}
+
+	@Override
+	public YValueBindingEndpoint createEnabledEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YENABLE__ENABLED);
+		return endpoint;
+	}
+	
+	@Override
+	public String getLabel() {
+		return "";
+	}
+
+	@Override
+	public String getLabelI18nKey() {
+		return "";
+	}
+
+} // YUiFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YHelperLayoutImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YHelperLayoutImpl.java
new file mode 100644
index 0000000..deeefa5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YHelperLayoutImpl.java
@@ -0,0 +1,170 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout;
+
+/**
+ * <!-- begin-user-doc --> 
+ * 
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YHelperLayoutImpl#getVirtualElements <em>Virtual Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YHelperLayoutImpl extends YLayoutImpl implements YHelperLayout {
+	/**
+	 * The cached value of the '{@link #getVirtualElements() <em>Virtual Elements</em>}' reference list.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getVirtualElements()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YEmbeddable> virtualElements;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YHelperLayoutImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YHELPER_LAYOUT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	public EList<YEmbeddable> getVirtualElements() {
+		if (virtualElements == null) {
+			virtualElements = new EObjectResolvingEList<YEmbeddable>(YEmbeddable.class, this, CoreModelPackage.YHELPER_LAYOUT__VIRTUAL_ELEMENTS);
+		}
+		return virtualElements;
+	}
+
+	/**
+	 * This method is responsible to delegate its call to virtual elements. A
+	 * virtual element is an element that is <b>NOT</b> contained by its parent.
+	 * For instance see CxGrid#column#editorfield. See {@link YHelperLayoutImpl}
+	 * .
+	 */
+	@Override
+	public EList<YEmbeddable> getElements() {
+		return getVirtualElements();
+	}
+
+	@Override
+	public boolean addElement(YEmbeddable element) {
+		return getVirtualElements().add(element);
+	}
+
+	@Override
+	public void insertElement(int index, YEmbeddable element) {
+		getVirtualElements().add(index, element);
+	}
+
+	@Override
+	public void moveElement(int newPosition, YEmbeddable element) {
+		getVirtualElements().move(newPosition, element);
+	}
+
+	@Override
+	public boolean removeElement(YEmbeddable element) {
+		return getVirtualElements().remove(element);
+	}
+
+	@Override
+	public YEmbeddable getElement(int index) {
+		return getVirtualElements().get(index);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YHELPER_LAYOUT__VIRTUAL_ELEMENTS:
+				return getVirtualElements();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YHELPER_LAYOUT__VIRTUAL_ELEMENTS:
+				getVirtualElements().clear();
+				getVirtualElements().addAll((Collection<? extends YEmbeddable>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YHELPER_LAYOUT__VIRTUAL_ELEMENTS:
+				getVirtualElements().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YHELPER_LAYOUT__VIRTUAL_ELEMENTS:
+				return virtualElements != null && !virtualElements.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // YHelperLayoutImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YKeyStrokeDefinitionImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YKeyStrokeDefinitionImpl.java
new file mode 100644
index 0000000..b0a2422
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YKeyStrokeDefinitionImpl.java
@@ -0,0 +1,424 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyCode;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
+import org.eclipse.osbp.ecview.core.common.model.core.YModifierKey;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YKey Stroke Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl#getKeyCode <em>Key Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YKeyStrokeDefinitionImpl#getModifierKeys <em>Modifier Keys</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YKeyStrokeDefinitionImpl extends MinimalEObjectImpl.Container implements YKeyStrokeDefinition {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getKeyCode() <em>Key Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getKeyCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YKeyCode KEY_CODE_EDEFAULT = YKeyCode.ENTER;
+
+	/**
+	 * The cached value of the '{@link #getKeyCode() <em>Key Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getKeyCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected YKeyCode keyCode = KEY_CODE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getModifierKeys() <em>Modifier Keys</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getModifierKeys()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YModifierKey> modifierKeys;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YKeyStrokeDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YKEY_STROKE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YKEY_STROKE_DEFINITION__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YKEY_STROKE_DEFINITION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YKEY_STROKE_DEFINITION__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YKEY_STROKE_DEFINITION__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YKeyCode getKeyCode() {
+		return keyCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setKeyCode(YKeyCode newKeyCode) {
+		YKeyCode oldKeyCode = keyCode;
+		keyCode = newKeyCode == null ? KEY_CODE_EDEFAULT : newKeyCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YKEY_STROKE_DEFINITION__KEY_CODE, oldKeyCode, keyCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YModifierKey> getModifierKeys() {
+		if (modifierKeys == null) {
+			modifierKeys = new EDataTypeUniqueEList<YModifierKey>(YModifierKey.class, this, CoreModelPackage.YKEY_STROKE_DEFINITION__MODIFIER_KEYS);
+		}
+		return modifierKeys;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YView getView() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__TAGS:
+				return getTags();
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__ID:
+				return getId();
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__NAME:
+				return getName();
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__KEY_CODE:
+				return getKeyCode();
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__MODIFIER_KEYS:
+				return getModifierKeys();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__KEY_CODE:
+				setKeyCode((YKeyCode)newValue);
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__MODIFIER_KEYS:
+				getModifierKeys().clear();
+				getModifierKeys().addAll((Collection<? extends YModifierKey>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__KEY_CODE:
+				setKeyCode(KEY_CODE_EDEFAULT);
+				return;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__MODIFIER_KEYS:
+				getModifierKeys().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__KEY_CODE:
+				return keyCode != KEY_CODE_EDEFAULT;
+			case CoreModelPackage.YKEY_STROKE_DEFINITION__MODIFIER_KEYS:
+				return modifierKeys != null && !modifierKeys.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", keyCode: ");
+		result.append(keyCode);
+		result.append(", modifierKeys: ");
+		result.append(modifierKeys);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YKeyStrokeDefinitionImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YLayoutImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YLayoutImpl.java
new file mode 100644
index 0000000..168109c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YLayoutImpl.java
@@ -0,0 +1,470 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Layout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl#isInitialEditable <em>Initial Editable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl#isEditable <em>Editable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl#isInitialEnabled <em>Initial Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl#isEnabled <em>Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YLayoutImpl extends YEmbeddableImpl implements YLayout {
+	/**
+	 * The default value of the '{@link #isInitialEditable() <em>Initial Editable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIAL_EDITABLE_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isInitialEditable() <em>Initial Editable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initialEditable = INITIAL_EDITABLE_EDEFAULT;
+	/**
+	 * The default value of the '{@link #isEditable() <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EDITABLE_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isEditable() <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean editable = EDITABLE_EDEFAULT;
+	/**
+	 * The default value of the '{@link #isInitialEnabled() <em>Initial Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIAL_ENABLED_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isInitialEnabled() <em>Initial Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initialEnabled = INITIAL_ENABLED_EDEFAULT;
+	/**
+	 * The default value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ENABLED_EDEFAULT = true;
+	/**
+	 * The cached value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean enabled = ENABLED_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getElements() <em>Elements</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getElements()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YEmbeddable> elements;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YLayoutImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YLAYOUT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInitialEditable() {
+		return initialEditable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitialEditable(boolean newInitialEditable) {
+		boolean oldInitialEditable = initialEditable;
+		initialEditable = newInitialEditable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YLAYOUT__INITIAL_EDITABLE, oldInitialEditable, initialEditable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEditable() {
+		return editable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEditable(boolean newEditable) {
+		boolean oldEditable = editable;
+		editable = newEditable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YLAYOUT__EDITABLE, oldEditable, editable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInitialEnabled() {
+		return initialEnabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitialEnabled(boolean newInitialEnabled) {
+		boolean oldInitialEnabled = initialEnabled;
+		initialEnabled = newInitialEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YLAYOUT__INITIAL_ENABLED, oldInitialEnabled, initialEnabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEnabled(boolean newEnabled) {
+		boolean oldEnabled = enabled;
+		enabled = newEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YLAYOUT__ENABLED, oldEnabled, enabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YEmbeddable> getElements() {
+		if (elements == null) {
+			elements = new EObjectContainmentEList.Resolving<YEmbeddable>(YEmbeddable.class, this, CoreModelPackage.YLAYOUT__ELEMENTS);
+		}
+		return elements;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YLAYOUT__ELEMENTS:
+				return ((InternalEList<?>)getElements()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YLAYOUT__INITIAL_EDITABLE:
+				return isInitialEditable();
+			case CoreModelPackage.YLAYOUT__EDITABLE:
+				return isEditable();
+			case CoreModelPackage.YLAYOUT__INITIAL_ENABLED:
+				return isInitialEnabled();
+			case CoreModelPackage.YLAYOUT__ENABLED:
+				return isEnabled();
+			case CoreModelPackage.YLAYOUT__ELEMENTS:
+				return getElements();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YLAYOUT__INITIAL_EDITABLE:
+				setInitialEditable((Boolean)newValue);
+				return;
+			case CoreModelPackage.YLAYOUT__EDITABLE:
+				setEditable((Boolean)newValue);
+				return;
+			case CoreModelPackage.YLAYOUT__INITIAL_ENABLED:
+				setInitialEnabled((Boolean)newValue);
+				return;
+			case CoreModelPackage.YLAYOUT__ENABLED:
+				setEnabled((Boolean)newValue);
+				return;
+			case CoreModelPackage.YLAYOUT__ELEMENTS:
+				getElements().clear();
+				getElements().addAll((Collection<? extends YEmbeddable>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YLAYOUT__INITIAL_EDITABLE:
+				setInitialEditable(INITIAL_EDITABLE_EDEFAULT);
+				return;
+			case CoreModelPackage.YLAYOUT__EDITABLE:
+				setEditable(EDITABLE_EDEFAULT);
+				return;
+			case CoreModelPackage.YLAYOUT__INITIAL_ENABLED:
+				setInitialEnabled(INITIAL_ENABLED_EDEFAULT);
+				return;
+			case CoreModelPackage.YLAYOUT__ENABLED:
+				setEnabled(ENABLED_EDEFAULT);
+				return;
+			case CoreModelPackage.YLAYOUT__ELEMENTS:
+				getElements().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YLAYOUT__INITIAL_EDITABLE:
+				return initialEditable != INITIAL_EDITABLE_EDEFAULT;
+			case CoreModelPackage.YLAYOUT__EDITABLE:
+				return editable != EDITABLE_EDEFAULT;
+			case CoreModelPackage.YLAYOUT__INITIAL_ENABLED:
+				return initialEnabled != INITIAL_ENABLED_EDEFAULT;
+			case CoreModelPackage.YLAYOUT__ENABLED:
+				return enabled != ENABLED_EDEFAULT;
+			case CoreModelPackage.YLAYOUT__ELEMENTS:
+				return elements != null && !elements.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YEditable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YLAYOUT__INITIAL_EDITABLE: return CoreModelPackage.YEDITABLE__INITIAL_EDITABLE;
+				case CoreModelPackage.YLAYOUT__EDITABLE: return CoreModelPackage.YEDITABLE__EDITABLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YEnable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YLAYOUT__INITIAL_ENABLED: return CoreModelPackage.YENABLE__INITIAL_ENABLED;
+				case CoreModelPackage.YLAYOUT__ENABLED: return CoreModelPackage.YENABLE__ENABLED;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YEditable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YEDITABLE__INITIAL_EDITABLE: return CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+				case CoreModelPackage.YEDITABLE__EDITABLE: return CoreModelPackage.YLAYOUT__EDITABLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YEnable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YENABLE__INITIAL_ENABLED: return CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+				case CoreModelPackage.YENABLE__ENABLED: return CoreModelPackage.YLAYOUT__ENABLED;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (initialEditable: ");
+		result.append(initialEditable);
+		result.append(", editable: ");
+		result.append(editable);
+		result.append(", initialEnabled: ");
+		result.append(initialEnabled);
+		result.append(", enabled: ");
+		result.append(enabled);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public boolean addElement(YEmbeddable element) {
+		return getElements().add(element);
+	}
+
+	@Override
+	public void insertElement(int index, YEmbeddable element) {
+		getElements().add(Math.min(getElements().size(), index), element);
+	}
+
+	@Override
+	public void moveElement(int newPosition, YEmbeddable element) {
+		getElements().move(newPosition, element);
+	}
+
+	@Override
+	public boolean removeElement(YEmbeddable element) {
+		return getElements().remove(element);
+	}
+
+	@Override
+	public int getIndex(YEmbeddable element) {
+		return getElements().indexOf(element);
+	}
+
+	@Override
+	public YEmbeddable getElement(int index) {
+		return getElements().get(index);
+	}
+
+	@Override
+	public void setLabel(String label) {
+		// nothing to do
+		
+	}
+
+	@Override
+	public void setLabelI18nKey(String i18nKey) {
+		// nothing to do
+		
+	}
+	
+	@Override
+	public String getLabel() {
+		return "";
+	}
+
+	@Override
+	public String getLabelI18nKey() {
+		return "";
+	}
+
+} // YUiLayoutImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YOpenDialogCommandImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YOpenDialogCommandImpl.java
new file mode 100644
index 0000000..a14d6ac
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YOpenDialogCommandImpl.java
@@ -0,0 +1,488 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YOpen Dialog Command</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl#getDialog <em>Dialog</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YOpenDialogCommandImpl#getTrigger <em>Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YOpenDialogCommandImpl extends MinimalEObjectImpl.Container implements YOpenDialogCommand {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The cached value of the '{@link #getDialog() <em>Dialog</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDialog()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDialog dialog;
+
+	/**
+	 * The default value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object TRIGGER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object trigger = TRIGGER_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YOpenDialogCommandImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YOPEN_DIALOG_COMMAND;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YOPEN_DIALOG_COMMAND__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YOPEN_DIALOG_COMMAND__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YOPEN_DIALOG_COMMAND__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YOPEN_DIALOG_COMMAND__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDialog getDialog() {
+		if (dialog != null && dialog.eIsProxy()) {
+			InternalEObject oldDialog = (InternalEObject)dialog;
+			dialog = (YDialog)eResolveProxy(oldDialog);
+			if (dialog != oldDialog) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YOPEN_DIALOG_COMMAND__DIALOG, oldDialog, dialog));
+			}
+		}
+		return dialog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDialog basicGetDialog() {
+		return dialog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDialog(YDialog newDialog) {
+		YDialog oldDialog = dialog;
+		dialog = newDialog;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YOPEN_DIALOG_COMMAND__DIALOG, oldDialog, dialog));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getTrigger() {
+		return trigger;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTrigger(Object newTrigger) {
+		Object oldTrigger = trigger;
+		trigger = newTrigger;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YOPEN_DIALOG_COMMAND__TRIGGER, oldTrigger, trigger));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YView getViewGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	public YView getView() {
+		return findViewGeneric(eContainer());
+	}
+
+	protected YView findViewGeneric(EObject container) {
+		if (container == null) {
+			return null;
+		}
+		if (container instanceof YView) {
+			return (YView) container;
+		} else if (container instanceof YLayout) {
+			return ((YLayout) container).getView();
+		} else {
+			EObject parent = container.eContainer();
+			return findViewGeneric(parent);
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YECViewModelValueBindingEndpoint createTriggerDialogEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+	
+	public YECViewModelValueBindingEndpoint createTriggerDialogEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YOPEN_DIALOG_COMMAND__TRIGGER);
+		return endpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TAGS:
+				return getTags();
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__ID:
+				return getId();
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__NAME:
+				return getName();
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__DIALOG:
+				if (resolve) return getDialog();
+				return basicGetDialog();
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TRIGGER:
+				return getTrigger();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__DIALOG:
+				setDialog((YDialog)newValue);
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TRIGGER:
+				setTrigger(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__DIALOG:
+				setDialog((YDialog)null);
+				return;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TRIGGER:
+				setTrigger(TRIGGER_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__DIALOG:
+				return dialog != null;
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND__TRIGGER:
+				return TRIGGER_EDEFAULT == null ? trigger != null : !TRIGGER_EDEFAULT.equals(trigger);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", trigger: ");
+		result.append(trigger);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YOpenDialogCommandImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YSendEventCommandImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YSendEventCommandImpl.java
new file mode 100644
index 0000000..4393cbf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YSendEventCommandImpl.java
@@ -0,0 +1,623 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YSend Event Command</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl#getEventTopic <em>Event Topic</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl#getMessage <em>Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl#getTrigger <em>Trigger</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YSendEventCommandImpl#isAutoTrigger <em>Auto Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YSendEventCommandImpl extends MinimalEObjectImpl.Container
+		implements YSendEventCommand {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getEventTopic() <em>Event Topic</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEventTopic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EVENT_TOPIC_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEventTopic() <em>Event Topic</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEventTopic()
+	 * @generated
+	 * @ordered
+	 */
+	protected String eventTopic = EVENT_TOPIC_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMessage() <em>Message</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object MESSAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getMessage() <em>Message</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object message = MESSAGE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object TRIGGER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object trigger = TRIGGER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAutoTrigger() <em>Auto Trigger</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isAutoTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean AUTO_TRIGGER_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isAutoTrigger() <em>Auto Trigger</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isAutoTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean autoTrigger = AUTO_TRIGGER_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSendEventCommandImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YSEND_EVENT_COMMAND;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YSEND_EVENT_COMMAND__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YSEND_EVENT_COMMAND__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YSEND_EVENT_COMMAND__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YSEND_EVENT_COMMAND__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getEventTopic() {
+		return eventTopic;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEventTopic(String newEventTopic) {
+		String oldEventTopic = eventTopic;
+		eventTopic = newEventTopic;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YSEND_EVENT_COMMAND__EVENT_TOPIC, oldEventTopic, eventTopic));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getMessage() {
+		return message;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMessage(Object newMessage) {
+		Object oldMessage = message;
+		message = newMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YSEND_EVENT_COMMAND__MESSAGE, oldMessage, message));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getTrigger() {
+		return trigger;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTrigger(Object newTrigger) {
+		Object oldTrigger = trigger;
+		trigger = newTrigger;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YSEND_EVENT_COMMAND__TRIGGER, oldTrigger, trigger));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isAutoTrigger() {
+		return autoTrigger;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAutoTrigger(boolean newAutoTrigger) {
+		boolean oldAutoTrigger = autoTrigger;
+		autoTrigger = newAutoTrigger;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YSEND_EVENT_COMMAND__AUTO_TRIGGER, oldAutoTrigger, autoTrigger));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YView getViewGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	public YView getView() {
+		return findViewGeneric(eContainer());
+	}
+
+	protected YView findViewGeneric(EObject container) {
+		if (container == null) {
+			return null;
+		}
+		if (container instanceof YView) {
+			return (YView) container;
+		} else if (container instanceof YLayout) {
+			return ((YLayout) container).getView();
+		} else {
+			EObject parent = container.eContainer();
+			return findViewGeneric(parent);
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YECViewModelValueBindingEndpoint createTriggerEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YECViewModelValueBindingEndpoint createMessageEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YECViewModelValueBindingEndpoint createAutoTriggerEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YECViewModelValueBindingEndpoint createEventTopicEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public YECViewModelValueBindingEndpoint createTriggerEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YSEND_EVENT_COMMAND__TRIGGER);
+		return endpoint;
+
+	}
+
+	@Override
+	public YECViewModelValueBindingEndpoint createMessageEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YSEND_EVENT_COMMAND__MESSAGE);
+		return endpoint;
+
+	}
+
+	@Override
+	public YECViewModelValueBindingEndpoint createAutoTriggerEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YSEND_EVENT_COMMAND__AUTO_TRIGGER);
+		return endpoint;
+	}
+
+	@Override
+	public YECViewModelValueBindingEndpoint createEventTopicEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YSEND_EVENT_COMMAND__EVENT_TOPIC);
+		return endpoint;
+
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YSEND_EVENT_COMMAND__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TAGS:
+				return getTags();
+			case CoreModelPackage.YSEND_EVENT_COMMAND__ID:
+				return getId();
+			case CoreModelPackage.YSEND_EVENT_COMMAND__NAME:
+				return getName();
+			case CoreModelPackage.YSEND_EVENT_COMMAND__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YSEND_EVENT_COMMAND__EVENT_TOPIC:
+				return getEventTopic();
+			case CoreModelPackage.YSEND_EVENT_COMMAND__MESSAGE:
+				return getMessage();
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TRIGGER:
+				return getTrigger();
+			case CoreModelPackage.YSEND_EVENT_COMMAND__AUTO_TRIGGER:
+				return isAutoTrigger();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__EVENT_TOPIC:
+				setEventTopic((String)newValue);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__MESSAGE:
+				setMessage(newValue);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TRIGGER:
+				setTrigger(newValue);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__AUTO_TRIGGER:
+				setAutoTrigger((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__EVENT_TOPIC:
+				setEventTopic(EVENT_TOPIC_EDEFAULT);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__MESSAGE:
+				setMessage(MESSAGE_EDEFAULT);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TRIGGER:
+				setTrigger(TRIGGER_EDEFAULT);
+				return;
+			case CoreModelPackage.YSEND_EVENT_COMMAND__AUTO_TRIGGER:
+				setAutoTrigger(AUTO_TRIGGER_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YSEND_EVENT_COMMAND__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YSEND_EVENT_COMMAND__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YSEND_EVENT_COMMAND__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YSEND_EVENT_COMMAND__EVENT_TOPIC:
+				return EVENT_TOPIC_EDEFAULT == null ? eventTopic != null : !EVENT_TOPIC_EDEFAULT.equals(eventTopic);
+			case CoreModelPackage.YSEND_EVENT_COMMAND__MESSAGE:
+				return MESSAGE_EDEFAULT == null ? message != null : !MESSAGE_EDEFAULT.equals(message);
+			case CoreModelPackage.YSEND_EVENT_COMMAND__TRIGGER:
+				return TRIGGER_EDEFAULT == null ? trigger != null : !TRIGGER_EDEFAULT.equals(trigger);
+			case CoreModelPackage.YSEND_EVENT_COMMAND__AUTO_TRIGGER:
+				return autoTrigger != AUTO_TRIGGER_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", eventTopic: ");
+		result.append(eventTopic);
+		result.append(", message: ");
+		result.append(message);
+		result.append(", trigger: ");
+		result.append(trigger);
+		result.append(", autoTrigger: ");
+		result.append(autoTrigger);
+		result.append(')');
+		return result.toString();
+	}
+
+} // YSendEventCommandImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YStringToStringMapImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YStringToStringMapImpl.java
new file mode 100644
index 0000000..f2a7fdd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YStringToStringMapImpl.java
@@ -0,0 +1,305 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.BasicEMap;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YString To String Map</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl#getTypedKey <em>Key</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl#getTypedValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YStringToStringMapImpl extends MinimalEObjectImpl.Container implements BasicEMap.Entry<String,String> {
+	/**
+	 * The default value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypedKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String KEY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypedKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected String key = KEY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypedValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypedValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypedValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypedValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YStringToStringMapImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YSTRING_TO_STRING_MAP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTypedKey() {
+		return key;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypedKey(String newKey) {
+		String oldKey = key;
+		key = newKey;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YSTRING_TO_STRING_MAP__KEY, oldKey, key));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTypedValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypedValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YSTRING_TO_STRING_MAP__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__KEY:
+				return getTypedKey();
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__VALUE:
+				return getTypedValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__KEY:
+				setTypedKey((String)newValue);
+				return;
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__VALUE:
+				setTypedValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__KEY:
+				setTypedKey(KEY_EDEFAULT);
+				return;
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__VALUE:
+				setTypedValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__KEY:
+				return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key);
+			case CoreModelPackage.YSTRING_TO_STRING_MAP__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (key: ");
+		result.append(key);
+		result.append(", value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected int hash = -1;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getHash() {
+		if (hash == -1) {
+			Object theKey = getKey();
+			hash = (theKey == null ? 0 : theKey.hashCode());
+		}
+		return hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHash(int hash) {
+		this.hash = hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getKey() {
+		return getTypedKey();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setKey(String key) {
+		setTypedKey(key);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getValue() {
+		return getTypedValue();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String setValue(String value) {
+		String oldValue = getValue();
+		setTypedValue(value);
+		return oldValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	public EMap<String, String> getEMap() {
+		EObject container = eContainer();
+		return container == null ? null : (EMap<String, String>)container.eGet(eContainmentFeature());
+	}
+
+} //YStringToStringMapImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YViewImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YViewImpl.java
new file mode 100644
index 0000000..e70678e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YViewImpl.java
@@ -0,0 +1,1698 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YDeviceType;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.YAuthorizationStore;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi View</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getCssClass <em>Css Class</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getCssID <em>Css ID</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#isMargin <em>Margin</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getRoot <em>Root</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getViewName <em>View Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getVersion <em>Version</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getBindingSet <em>Binding Set</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getBeanSlots <em>Bean Slots</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getCommandSet <em>Command Set</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getDialogs <em>Dialogs</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getDeviceType <em>Device Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getContentAlignment <em>Content Alignment</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getVisibilityProcessors <em>Visibility Processors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getTransientVisibilityProcessors <em>Transient Visibility Processors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getExposedActions <em>Exposed Actions</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getSharedStateGroup <em>Shared State Group</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getCategory <em>Category</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getInitialFocus <em>Initial Focus</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getCurrentFocus <em>Current Focus</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getDisabledElements <em>Disabled Elements</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewImpl#getAuthorizationStore <em>Authorization Store</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YViewImpl extends MinimalEObjectImpl.Container implements YView {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_CLASS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssClass = CSS_CLASS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCssID() <em>Css ID</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssID()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCssID() <em>Css ID</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssID()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssID = CSS_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARGIN_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean margin = MARGIN_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getRoot() <em>Root</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getRoot()
+	 * @generated
+	 * @ordered
+	 */
+	protected YViewSet root;
+
+	/**
+	 * The default value of the '{@link #getViewName() <em>View Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getViewName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VIEW_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getViewName() <em>View Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getViewName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String viewName = VIEW_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VERSION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected String version = VERSION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getContent() <em>Content</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable content;
+
+	/**
+	 * The cached value of the '{@link #getBindingSet() <em>Binding Set</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getBindingSet()
+	 * @generated
+	 * @ordered
+	 */
+	protected YBindingSet bindingSet;
+
+	/**
+	 * The cached value of the '{@link #getBeanSlots() <em>Bean Slots</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getBeanSlots()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YBeanSlot> beanSlots;
+
+	/**
+	 * The cached value of the '{@link #getCommandSet() <em>Command Set</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCommandSet()
+	 * @generated
+	 * @ordered
+	 */
+	protected YCommandSet commandSet;
+
+	/**
+	 * The cached value of the '{@link #getDialogs() <em>Dialogs</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDialogs()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YDialog> dialogs;
+
+	/**
+	 * The default value of the '{@link #getDeviceType() <em>Device Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDeviceType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YDeviceType DEVICE_TYPE_EDEFAULT = YDeviceType.IDE;
+
+	/**
+	 * The cached value of the '{@link #getDeviceType() <em>Device Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDeviceType()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDeviceType deviceType = DEVICE_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getContentAlignment() <em>Content Alignment</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getContentAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YAlignment CONTENT_ALIGNMENT_EDEFAULT = YAlignment.FILL_FILL;
+
+	/**
+	 * The cached value of the '{@link #getContentAlignment() <em>Content Alignment</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getContentAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected YAlignment contentAlignment = CONTENT_ALIGNMENT_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getVisibilityProcessors()
+	 * <em>Visibility Processors</em>}' containment reference list. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getVisibilityProcessors()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YVisibilityProcessor> visibilityProcessors;
+
+	/**
+	 * The cached value of the '{@link #getTransientVisibilityProcessors()
+	 * <em>Transient Visibility Processors</em>}' reference list. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getTransientVisibilityProcessors()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YVisibilityProcessor> transientVisibilityProcessors;
+
+	/**
+	 * The cached value of the '{@link #getExposedActions()
+	 * <em>Exposed Actions</em>}' containment reference list. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getExposedActions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YExposedAction> exposedActions;
+
+	/**
+	 * The default value of the '{@link #getSharedStateGroup() <em>Shared State Group</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSharedStateGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SHARED_STATE_GROUP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSharedStateGroup() <em>Shared State Group</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSharedStateGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sharedStateGroup = SHARED_STATE_GROUP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCategory() <em>Category</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCategory()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CATEGORY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCategory() <em>Category</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCategory()
+	 * @generated
+	 * @ordered
+	 */
+	protected String category = CATEGORY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getInitialFocus() <em>Initial Focus</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getInitialFocus()
+	 * @generated
+	 * @ordered
+	 */
+	protected YFocusable initialFocus;
+
+	/**
+	 * The cached value of the '{@link #getCurrentFocus() <em>Current Focus</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getCurrentFocus()
+	 * @generated
+	 * @ordered
+	 */
+	protected YFocusable currentFocus;
+
+	/**
+	 * The cached value of the '{@link #getDisabledElements() <em>Disabled Elements</em>}' reference list.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDisabledElements()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YEmbeddable> disabledElements;
+
+	/**
+	 * The cached value of the '{@link #getAuthorizationStore() <em>Authorization Store</em>}' containment reference.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @see #getAuthorizationStore()
+	 * @generated
+	 * @ordered
+	 */
+	protected YAuthorizationStore authorizationStore;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YViewImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YVIEW;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YVIEW__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YVIEW__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCssClass() {
+		return cssClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCssClass(String newCssClass) {
+		String oldCssClass = cssClass;
+		cssClass = newCssClass;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__CSS_CLASS, oldCssClass, cssClass));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCssID() {
+		return cssID;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCssID(String newCssID) {
+		String oldCssID = cssID;
+		cssID = newCssID;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__CSS_ID, oldCssID, cssID));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getViewName() {
+		return viewName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setViewName(String newViewName) {
+		String oldViewName = viewName;
+		viewName = newViewName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__VIEW_NAME, oldViewName, viewName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getVersion() {
+		return version;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setVersion(String newVersion) {
+		String oldVersion = version;
+		version = newVersion;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__VERSION, oldVersion, version));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEmbeddable getContent() {
+		if (content != null && content.eIsProxy()) {
+			InternalEObject oldContent = (InternalEObject)content;
+			content = (YEmbeddable)eResolveProxy(oldContent);
+			if (content != oldContent) {
+				InternalEObject newContent = (InternalEObject)content;
+				NotificationChain msgs = oldContent.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__CONTENT, null, null);
+				if (newContent.eInternalContainer() == null) {
+					msgs = newContent.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__CONTENT, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YVIEW__CONTENT, oldContent, content));
+			}
+		}
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEmbeddable basicGetContent() {
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetContent(YEmbeddable newContent,
+			NotificationChain msgs) {
+		YEmbeddable oldContent = content;
+		content = newContent;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__CONTENT, oldContent, newContent);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContent(YEmbeddable newContent) {
+		if (newContent != content) {
+			NotificationChain msgs = null;
+			if (content != null)
+				msgs = ((InternalEObject)content).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__CONTENT, null, msgs);
+			if (newContent != null)
+				msgs = ((InternalEObject)newContent).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__CONTENT, null, msgs);
+			msgs = basicSetContent(newContent, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__CONTENT, newContent, newContent));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingSet getBindingSet() {
+		if (bindingSet != null && bindingSet.eIsProxy()) {
+			InternalEObject oldBindingSet = (InternalEObject)bindingSet;
+			bindingSet = (YBindingSet)eResolveProxy(oldBindingSet);
+			if (bindingSet != oldBindingSet) {
+				InternalEObject newBindingSet = (InternalEObject)bindingSet;
+				NotificationChain msgs = oldBindingSet.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__BINDING_SET, null, null);
+				if (newBindingSet.eInternalContainer() == null) {
+					msgs = newBindingSet.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__BINDING_SET, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YVIEW__BINDING_SET, oldBindingSet, bindingSet));
+			}
+		}
+		return bindingSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingSet basicGetBindingSet() {
+		return bindingSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBindingSet(YBindingSet newBindingSet,
+			NotificationChain msgs) {
+		YBindingSet oldBindingSet = bindingSet;
+		bindingSet = newBindingSet;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__BINDING_SET, oldBindingSet, newBindingSet);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBindingSet(YBindingSet newBindingSet) {
+		if (newBindingSet != bindingSet) {
+			NotificationChain msgs = null;
+			if (bindingSet != null)
+				msgs = ((InternalEObject)bindingSet).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__BINDING_SET, null, msgs);
+			if (newBindingSet != null)
+				msgs = ((InternalEObject)newBindingSet).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__BINDING_SET, null, msgs);
+			msgs = basicSetBindingSet(newBindingSet, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__BINDING_SET, newBindingSet, newBindingSet));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YBeanSlot> getBeanSlots() {
+		if (beanSlots == null) {
+			beanSlots = new EObjectContainmentEList.Resolving<YBeanSlot>(YBeanSlot.class, this, CoreModelPackage.YVIEW__BEAN_SLOTS);
+		}
+		return beanSlots;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YCommandSet getCommandSetGen() {
+		if (commandSet != null && commandSet.eIsProxy()) {
+			InternalEObject oldCommandSet = (InternalEObject)commandSet;
+			commandSet = (YCommandSet)eResolveProxy(oldCommandSet);
+			if (commandSet != oldCommandSet) {
+				InternalEObject newCommandSet = (InternalEObject)commandSet;
+				NotificationChain msgs = oldCommandSet.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__COMMAND_SET, null, null);
+				if (newCommandSet.eInternalContainer() == null) {
+					msgs = newCommandSet.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__COMMAND_SET, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YVIEW__COMMAND_SET, oldCommandSet, commandSet));
+			}
+		}
+		return commandSet;
+	}
+
+	public YCommandSet getCommandSet() {
+		YCommandSet commandSet = getCommandSetGen();
+		if (commandSet == null) {
+			commandSet = CoreModelFactory.eINSTANCE.createYCommandSet();
+			setCommandSet(commandSet);
+		}
+		return getCommandSetGen();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YCommandSet basicGetCommandSet() {
+		return commandSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetCommandSet(YCommandSet newCommandSet,
+			NotificationChain msgs) {
+		YCommandSet oldCommandSet = commandSet;
+		commandSet = newCommandSet;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__COMMAND_SET, oldCommandSet, newCommandSet);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCommandSet(YCommandSet newCommandSet) {
+		if (newCommandSet != commandSet) {
+			NotificationChain msgs = null;
+			if (commandSet != null)
+				msgs = ((InternalEObject)commandSet).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__COMMAND_SET, null, msgs);
+			if (newCommandSet != null)
+				msgs = ((InternalEObject)newCommandSet).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__COMMAND_SET, null, msgs);
+			msgs = basicSetCommandSet(newCommandSet, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__COMMAND_SET, newCommandSet, newCommandSet));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YDialog> getDialogs() {
+		if (dialogs == null) {
+			dialogs = new EObjectContainmentEList.Resolving<YDialog>(YDialog.class, this, CoreModelPackage.YVIEW__DIALOGS);
+		}
+		return dialogs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDeviceType getDeviceType() {
+		return deviceType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDeviceType(YDeviceType newDeviceType) {
+		YDeviceType oldDeviceType = deviceType;
+		deviceType = newDeviceType == null ? DEVICE_TYPE_EDEFAULT : newDeviceType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__DEVICE_TYPE, oldDeviceType, deviceType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YAlignment getContentAlignment() {
+		return contentAlignment;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContentAlignment(YAlignment newContentAlignment) {
+		YAlignment oldContentAlignment = contentAlignment;
+		contentAlignment = newContentAlignment == null ? CONTENT_ALIGNMENT_EDEFAULT : newContentAlignment;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__CONTENT_ALIGNMENT, oldContentAlignment, contentAlignment));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YVisibilityProcessor> getVisibilityProcessors() {
+		if (visibilityProcessors == null) {
+			visibilityProcessors = new EObjectContainmentEList.Resolving<YVisibilityProcessor>(YVisibilityProcessor.class, this, CoreModelPackage.YVIEW__VISIBILITY_PROCESSORS);
+		}
+		return visibilityProcessors;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YVisibilityProcessor> getTransientVisibilityProcessors() {
+		if (transientVisibilityProcessors == null) {
+			transientVisibilityProcessors = new EObjectResolvingEList<YVisibilityProcessor>(YVisibilityProcessor.class, this, CoreModelPackage.YVIEW__TRANSIENT_VISIBILITY_PROCESSORS);
+		}
+		return transientVisibilityProcessors;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YExposedAction> getExposedActions() {
+		if (exposedActions == null) {
+			exposedActions = new EObjectContainmentEList.Resolving<YExposedAction>(YExposedAction.class, this, CoreModelPackage.YVIEW__EXPOSED_ACTIONS);
+		}
+		return exposedActions;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSharedStateGroup() {
+		return sharedStateGroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSharedStateGroup(String newSharedStateGroup) {
+		String oldSharedStateGroup = sharedStateGroup;
+		sharedStateGroup = newSharedStateGroup;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__SHARED_STATE_GROUP, oldSharedStateGroup, sharedStateGroup));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCategory() {
+		return category;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCategory(String newCategory) {
+		String oldCategory = category;
+		category = newCategory;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__CATEGORY, oldCategory, category));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFocusable getInitialFocus() {
+		if (initialFocus != null && initialFocus.eIsProxy()) {
+			InternalEObject oldInitialFocus = (InternalEObject)initialFocus;
+			initialFocus = (YFocusable)eResolveProxy(oldInitialFocus);
+			if (initialFocus != oldInitialFocus) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YVIEW__INITIAL_FOCUS, oldInitialFocus, initialFocus));
+			}
+		}
+		return initialFocus;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFocusable basicGetInitialFocus() {
+		return initialFocus;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitialFocus(YFocusable newInitialFocus) {
+		YFocusable oldInitialFocus = initialFocus;
+		initialFocus = newInitialFocus;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__INITIAL_FOCUS, oldInitialFocus, initialFocus));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFocusable getCurrentFocus() {
+		if (currentFocus != null && currentFocus.eIsProxy()) {
+			InternalEObject oldCurrentFocus = (InternalEObject)currentFocus;
+			currentFocus = (YFocusable)eResolveProxy(oldCurrentFocus);
+			if (currentFocus != oldCurrentFocus) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YVIEW__CURRENT_FOCUS, oldCurrentFocus, currentFocus));
+			}
+		}
+		return currentFocus;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFocusable basicGetCurrentFocus() {
+		return currentFocus;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentFocus(YFocusable newCurrentFocus) {
+		YFocusable oldCurrentFocus = currentFocus;
+		currentFocus = newCurrentFocus;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__CURRENT_FOCUS, oldCurrentFocus, currentFocus));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YEmbeddable> getDisabledElements() {
+		if (disabledElements == null) {
+			disabledElements = new EObjectResolvingEList<YEmbeddable>(YEmbeddable.class, this, CoreModelPackage.YVIEW__DISABLED_ELEMENTS);
+		}
+		return disabledElements;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YAuthorizationStore getAuthorizationStore() {
+		if (authorizationStore != null && authorizationStore.eIsProxy()) {
+			InternalEObject oldAuthorizationStore = (InternalEObject)authorizationStore;
+			authorizationStore = (YAuthorizationStore)eResolveProxy(oldAuthorizationStore);
+			if (authorizationStore != oldAuthorizationStore) {
+				InternalEObject newAuthorizationStore = (InternalEObject)authorizationStore;
+				NotificationChain msgs = oldAuthorizationStore.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__AUTHORIZATION_STORE, null, null);
+				if (newAuthorizationStore.eInternalContainer() == null) {
+					msgs = newAuthorizationStore.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__AUTHORIZATION_STORE, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YVIEW__AUTHORIZATION_STORE, oldAuthorizationStore, authorizationStore));
+			}
+		}
+		return authorizationStore;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YAuthorizationStore basicGetAuthorizationStore() {
+		return authorizationStore;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetAuthorizationStore(
+			YAuthorizationStore newAuthorizationStore, NotificationChain msgs) {
+		YAuthorizationStore oldAuthorizationStore = authorizationStore;
+		authorizationStore = newAuthorizationStore;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__AUTHORIZATION_STORE, oldAuthorizationStore, newAuthorizationStore);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAuthorizationStore(YAuthorizationStore newAuthorizationStore) {
+		if (newAuthorizationStore != authorizationStore) {
+			NotificationChain msgs = null;
+			if (authorizationStore != null)
+				msgs = ((InternalEObject)authorizationStore).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__AUTHORIZATION_STORE, null, msgs);
+			if (newAuthorizationStore != null)
+				msgs = ((InternalEObject)newAuthorizationStore).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CoreModelPackage.YVIEW__AUTHORIZATION_STORE, null, msgs);
+			msgs = basicSetAuthorizationStore(newAuthorizationStore, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__AUTHORIZATION_STORE, newAuthorizationStore, newAuthorizationStore));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBindingSet getOrCreateBindingSetGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public YBindingSet getOrCreateBindingSet() {
+		YBindingSet bs = getBindingSet();
+		if (bs == null) {
+			bs = BindingFactory.eINSTANCE.createYBindingSet();
+			setBindingSet(bs);
+		}
+		return getBindingSet();
+	}
+
+	public void applyAlignment(YEmbeddable child, YAlignment alignment) {
+		setContentAlignment(alignment);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMargin() {
+		return margin;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMargin(boolean newMargin) {
+		boolean oldMargin = margin;
+		margin = newMargin;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__MARGIN, oldMargin, margin));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YViewSet getRootGen() {
+		if (root != null && root.eIsProxy()) {
+			InternalEObject oldRoot = (InternalEObject)root;
+			root = (YViewSet)eResolveProxy(oldRoot);
+			if (root != oldRoot) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CoreModelPackage.YVIEW__ROOT, oldRoot, root));
+			}
+		}
+		return root;
+	}
+
+	/**
+	 * Overrides super type to ensure bidirectional proxy resolving
+	 */
+	@Override
+	public YViewSet getRoot() {
+		if (root != null && root.eIsProxy()) {
+			InternalEObject oldRoot = (InternalEObject) root;
+			YViewSet oldViewSet = (YViewSet) oldRoot;
+			root = (YViewSet) eResolveProxy(oldRoot);
+			if (root != oldRoot) {
+
+				// ATENTION: inverse add must be called since bidirectional
+				// references uses proxy resolution for lazy linking. And the
+				// views added to proxy must be added to new superType
+				for (YView yView : oldViewSet.getViews()) {
+					((InternalEObject) root).eInverseAdd(
+							(InternalEObject) yView,
+							CoreModelPackage.YVIEW_SET__VIEWS, YView.class,
+							null);
+				}
+
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							CoreModelPackage.YVIEW__ROOT, oldRoot, root));
+			}
+		}
+		return root;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YViewSet basicGetRoot() {
+		return root;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetRoot(YViewSet newRoot,
+			NotificationChain msgs) {
+		YViewSet oldRoot = root;
+		root = newRoot;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__ROOT, oldRoot, newRoot);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRoot(YViewSet newRoot) {
+		if (newRoot != root) {
+			NotificationChain msgs = null;
+			if (root != null)
+				msgs = ((InternalEObject)root).eInverseRemove(this, CoreModelPackage.YVIEW_SET__VIEWS, YViewSet.class, msgs);
+			if (newRoot != null)
+				msgs = ((InternalEObject)newRoot).eInverseAdd(this, CoreModelPackage.YVIEW_SET__VIEWS, YViewSet.class, msgs);
+			msgs = basicSetRoot(newRoot, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW__ROOT, newRoot, newRoot));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW__ROOT:
+				if (root != null)
+					msgs = ((InternalEObject)root).eInverseRemove(this, CoreModelPackage.YVIEW_SET__VIEWS, YViewSet.class, msgs);
+				return basicSetRoot((YViewSet)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YVIEW__ROOT:
+				return basicSetRoot(null, msgs);
+			case CoreModelPackage.YVIEW__CONTENT:
+				return basicSetContent(null, msgs);
+			case CoreModelPackage.YVIEW__BINDING_SET:
+				return basicSetBindingSet(null, msgs);
+			case CoreModelPackage.YVIEW__BEAN_SLOTS:
+				return ((InternalEList<?>)getBeanSlots()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YVIEW__COMMAND_SET:
+				return basicSetCommandSet(null, msgs);
+			case CoreModelPackage.YVIEW__DIALOGS:
+				return ((InternalEList<?>)getDialogs()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YVIEW__VISIBILITY_PROCESSORS:
+				return ((InternalEList<?>)getVisibilityProcessors()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YVIEW__EXPOSED_ACTIONS:
+				return ((InternalEList<?>)getExposedActions()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YVIEW__AUTHORIZATION_STORE:
+				return basicSetAuthorizationStore(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW__TAGS:
+				return getTags();
+			case CoreModelPackage.YVIEW__ID:
+				return getId();
+			case CoreModelPackage.YVIEW__NAME:
+				return getName();
+			case CoreModelPackage.YVIEW__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YVIEW__CSS_CLASS:
+				return getCssClass();
+			case CoreModelPackage.YVIEW__CSS_ID:
+				return getCssID();
+			case CoreModelPackage.YVIEW__MARGIN:
+				return isMargin();
+			case CoreModelPackage.YVIEW__ROOT:
+				if (resolve) return getRoot();
+				return basicGetRoot();
+			case CoreModelPackage.YVIEW__VIEW_NAME:
+				return getViewName();
+			case CoreModelPackage.YVIEW__VERSION:
+				return getVersion();
+			case CoreModelPackage.YVIEW__CONTENT:
+				if (resolve) return getContent();
+				return basicGetContent();
+			case CoreModelPackage.YVIEW__BINDING_SET:
+				if (resolve) return getBindingSet();
+				return basicGetBindingSet();
+			case CoreModelPackage.YVIEW__BEAN_SLOTS:
+				return getBeanSlots();
+			case CoreModelPackage.YVIEW__COMMAND_SET:
+				if (resolve) return getCommandSet();
+				return basicGetCommandSet();
+			case CoreModelPackage.YVIEW__DIALOGS:
+				return getDialogs();
+			case CoreModelPackage.YVIEW__DEVICE_TYPE:
+				return getDeviceType();
+			case CoreModelPackage.YVIEW__CONTENT_ALIGNMENT:
+				return getContentAlignment();
+			case CoreModelPackage.YVIEW__VISIBILITY_PROCESSORS:
+				return getVisibilityProcessors();
+			case CoreModelPackage.YVIEW__TRANSIENT_VISIBILITY_PROCESSORS:
+				return getTransientVisibilityProcessors();
+			case CoreModelPackage.YVIEW__EXPOSED_ACTIONS:
+				return getExposedActions();
+			case CoreModelPackage.YVIEW__SHARED_STATE_GROUP:
+				return getSharedStateGroup();
+			case CoreModelPackage.YVIEW__CATEGORY:
+				return getCategory();
+			case CoreModelPackage.YVIEW__INITIAL_FOCUS:
+				if (resolve) return getInitialFocus();
+				return basicGetInitialFocus();
+			case CoreModelPackage.YVIEW__CURRENT_FOCUS:
+				if (resolve) return getCurrentFocus();
+				return basicGetCurrentFocus();
+			case CoreModelPackage.YVIEW__DISABLED_ELEMENTS:
+				return getDisabledElements();
+			case CoreModelPackage.YVIEW__AUTHORIZATION_STORE:
+				if (resolve) return getAuthorizationStore();
+				return basicGetAuthorizationStore();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YVIEW__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YVIEW__CSS_CLASS:
+				setCssClass((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW__CSS_ID:
+				setCssID((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW__MARGIN:
+				setMargin((Boolean)newValue);
+				return;
+			case CoreModelPackage.YVIEW__ROOT:
+				setRoot((YViewSet)newValue);
+				return;
+			case CoreModelPackage.YVIEW__VIEW_NAME:
+				setViewName((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW__VERSION:
+				setVersion((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW__CONTENT:
+				setContent((YEmbeddable)newValue);
+				return;
+			case CoreModelPackage.YVIEW__BINDING_SET:
+				setBindingSet((YBindingSet)newValue);
+				return;
+			case CoreModelPackage.YVIEW__BEAN_SLOTS:
+				getBeanSlots().clear();
+				getBeanSlots().addAll((Collection<? extends YBeanSlot>)newValue);
+				return;
+			case CoreModelPackage.YVIEW__COMMAND_SET:
+				setCommandSet((YCommandSet)newValue);
+				return;
+			case CoreModelPackage.YVIEW__DIALOGS:
+				getDialogs().clear();
+				getDialogs().addAll((Collection<? extends YDialog>)newValue);
+				return;
+			case CoreModelPackage.YVIEW__DEVICE_TYPE:
+				setDeviceType((YDeviceType)newValue);
+				return;
+			case CoreModelPackage.YVIEW__CONTENT_ALIGNMENT:
+				setContentAlignment((YAlignment)newValue);
+				return;
+			case CoreModelPackage.YVIEW__VISIBILITY_PROCESSORS:
+				getVisibilityProcessors().clear();
+				getVisibilityProcessors().addAll((Collection<? extends YVisibilityProcessor>)newValue);
+				return;
+			case CoreModelPackage.YVIEW__TRANSIENT_VISIBILITY_PROCESSORS:
+				getTransientVisibilityProcessors().clear();
+				getTransientVisibilityProcessors().addAll((Collection<? extends YVisibilityProcessor>)newValue);
+				return;
+			case CoreModelPackage.YVIEW__EXPOSED_ACTIONS:
+				getExposedActions().clear();
+				getExposedActions().addAll((Collection<? extends YExposedAction>)newValue);
+				return;
+			case CoreModelPackage.YVIEW__SHARED_STATE_GROUP:
+				setSharedStateGroup((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW__CATEGORY:
+				setCategory((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW__INITIAL_FOCUS:
+				setInitialFocus((YFocusable)newValue);
+				return;
+			case CoreModelPackage.YVIEW__CURRENT_FOCUS:
+				setCurrentFocus((YFocusable)newValue);
+				return;
+			case CoreModelPackage.YVIEW__DISABLED_ELEMENTS:
+				getDisabledElements().clear();
+				getDisabledElements().addAll((Collection<? extends YEmbeddable>)newValue);
+				return;
+			case CoreModelPackage.YVIEW__AUTHORIZATION_STORE:
+				setAuthorizationStore((YAuthorizationStore)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YVIEW__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YVIEW__CSS_CLASS:
+				setCssClass(CSS_CLASS_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__CSS_ID:
+				setCssID(CSS_ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__MARGIN:
+				setMargin(MARGIN_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__ROOT:
+				setRoot((YViewSet)null);
+				return;
+			case CoreModelPackage.YVIEW__VIEW_NAME:
+				setViewName(VIEW_NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__VERSION:
+				setVersion(VERSION_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__CONTENT:
+				setContent((YEmbeddable)null);
+				return;
+			case CoreModelPackage.YVIEW__BINDING_SET:
+				setBindingSet((YBindingSet)null);
+				return;
+			case CoreModelPackage.YVIEW__BEAN_SLOTS:
+				getBeanSlots().clear();
+				return;
+			case CoreModelPackage.YVIEW__COMMAND_SET:
+				setCommandSet((YCommandSet)null);
+				return;
+			case CoreModelPackage.YVIEW__DIALOGS:
+				getDialogs().clear();
+				return;
+			case CoreModelPackage.YVIEW__DEVICE_TYPE:
+				setDeviceType(DEVICE_TYPE_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__CONTENT_ALIGNMENT:
+				setContentAlignment(CONTENT_ALIGNMENT_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__VISIBILITY_PROCESSORS:
+				getVisibilityProcessors().clear();
+				return;
+			case CoreModelPackage.YVIEW__TRANSIENT_VISIBILITY_PROCESSORS:
+				getTransientVisibilityProcessors().clear();
+				return;
+			case CoreModelPackage.YVIEW__EXPOSED_ACTIONS:
+				getExposedActions().clear();
+				return;
+			case CoreModelPackage.YVIEW__SHARED_STATE_GROUP:
+				setSharedStateGroup(SHARED_STATE_GROUP_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__CATEGORY:
+				setCategory(CATEGORY_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW__INITIAL_FOCUS:
+				setInitialFocus((YFocusable)null);
+				return;
+			case CoreModelPackage.YVIEW__CURRENT_FOCUS:
+				setCurrentFocus((YFocusable)null);
+				return;
+			case CoreModelPackage.YVIEW__DISABLED_ELEMENTS:
+				getDisabledElements().clear();
+				return;
+			case CoreModelPackage.YVIEW__AUTHORIZATION_STORE:
+				setAuthorizationStore((YAuthorizationStore)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YVIEW__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YVIEW__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YVIEW__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YVIEW__CSS_CLASS:
+				return CSS_CLASS_EDEFAULT == null ? cssClass != null : !CSS_CLASS_EDEFAULT.equals(cssClass);
+			case CoreModelPackage.YVIEW__CSS_ID:
+				return CSS_ID_EDEFAULT == null ? cssID != null : !CSS_ID_EDEFAULT.equals(cssID);
+			case CoreModelPackage.YVIEW__MARGIN:
+				return margin != MARGIN_EDEFAULT;
+			case CoreModelPackage.YVIEW__ROOT:
+				return root != null;
+			case CoreModelPackage.YVIEW__VIEW_NAME:
+				return VIEW_NAME_EDEFAULT == null ? viewName != null : !VIEW_NAME_EDEFAULT.equals(viewName);
+			case CoreModelPackage.YVIEW__VERSION:
+				return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+			case CoreModelPackage.YVIEW__CONTENT:
+				return content != null;
+			case CoreModelPackage.YVIEW__BINDING_SET:
+				return bindingSet != null;
+			case CoreModelPackage.YVIEW__BEAN_SLOTS:
+				return beanSlots != null && !beanSlots.isEmpty();
+			case CoreModelPackage.YVIEW__COMMAND_SET:
+				return commandSet != null;
+			case CoreModelPackage.YVIEW__DIALOGS:
+				return dialogs != null && !dialogs.isEmpty();
+			case CoreModelPackage.YVIEW__DEVICE_TYPE:
+				return deviceType != DEVICE_TYPE_EDEFAULT;
+			case CoreModelPackage.YVIEW__CONTENT_ALIGNMENT:
+				return contentAlignment != CONTENT_ALIGNMENT_EDEFAULT;
+			case CoreModelPackage.YVIEW__VISIBILITY_PROCESSORS:
+				return visibilityProcessors != null && !visibilityProcessors.isEmpty();
+			case CoreModelPackage.YVIEW__TRANSIENT_VISIBILITY_PROCESSORS:
+				return transientVisibilityProcessors != null && !transientVisibilityProcessors.isEmpty();
+			case CoreModelPackage.YVIEW__EXPOSED_ACTIONS:
+				return exposedActions != null && !exposedActions.isEmpty();
+			case CoreModelPackage.YVIEW__SHARED_STATE_GROUP:
+				return SHARED_STATE_GROUP_EDEFAULT == null ? sharedStateGroup != null : !SHARED_STATE_GROUP_EDEFAULT.equals(sharedStateGroup);
+			case CoreModelPackage.YVIEW__CATEGORY:
+				return CATEGORY_EDEFAULT == null ? category != null : !CATEGORY_EDEFAULT.equals(category);
+			case CoreModelPackage.YVIEW__INITIAL_FOCUS:
+				return initialFocus != null;
+			case CoreModelPackage.YVIEW__CURRENT_FOCUS:
+				return currentFocus != null;
+			case CoreModelPackage.YVIEW__DISABLED_ELEMENTS:
+				return disabledElements != null && !disabledElements.isEmpty();
+			case CoreModelPackage.YVIEW__AUTHORIZATION_STORE:
+				return authorizationStore != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YCssAble.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YVIEW__CSS_CLASS: return CoreModelPackage.YCSS_ABLE__CSS_CLASS;
+				case CoreModelPackage.YVIEW__CSS_ID: return CoreModelPackage.YCSS_ABLE__CSS_ID;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (derivedFeatureID) {
+				case CoreModelPackage.YVIEW__MARGIN: return CoreModelPackage.YMARGINABLE__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YCssAble.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCSS_ABLE__CSS_CLASS: return CoreModelPackage.YVIEW__CSS_CLASS;
+				case CoreModelPackage.YCSS_ABLE__CSS_ID: return CoreModelPackage.YVIEW__CSS_ID;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMARGINABLE__MARGIN: return CoreModelPackage.YVIEW__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", cssClass: ");
+		result.append(cssClass);
+		result.append(", cssID: ");
+		result.append(cssID);
+		result.append(", margin: ");
+		result.append(margin);
+		result.append(", viewName: ");
+		result.append(viewName);
+		result.append(", version: ");
+		result.append(version);
+		result.append(", deviceType: ");
+		result.append(deviceType);
+		result.append(", contentAlignment: ");
+		result.append(contentAlignment);
+		result.append(", sharedStateGroup: ");
+		result.append(sharedStateGroup);
+		result.append(", category: ");
+		result.append(category);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public YBeanSlot addBeanSlot(String name, Class<?> type) {
+		YBeanSlot result = getBeanSlot(name);
+		if (result == null) {
+			result = CoreModelFactory.eINSTANCE.createYBeanSlot();
+			result.setName(name);
+			result.setValueType(type);
+			result.setValueTypeQualifiedName(type != null ? type.getName() : "");
+			getBeanSlots().add(result);
+		}
+
+		return result;
+	}
+
+	@Override
+	public YDetailBeanSlot addDetailBeanSlot(String name, Class<?> type,
+			YBeanSlot masterSlot, String propertyPath) {
+
+		YDetailBeanSlot result = CoreModelFactory.eINSTANCE
+				.createYDetailBeanSlot();
+		result.setName(name);
+		result.setValueType(type);
+		result.setValueTypeQualifiedName(type != null ? type.getName() : "");
+		result.setMasterBeanSlot(masterSlot);
+		result.setPropertyPath(propertyPath);
+		getBeanSlots().add(result);
+
+		return result;
+	}
+
+	@Override
+	public YBeanSlot getBeanSlot(String name) {
+		YBeanSlot result = null;
+		for (YBeanSlot ySlot : getBeanSlots()) {
+			if (ySlot.getName().equals(name)) {
+				result = ySlot;
+				break;
+			}
+		}
+		return result;
+	}
+
+} // YUiViewImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YViewSetImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YViewSetImpl.java
new file mode 100644
index 0000000..ef91078
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/YViewSetImpl.java
@@ -0,0 +1,416 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi View Set</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl#getViews <em>Views</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.core.impl.YViewSetImpl#getBeanSlots <em>Bean Slots</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YViewSetImpl extends MinimalEObjectImpl.Container implements
+		YViewSet {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The cached value of the '{@link #getViews() <em>Views</em>}' reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getViews()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YView> views;
+
+	/**
+	 * The cached value of the '{@link #getBeanSlots() <em>Bean Slots</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getBeanSlots()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YBeanSlot> beanSlots;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YViewSetImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CoreModelPackage.Literals.YVIEW_SET;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW_SET__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YVIEW_SET__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, CoreModelPackage.YVIEW_SET__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, CoreModelPackage.YVIEW_SET__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YView> getViews() {
+		if (views == null) {
+			views = new EObjectWithInverseResolvingEList<YView>(YView.class, this, CoreModelPackage.YVIEW_SET__VIEWS, CoreModelPackage.YVIEW__ROOT);
+		}
+		return views;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YBeanSlot> getBeanSlots() {
+		if (beanSlots == null) {
+			beanSlots = new EObjectContainmentEList.Resolving<YBeanSlot>(YBeanSlot.class, this, CoreModelPackage.YVIEW_SET__BEAN_SLOTS);
+		}
+		return beanSlots;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW_SET__VIEWS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getViews()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW_SET__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YVIEW_SET__VIEWS:
+				return ((InternalEList<?>)getViews()).basicRemove(otherEnd, msgs);
+			case CoreModelPackage.YVIEW_SET__BEAN_SLOTS:
+				return ((InternalEList<?>)getBeanSlots()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW_SET__TAGS:
+				return getTags();
+			case CoreModelPackage.YVIEW_SET__ID:
+				return getId();
+			case CoreModelPackage.YVIEW_SET__NAME:
+				return getName();
+			case CoreModelPackage.YVIEW_SET__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case CoreModelPackage.YVIEW_SET__VIEWS:
+				return getViews();
+			case CoreModelPackage.YVIEW_SET__BEAN_SLOTS:
+				return getBeanSlots();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW_SET__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case CoreModelPackage.YVIEW_SET__ID:
+				setId((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW_SET__NAME:
+				setName((String)newValue);
+				return;
+			case CoreModelPackage.YVIEW_SET__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case CoreModelPackage.YVIEW_SET__VIEWS:
+				getViews().clear();
+				getViews().addAll((Collection<? extends YView>)newValue);
+				return;
+			case CoreModelPackage.YVIEW_SET__BEAN_SLOTS:
+				getBeanSlots().clear();
+				getBeanSlots().addAll((Collection<? extends YBeanSlot>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW_SET__TAGS:
+				getTags().clear();
+				return;
+			case CoreModelPackage.YVIEW_SET__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW_SET__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case CoreModelPackage.YVIEW_SET__PROPERTIES:
+				getProperties().clear();
+				return;
+			case CoreModelPackage.YVIEW_SET__VIEWS:
+				getViews().clear();
+				return;
+			case CoreModelPackage.YVIEW_SET__BEAN_SLOTS:
+				getBeanSlots().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CoreModelPackage.YVIEW_SET__TAGS:
+				return tags != null && !tags.isEmpty();
+			case CoreModelPackage.YVIEW_SET__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case CoreModelPackage.YVIEW_SET__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case CoreModelPackage.YVIEW_SET__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case CoreModelPackage.YVIEW_SET__VIEWS:
+				return views != null && !views.isEmpty();
+			case CoreModelPackage.YVIEW_SET__BEAN_SLOTS:
+				return beanSlots != null && !beanSlots.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public YBeanSlot addBeanSlot(String name, Class<?> type) {
+		YBeanSlot result = null;
+		for (YBeanSlot ySlot : getBeanSlots()) {
+			if (ySlot.getName().equals(name)) {
+				result = ySlot;
+				break;
+			}
+		}
+
+		if (result == null) {
+			result = CoreModelFactory.eINSTANCE.createYBeanSlot();
+			result.setName(name);
+			result.setValueType(type);
+			getBeanSlots().add(result);
+		}
+
+		return result;
+	}
+
+} // YUiViewSetImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/custom/ChangeAdapter.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/custom/ChangeAdapter.java
new file mode 100644
index 0000000..62161fa
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/custom/ChangeAdapter.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.impl.custom;
+
+import java.util.Arrays;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public abstract class ChangeAdapter extends AdapterImpl {
+
+	private Config config;
+
+	public ChangeAdapter(Config config) {
+		super();
+		this.config = config;
+	}
+
+	@Override
+	public void notifyChanged(final Notification msg) {
+
+		// not a valid feature
+		if (msg.getFeature() != config.feature) {
+			return;
+		}
+
+		// not a valid event
+		if (Arrays.binarySearch(config.events, msg.getEventType()) < 0) {
+			return;
+		}
+
+		switch (msg.getEventType()) {
+		case Notification.ADD:
+			handleAdd(msg);
+			break;
+		case Notification.REMOVE:
+			handleRemove(msg);
+			break;
+		case Notification.SET:
+			handleSet(msg);
+			break;
+		default:
+			throw new IllegalArgumentException(
+					String.format("Event %s not valid!",
+							Integer.toString(msg.getEventType())));
+		}
+	}
+
+	/**
+	 * Handles adding eObjects.
+	 * 
+	 * @param msg
+	 */
+	protected void handleAdd(Notification msg) {
+		// never put content here!
+	}
+
+	/**
+	 * Handles removing eObjects.
+	 * 
+	 * @param msg
+	 */
+	protected void handleRemove(Notification msg) {
+		// never put content here!
+	}
+
+	/**
+	 * Handles set of eObjects.
+	 * 
+	 * @param msg
+	 */
+	protected void handleSet(Notification msg) {
+		// never put content here!
+	}
+
+	/**
+	 * Config for the adapter.
+	 */
+	public static class Config {
+		private EStructuralFeature feature;
+		private int[] events;
+
+		public Config(EStructuralFeature feature, int... events) {
+			this.feature = feature;
+			this.events = Arrays.copyOf(events, events.length);
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/custom/KeyStrokeUtil.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/custom/KeyStrokeUtil.java
new file mode 100644
index 0000000..b62a9ce
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/impl/custom/KeyStrokeUtil.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.common.model.core.impl.custom;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyCode;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
+import org.eclipse.osbp.ecview.core.common.model.core.YModifierKey;
+import org.eclipse.osbp.runtime.common.keystroke.KeyStrokeDefinition;
+
+public class KeyStrokeUtil {
+
+	public static YKeyStrokeDefinition from(KeyStrokeDefinition def) {
+		YKeyStrokeDefinition yDef = CoreModelFactory.eINSTANCE
+				.createYKeyStrokeDefinition();
+
+		yDef.setKeyCode(YKeyCode.get(def.getKeyCode()));
+
+		for (int modKey : def.getModifierKeys()) {
+			yDef.getModifierKeys().add(YModifierKey.get(modKey));
+		}
+
+		return yDef;
+	}
+
+	public static KeyStrokeDefinition from(YKeyStrokeDefinition model) {
+		KeyStrokeDefinition def = new KeyStrokeDefinition("", toKeyCode(model),
+				toModifier(model.getModifierKeys()));
+		return def;
+	}
+
+	private static int[] toModifier(EList<YModifierKey> modifierKeys) {
+
+		int[] result = new int[modifierKeys.size()];
+		for (int i = 0; i < modifierKeys.size(); i++) {
+			result[i] = modifierKeys.get(i).getValue();
+		}
+
+		return result;
+	}
+
+	protected static int toKeyCode(YKeyStrokeDefinition model) {
+		return model.getKeyCode().getValue();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/listeners/YValueChangeListener.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/listeners/YValueChangeListener.java
new file mode 100644
index 0000000..07ff712
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/listeners/YValueChangeListener.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.listeners;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+
+public interface YValueChangeListener {
+
+	/**
+	 * Is called if the value of the field has changed.
+	 * 
+	 * @param event
+	 */
+	void valueChanged(Event event);
+
+	public static class Event {
+		private final YField yField;
+		private final Object newValue;
+		private final Object oldValue;
+
+		public Event(YField yField, Object oldValue, Object newValue) {
+			this.yField = yField;
+			this.oldValue = oldValue;
+			this.newValue = newValue;
+		}
+
+		/**
+		 * Returns the field which value was changed.
+		 * 
+		 * @return the yField
+		 */
+		public YField getField() {
+			return yField;
+		}
+
+		/**
+		 * Returns the new value of the field.
+		 * 
+		 * @return the newValue
+		 */
+		public Object getNewValue() {
+			return newValue;
+		}
+
+		/**
+		 * Returns the old value of the field.
+		 * 
+		 * @return the oldValue
+		 */
+		protected Object getOldValue() {
+			return oldValue;
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/BindingIdUtil.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/BindingIdUtil.java
new file mode 100644
index 0000000..0ebf15b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/BindingIdUtil.java
@@ -0,0 +1,94 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.util;
+
+public class BindingIdUtil {
+
+	public static final String UI_ACTIVATED = "uiActivated/";
+	public static final String UI_VISIBILITY_PROCESSOR = "uiVisibilityProcessor/";
+	public static final String UI_VALUE = "uiValue/";
+	public static final String UI_SELECTION = "uiSelection/";
+	public static final String MODEL_BINDING = "modelBinding/";
+	public static final String BEANVALUE = "beanvalue/";
+	public static final String BEANSLOT = "beanslot/";
+
+	public static String getBeanSlotId(String beanSlot, String propertyPath) {
+		// returns a string of pattern "beanslot/{name}/{path}"
+		StringBuilder b = new StringBuilder();
+		b.append(BEANSLOT);
+		b.append(beanSlot);
+		b.append("/");
+		b.append(propertyPath);
+		return b.toString();
+	}
+
+	public static String getBeanValueId(String beanName, String propertyPath) {
+		// returns a string of pattern "beanslot/{name}/{path}"
+		StringBuilder b = new StringBuilder();
+		b.append(BEANVALUE);
+		b.append(beanName);
+		b.append("/");
+		b.append(propertyPath);
+		return b.toString();
+	}
+
+	public static String getDetailValueId(String masterId, String propertyPath) {
+		StringBuilder b = new StringBuilder();
+		b.append(masterId);
+		b.append("/");
+		b.append(propertyPath);
+		return b.toString();
+	}
+
+	public static String getECViewModelValueId(String elementId,
+			String propertyPath) {
+		StringBuilder b = new StringBuilder();
+		b.append(MODEL_BINDING);
+		b.append(elementId);
+		b.append("/");
+		b.append(propertyPath);
+		return b.toString();
+	}
+
+	public static String getEmbeddableSelectionId(String elementId,
+			String propertyPath) {
+		StringBuilder b = new StringBuilder();
+		b.append(UI_SELECTION);
+		b.append(elementId);
+		b.append("/");
+		b.append(propertyPath);
+		return b.toString();
+	}
+
+	public static String getEmbeddableValueId(String elementId) {
+		StringBuilder b = new StringBuilder();
+		b.append(UI_VALUE);
+		b.append(elementId);
+		return b.toString();
+	}
+
+	public static String getVisibilityProcessorId(String property) {
+		StringBuilder b = new StringBuilder();
+		b.append(UI_VISIBILITY_PROCESSOR);
+		b.append(property);
+		return b.toString();
+	}
+
+	public static String getActivatedId(String elementId) {
+		StringBuilder b = new StringBuilder();
+		b.append(UI_ACTIVATED);
+		b.append(elementId);
+		return b.toString();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/CoreModelAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/CoreModelAdapterFactory.java
new file mode 100644
index 0000000..7678f7f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/CoreModelAdapterFactory.java
@@ -0,0 +1,1144 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.util;
+
+import java.util.Map;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.*;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivateable;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YHeightable;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YVisibleable;
+import org.eclipse.osbp.ecview.core.common.model.core.YWidthable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage
+ * @generated
+ */
+public class CoreModelAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static CoreModelPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CoreModelAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = CoreModelPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CoreModelSwitch<Adapter> modelSwitch =
+		new CoreModelSwitch<Adapter>() {
+			@Override
+			public Adapter caseYElement(YElement object) {
+				return createYElementAdapter();
+			}
+			@Override
+			public Adapter caseYStringToStringMap(Map.Entry<String, String> object) {
+				return createYStringToStringMapAdapter();
+			}
+			@Override
+			public Adapter caseYLayout(YLayout object) {
+				return createYLayoutAdapter();
+			}
+			@Override
+			public Adapter caseYHelperLayoutProvider(YHelperLayoutProvider object) {
+				return createYHelperLayoutProviderAdapter();
+			}
+			@Override
+			public Adapter caseYHelperLayout(YHelperLayout object) {
+				return createYHelperLayoutAdapter();
+			}
+			@Override
+			public Adapter caseYField(YField object) {
+				return createYFieldAdapter();
+			}
+			@Override
+			public Adapter caseYView(YView object) {
+				return createYViewAdapter();
+			}
+			@Override
+			public Adapter caseYViewSet(YViewSet object) {
+				return createYViewSetAdapter();
+			}
+			@Override
+			public Adapter caseYAlignmentContainer(YAlignmentContainer object) {
+				return createYAlignmentContainerAdapter();
+			}
+			@Override
+			public Adapter caseYBeanSlot(YBeanSlot object) {
+				return createYBeanSlotAdapter();
+			}
+			@Override
+			public Adapter caseYDetailBeanSlot(YDetailBeanSlot object) {
+				return createYDetailBeanSlotAdapter();
+			}
+			@Override
+			public Adapter caseYEmbeddable(YEmbeddable object) {
+				return createYEmbeddableAdapter();
+			}
+			@Override
+			public Adapter caseYDialog(YDialog object) {
+				return createYDialogAdapter();
+			}
+			@Override
+			public Adapter caseYCssAble(YCssAble object) {
+				return createYCssAbleAdapter();
+			}
+			@Override
+			public Adapter caseYMarginable(YMarginable object) {
+				return createYMarginableAdapter();
+			}
+			@Override
+			public Adapter caseYSpacingable(YSpacingable object) {
+				return createYSpacingableAdapter();
+			}
+			@Override
+			public Adapter caseYHeightable(YHeightable object) {
+				return createYHeightableAdapter();
+			}
+			@Override
+			public Adapter caseYWidthable(YWidthable object) {
+				return createYWidthableAdapter();
+			}
+			@Override
+			public Adapter caseYActivateable(YActivateable object) {
+				return createYActivateableAdapter();
+			}
+			@Override
+			public Adapter caseYVisibleable(YVisibleable object) {
+				return createYVisibleableAdapter();
+			}
+			@Override
+			public Adapter caseYEditable(YEditable object) {
+				return createYEditableAdapter();
+			}
+			@Override
+			public Adapter caseYEnable(YEnable object) {
+				return createYEnableAdapter();
+			}
+			@Override
+			public Adapter caseYFocusable(YFocusable object) {
+				return createYFocusableAdapter();
+			}
+			@Override
+			public Adapter caseYAction(YAction object) {
+				return createYActionAdapter();
+			}
+			@Override
+			public Adapter caseYBindable(YBindable object) {
+				return createYBindableAdapter();
+			}
+			@Override
+			public Adapter caseYValueBindable(YValueBindable object) {
+				return createYValueBindableAdapter();
+			}
+			@Override
+			public Adapter caseYSelectionBindable(YSelectionBindable object) {
+				return createYSelectionBindableAdapter();
+			}
+			@Override
+			public Adapter caseYMultiSelectionBindable(YMultiSelectionBindable object) {
+				return createYMultiSelectionBindableAdapter();
+			}
+			@Override
+			public Adapter caseYCollectionBindable(YCollectionBindable object) {
+				return createYCollectionBindableAdapter();
+			}
+			@Override
+			public Adapter caseYContextValueBindingEndpoint(YContextValueBindingEndpoint object) {
+				return createYContextValueBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYBeanSlotValueBindingEndpoint(YBeanSlotValueBindingEndpoint object) {
+				return createYBeanSlotValueBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYBeanSlotListBindingEndpoint(YBeanSlotListBindingEndpoint object) {
+				return createYBeanSlotListBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYEmbeddableBindingEndpoint(YEmbeddableBindingEndpoint object) {
+				return createYEmbeddableBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYEmbeddableValueEndpoint(YEmbeddableValueEndpoint object) {
+				return createYEmbeddableValueEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYEmbeddableSelectionEndpoint(YEmbeddableSelectionEndpoint object) {
+				return createYEmbeddableSelectionEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYEmbeddableMultiSelectionEndpoint(YEmbeddableMultiSelectionEndpoint object) {
+				return createYEmbeddableMultiSelectionEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYEmbeddableCollectionEndpoint(YEmbeddableCollectionEndpoint object) {
+				return createYEmbeddableCollectionEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYActivatedEndpoint(YActivatedEndpoint object) {
+				return createYActivatedEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYDtWrapper(YDtWrapper object) {
+				return createYDtWrapperAdapter();
+			}
+			@Override
+			public Adapter caseYCommand(YCommand object) {
+				return createYCommandAdapter();
+			}
+			@Override
+			public Adapter caseYCommandSet(YCommandSet object) {
+				return createYCommandSetAdapter();
+			}
+			@Override
+			public Adapter caseYOpenDialogCommand(YOpenDialogCommand object) {
+				return createYOpenDialogCommandAdapter();
+			}
+			@Override
+			public Adapter caseYExposedAction(YExposedAction object) {
+				return createYExposedActionAdapter();
+			}
+			@Override
+			public Adapter caseYSendEventCommand(YSendEventCommand object) {
+				return createYSendEventCommandAdapter();
+			}
+			@Override
+			public Adapter caseYKeyStrokeDefinition(YKeyStrokeDefinition object) {
+				return createYKeyStrokeDefinitionAdapter();
+			}
+			@Override
+			public Adapter caseYConverter(YConverter object) {
+				return createYConverterAdapter();
+			}
+			@Override
+			public Adapter caseYDelegateConverter(YDelegateConverter object) {
+				return createYDelegateConverterAdapter();
+			}
+			@Override
+			public Adapter caseYMemento(YMemento object) {
+				return createYMementoAdapter();
+			}
+			@Override
+			public Adapter caseYAuthorizationable(YAuthorizationable object) {
+				return createYAuthorizationableAdapter();
+			}
+			@Override
+			public Adapter caseYTaggable(YTaggable object) {
+				return createYTaggableAdapter();
+			}
+			@Override
+			public Adapter caseYBindingEndpoint(YBindingEndpoint object) {
+				return createYBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYValueBindingEndpoint(YValueBindingEndpoint object) {
+				return createYValueBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYListBindingEndpoint(YListBindingEndpoint object) {
+				return createYListBindingEndpointAdapter();
+			}
+			@Override
+			public Adapter caseYDtBase(YDtBase object) {
+				return createYDtBaseAdapter();
+			}
+			@Override
+			public Adapter caseYDatatype(YDatatype object) {
+				return createYDatatypeAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+	 * @generated
+	 */
+	public Adapter createYElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>YString To String Map</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see java.util.Map.Entry
+	 * @generated
+	 */
+	public Adapter createYStringToStringMapAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YLayout <em>YLayout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YLayout
+	 * @generated
+	 */
+	public Adapter createYLayoutAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout <em>YHelper Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHelperLayout
+	 * @generated
+	 */
+	public Adapter createYHelperLayoutAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YField <em>YField</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YField
+	 * @generated
+	 */
+	public Adapter createYFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YView <em>YView</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YView
+	 * @generated
+	 */
+	public Adapter createYViewAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YViewSet <em>YView Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YViewSet
+	 * @generated
+	 */
+	public Adapter createYViewSetAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer <em>YAlignment Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer
+	 * @generated
+	 */
+	public Adapter createYAlignmentContainerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot <em>YBean Slot</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot
+	 * @generated
+	 */
+	public Adapter createYBeanSlotAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot <em>YDetail Bean Slot</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDetailBeanSlot
+	 * @generated
+	 */
+	public Adapter createYDetailBeanSlotAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider <em>YHelper Layout Provider</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHelperLayoutProvider
+	 * @generated
+	 */
+	public Adapter createYHelperLayoutProviderAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable <em>YEmbeddable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable
+	 * @generated
+	 */
+	public Adapter createYEmbeddableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YDialog <em>YDialog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDialog
+	 * @generated
+	 */
+	public Adapter createYDialogAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble <em>YCss Able</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCssAble
+	 * @generated
+	 */
+	public Adapter createYCssAbleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YMarginable <em>YMarginable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMarginable
+	 * @generated
+	 */
+	public Adapter createYMarginableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YSpacingable <em>YSpacingable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSpacingable
+	 * @generated
+	 */
+	public Adapter createYSpacingableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YHeightable <em>YHeightable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YHeightable
+	 * @generated
+	 */
+	public Adapter createYHeightableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YWidthable <em>YWidthable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YWidthable
+	 * @generated
+	 */
+	public Adapter createYWidthableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable <em>YActivateable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivateable
+	 * @generated
+	 */
+	public Adapter createYActivateableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable <em>YVisibleable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YVisibleable
+	 * @generated
+	 */
+	public Adapter createYVisibleableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable <em>YEditable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEditable
+	 * @generated
+	 */
+	public Adapter createYEditableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable <em>YEnable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEnable
+	 * @generated
+	 */
+	public Adapter createYEnableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YFocusable <em>YFocusable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YFocusable
+	 * @generated
+	 */
+	public Adapter createYFocusableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YAction <em>YAction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAction
+	 * @generated
+	 */
+	public Adapter createYActionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBindable <em>YBindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBindable
+	 * @generated
+	 */
+	public Adapter createYBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YValueBindable <em>YValue Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YValueBindable
+	 * @generated
+	 */
+	public Adapter createYValueBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable <em>YSelection Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable
+	 * @generated
+	 */
+	public Adapter createYSelectionBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable <em>YMulti Selection Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable
+	 * @generated
+	 */
+	public Adapter createYMultiSelectionBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable <em>YCollection Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable
+	 * @generated
+	 */
+	public Adapter createYCollectionBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint <em>YContext Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYContextValueBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint <em>YBean Slot Value Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYBeanSlotValueBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint <em>YBean Slot List Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYBeanSlotListBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint <em>YEmbeddable Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYEmbeddableBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint <em>YEmbeddable Value Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint
+	 * @generated
+	 */
+	public Adapter createYEmbeddableValueEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint <em>YEmbeddable Selection Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint
+	 * @generated
+	 */
+	public Adapter createYEmbeddableSelectionEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint <em>YEmbeddable Multi Selection Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint
+	 * @generated
+	 */
+	public Adapter createYEmbeddableMultiSelectionEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint <em>YEmbeddable Collection Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint
+	 * @generated
+	 */
+	public Adapter createYEmbeddableCollectionEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint <em>YActivated Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint
+	 * @generated
+	 */
+	public Adapter createYActivatedEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper <em>YDt Wrapper</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper
+	 * @generated
+	 */
+	public Adapter createYDtWrapperAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCommand <em>YCommand</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommand
+	 * @generated
+	 */
+	public Adapter createYCommandAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCommandSet <em>YCommand Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommandSet
+	 * @generated
+	 */
+	public Adapter createYCommandSetAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand <em>YOpen Dialog Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand
+	 * @generated
+	 */
+	public Adapter createYOpenDialogCommandAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YExposedAction <em>YExposed Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YExposedAction
+	 * @generated
+	 */
+	public Adapter createYExposedActionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand <em>YSend Event Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand
+	 * @generated
+	 */
+	public Adapter createYSendEventCommandAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition <em>YKey Stroke Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition
+	 * @generated
+	 */
+	public Adapter createYKeyStrokeDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YConverter <em>YConverter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YConverter
+	 * @generated
+	 */
+	public Adapter createYConverterAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter <em>YDelegate Converter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YDelegateConverter
+	 * @generated
+	 */
+	public Adapter createYDelegateConverterAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YMemento <em>YMemento</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMemento
+	 * @generated
+	 */
+	public Adapter createYMementoAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable <em>YAuthorizationable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable
+	 * @generated
+	 */
+	public Adapter createYAuthorizationableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+	 * @generated
+	 */
+	public Adapter createYTaggableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint <em>YBinding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint <em>YValue Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYValueBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint <em>YList Binding Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint
+	 * @generated
+	 */
+	public Adapter createYListBindingEndpointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase <em>YDt Base</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase
+	 * @generated
+	 */
+	public Adapter createYDtBaseAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype <em>YDatatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype
+	 * @generated
+	 */
+	public Adapter createYDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //UiModelAdapterFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/CoreModelSwitch.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/CoreModelSwitch.java
new file mode 100644
index 0000000..0188d34
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/CoreModelSwitch.java
@@ -0,0 +1,1388 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.util;
+
+import java.util.Map;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.*;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivateable;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivatedEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YDtWrapper;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YHeightable;
+import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YVisibleable;
+import org.eclipse.osbp.ecview.core.common.model.core.YWidthable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase;
+
+/**
+ * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance
+ * hierarchy. It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object and proceeding up the
+ * inheritance hierarchy until a non-null result is returned, which is the
+ * result of the switch. <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage
+ * @generated
+ */
+public class CoreModelSwitch<T> extends Switch<T> {
+	
+	/**
+	 * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected static CoreModelPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CoreModelSwitch() {
+		if (modelPackage == null) {
+			modelPackage = CoreModelPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @return whether this is a switch for the given package.
+	 * @param ePackage the package in question.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case CoreModelPackage.YELEMENT: {
+				YElement yElement = (YElement)theEObject;
+				T result = caseYElement(yElement);
+				if (result == null) result = caseYTaggable(yElement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YSTRING_TO_STRING_MAP: {
+				@SuppressWarnings("unchecked") Map.Entry<String, String> yStringToStringMap = (Map.Entry<String, String>)theEObject;
+				T result = caseYStringToStringMap(yStringToStringMap);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YLAYOUT: {
+				YLayout yLayout = (YLayout)theEObject;
+				T result = caseYLayout(yLayout);
+				if (result == null) result = caseYEmbeddable(yLayout);
+				if (result == null) result = caseYEditable(yLayout);
+				if (result == null) result = caseYEnable(yLayout);
+				if (result == null) result = caseYElement(yLayout);
+				if (result == null) result = caseYCssAble(yLayout);
+				if (result == null) result = caseYVisibleable(yLayout);
+				if (result == null) result = caseYAuthorizationable(yLayout);
+				if (result == null) result = caseYTaggable(yLayout);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YHELPER_LAYOUT_PROVIDER: {
+				YHelperLayoutProvider yHelperLayoutProvider = (YHelperLayoutProvider)theEObject;
+				T result = caseYHelperLayoutProvider(yHelperLayoutProvider);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YHELPER_LAYOUT: {
+				YHelperLayout yHelperLayout = (YHelperLayout)theEObject;
+				T result = caseYHelperLayout(yHelperLayout);
+				if (result == null) result = caseYLayout(yHelperLayout);
+				if (result == null) result = caseYEmbeddable(yHelperLayout);
+				if (result == null) result = caseYEditable(yHelperLayout);
+				if (result == null) result = caseYEnable(yHelperLayout);
+				if (result == null) result = caseYElement(yHelperLayout);
+				if (result == null) result = caseYCssAble(yHelperLayout);
+				if (result == null) result = caseYVisibleable(yHelperLayout);
+				if (result == null) result = caseYAuthorizationable(yHelperLayout);
+				if (result == null) result = caseYTaggable(yHelperLayout);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YFIELD: {
+				YField yField = (YField)theEObject;
+				T result = caseYField(yField);
+				if (result == null) result = caseYEmbeddable(yField);
+				if (result == null) result = caseYEditable(yField);
+				if (result == null) result = caseYEnable(yField);
+				if (result == null) result = caseYFocusable(yField);
+				if (result == null) result = caseYElement(yField);
+				if (result == null) result = caseYCssAble(yField);
+				if (result == null) result = caseYVisibleable(yField);
+				if (result == null) result = caseYAuthorizationable(yField);
+				if (result == null) result = caseYTaggable(yField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YVIEW: {
+				YView yView = (YView)theEObject;
+				T result = caseYView(yView);
+				if (result == null) result = caseYElement(yView);
+				if (result == null) result = caseYCssAble(yView);
+				if (result == null) result = caseYMarginable(yView);
+				if (result == null) result = caseYAlignmentContainer(yView);
+				if (result == null) result = caseYTaggable(yView);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YVIEW_SET: {
+				YViewSet yViewSet = (YViewSet)theEObject;
+				T result = caseYViewSet(yViewSet);
+				if (result == null) result = caseYElement(yViewSet);
+				if (result == null) result = caseYTaggable(yViewSet);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YALIGNMENT_CONTAINER: {
+				YAlignmentContainer yAlignmentContainer = (YAlignmentContainer)theEObject;
+				T result = caseYAlignmentContainer(yAlignmentContainer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YBEAN_SLOT: {
+				YBeanSlot yBeanSlot = (YBeanSlot)theEObject;
+				T result = caseYBeanSlot(yBeanSlot);
+				if (result == null) result = caseYBindable(yBeanSlot);
+				if (result == null) result = caseYTaggable(yBeanSlot);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YDETAIL_BEAN_SLOT: {
+				YDetailBeanSlot yDetailBeanSlot = (YDetailBeanSlot)theEObject;
+				T result = caseYDetailBeanSlot(yDetailBeanSlot);
+				if (result == null) result = caseYBeanSlot(yDetailBeanSlot);
+				if (result == null) result = caseYBindable(yDetailBeanSlot);
+				if (result == null) result = caseYTaggable(yDetailBeanSlot);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YEMBEDDABLE: {
+				YEmbeddable yEmbeddable = (YEmbeddable)theEObject;
+				T result = caseYEmbeddable(yEmbeddable);
+				if (result == null) result = caseYElement(yEmbeddable);
+				if (result == null) result = caseYCssAble(yEmbeddable);
+				if (result == null) result = caseYVisibleable(yEmbeddable);
+				if (result == null) result = caseYAuthorizationable(yEmbeddable);
+				if (result == null) result = caseYTaggable(yEmbeddable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YDIALOG: {
+				YDialog yDialog = (YDialog)theEObject;
+				T result = caseYDialog(yDialog);
+				if (result == null) result = caseYElement(yDialog);
+				if (result == null) result = caseYValueBindable(yDialog);
+				if (result == null) result = caseYCssAble(yDialog);
+				if (result == null) result = caseYTaggable(yDialog);
+				if (result == null) result = caseYBindable(yDialog);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YCSS_ABLE: {
+				YCssAble yCssAble = (YCssAble)theEObject;
+				T result = caseYCssAble(yCssAble);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YMARGINABLE: {
+				YMarginable yMarginable = (YMarginable)theEObject;
+				T result = caseYMarginable(yMarginable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YSPACINGABLE: {
+				YSpacingable ySpacingable = (YSpacingable)theEObject;
+				T result = caseYSpacingable(ySpacingable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YHEIGHTABLE: {
+				YHeightable yHeightable = (YHeightable)theEObject;
+				T result = caseYHeightable(yHeightable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YWIDTHABLE: {
+				YWidthable yWidthable = (YWidthable)theEObject;
+				T result = caseYWidthable(yWidthable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YACTIVATEABLE: {
+				YActivateable yActivateable = (YActivateable)theEObject;
+				T result = caseYActivateable(yActivateable);
+				if (result == null) result = caseYBindable(yActivateable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YVISIBLEABLE: {
+				YVisibleable yVisibleable = (YVisibleable)theEObject;
+				T result = caseYVisibleable(yVisibleable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YEDITABLE: {
+				YEditable yEditable = (YEditable)theEObject;
+				T result = caseYEditable(yEditable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YENABLE: {
+				YEnable yEnable = (YEnable)theEObject;
+				T result = caseYEnable(yEnable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YFOCUSABLE: {
+				YFocusable yFocusable = (YFocusable)theEObject;
+				T result = caseYFocusable(yFocusable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YACTION: {
+				YAction yAction = (YAction)theEObject;
+				T result = caseYAction(yAction);
+				if (result == null) result = caseYEmbeddable(yAction);
+				if (result == null) result = caseYEnable(yAction);
+				if (result == null) result = caseYElement(yAction);
+				if (result == null) result = caseYCssAble(yAction);
+				if (result == null) result = caseYVisibleable(yAction);
+				if (result == null) result = caseYAuthorizationable(yAction);
+				if (result == null) result = caseYTaggable(yAction);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YBINDABLE: {
+				YBindable yBindable = (YBindable)theEObject;
+				T result = caseYBindable(yBindable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YVALUE_BINDABLE: {
+				YValueBindable yValueBindable = (YValueBindable)theEObject;
+				T result = caseYValueBindable(yValueBindable);
+				if (result == null) result = caseYBindable(yValueBindable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YSELECTION_BINDABLE: {
+				YSelectionBindable ySelectionBindable = (YSelectionBindable)theEObject;
+				T result = caseYSelectionBindable(ySelectionBindable);
+				if (result == null) result = caseYBindable(ySelectionBindable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YMULTI_SELECTION_BINDABLE: {
+				YMultiSelectionBindable yMultiSelectionBindable = (YMultiSelectionBindable)theEObject;
+				T result = caseYMultiSelectionBindable(yMultiSelectionBindable);
+				if (result == null) result = caseYBindable(yMultiSelectionBindable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YCOLLECTION_BINDABLE: {
+				YCollectionBindable yCollectionBindable = (YCollectionBindable)theEObject;
+				T result = caseYCollectionBindable(yCollectionBindable);
+				if (result == null) result = caseYBindable(yCollectionBindable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YCONTEXT_VALUE_BINDING_ENDPOINT: {
+				YContextValueBindingEndpoint yContextValueBindingEndpoint = (YContextValueBindingEndpoint)theEObject;
+				T result = caseYContextValueBindingEndpoint(yContextValueBindingEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yContextValueBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yContextValueBindingEndpoint);
+				if (result == null) result = caseYElement(yContextValueBindingEndpoint);
+				if (result == null) result = caseYTaggable(yContextValueBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YBEAN_SLOT_VALUE_BINDING_ENDPOINT: {
+				YBeanSlotValueBindingEndpoint yBeanSlotValueBindingEndpoint = (YBeanSlotValueBindingEndpoint)theEObject;
+				T result = caseYBeanSlotValueBindingEndpoint(yBeanSlotValueBindingEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yBeanSlotValueBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yBeanSlotValueBindingEndpoint);
+				if (result == null) result = caseYElement(yBeanSlotValueBindingEndpoint);
+				if (result == null) result = caseYTaggable(yBeanSlotValueBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YBEAN_SLOT_LIST_BINDING_ENDPOINT: {
+				YBeanSlotListBindingEndpoint yBeanSlotListBindingEndpoint = (YBeanSlotListBindingEndpoint)theEObject;
+				T result = caseYBeanSlotListBindingEndpoint(yBeanSlotListBindingEndpoint);
+				if (result == null) result = caseYListBindingEndpoint(yBeanSlotListBindingEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yBeanSlotListBindingEndpoint);
+				if (result == null) result = caseYElement(yBeanSlotListBindingEndpoint);
+				if (result == null) result = caseYTaggable(yBeanSlotListBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YEMBEDDABLE_BINDING_ENDPOINT: {
+				YEmbeddableBindingEndpoint yEmbeddableBindingEndpoint = (YEmbeddableBindingEndpoint)theEObject;
+				T result = caseYEmbeddableBindingEndpoint(yEmbeddableBindingEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT: {
+				YEmbeddableValueEndpoint yEmbeddableValueEndpoint = (YEmbeddableValueEndpoint)theEObject;
+				T result = caseYEmbeddableValueEndpoint(yEmbeddableValueEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yEmbeddableValueEndpoint);
+				if (result == null) result = caseYEmbeddableBindingEndpoint(yEmbeddableValueEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yEmbeddableValueEndpoint);
+				if (result == null) result = caseYElement(yEmbeddableValueEndpoint);
+				if (result == null) result = caseYTaggable(yEmbeddableValueEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT: {
+				YEmbeddableSelectionEndpoint yEmbeddableSelectionEndpoint = (YEmbeddableSelectionEndpoint)theEObject;
+				T result = caseYEmbeddableSelectionEndpoint(yEmbeddableSelectionEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yEmbeddableSelectionEndpoint);
+				if (result == null) result = caseYEmbeddableBindingEndpoint(yEmbeddableSelectionEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yEmbeddableSelectionEndpoint);
+				if (result == null) result = caseYElement(yEmbeddableSelectionEndpoint);
+				if (result == null) result = caseYTaggable(yEmbeddableSelectionEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT: {
+				YEmbeddableMultiSelectionEndpoint yEmbeddableMultiSelectionEndpoint = (YEmbeddableMultiSelectionEndpoint)theEObject;
+				T result = caseYEmbeddableMultiSelectionEndpoint(yEmbeddableMultiSelectionEndpoint);
+				if (result == null) result = caseYListBindingEndpoint(yEmbeddableMultiSelectionEndpoint);
+				if (result == null) result = caseYEmbeddableBindingEndpoint(yEmbeddableMultiSelectionEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yEmbeddableMultiSelectionEndpoint);
+				if (result == null) result = caseYElement(yEmbeddableMultiSelectionEndpoint);
+				if (result == null) result = caseYTaggable(yEmbeddableMultiSelectionEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT: {
+				YEmbeddableCollectionEndpoint yEmbeddableCollectionEndpoint = (YEmbeddableCollectionEndpoint)theEObject;
+				T result = caseYEmbeddableCollectionEndpoint(yEmbeddableCollectionEndpoint);
+				if (result == null) result = caseYListBindingEndpoint(yEmbeddableCollectionEndpoint);
+				if (result == null) result = caseYEmbeddableBindingEndpoint(yEmbeddableCollectionEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yEmbeddableCollectionEndpoint);
+				if (result == null) result = caseYElement(yEmbeddableCollectionEndpoint);
+				if (result == null) result = caseYTaggable(yEmbeddableCollectionEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YACTIVATED_ENDPOINT: {
+				YActivatedEndpoint yActivatedEndpoint = (YActivatedEndpoint)theEObject;
+				T result = caseYActivatedEndpoint(yActivatedEndpoint);
+				if (result == null) result = caseYValueBindingEndpoint(yActivatedEndpoint);
+				if (result == null) result = caseYEmbeddableBindingEndpoint(yActivatedEndpoint);
+				if (result == null) result = caseYBindingEndpoint(yActivatedEndpoint);
+				if (result == null) result = caseYElement(yActivatedEndpoint);
+				if (result == null) result = caseYTaggable(yActivatedEndpoint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YDT_WRAPPER: {
+				YDtWrapper yDtWrapper = (YDtWrapper)theEObject;
+				T result = caseYDtWrapper(yDtWrapper);
+				if (result == null) result = caseYDatatype(yDtWrapper);
+				if (result == null) result = caseYDtBase(yDtWrapper);
+				if (result == null) result = caseYElement(yDtWrapper);
+				if (result == null) result = caseYTaggable(yDtWrapper);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YCOMMAND: {
+				YCommand yCommand = (YCommand)theEObject;
+				T result = caseYCommand(yCommand);
+				if (result == null) result = caseYElement(yCommand);
+				if (result == null) result = caseYTaggable(yCommand);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YCOMMAND_SET: {
+				YCommandSet yCommandSet = (YCommandSet)theEObject;
+				T result = caseYCommandSet(yCommandSet);
+				if (result == null) result = caseYElement(yCommandSet);
+				if (result == null) result = caseYTaggable(yCommandSet);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YOPEN_DIALOG_COMMAND: {
+				YOpenDialogCommand yOpenDialogCommand = (YOpenDialogCommand)theEObject;
+				T result = caseYOpenDialogCommand(yOpenDialogCommand);
+				if (result == null) result = caseYCommand(yOpenDialogCommand);
+				if (result == null) result = caseYElement(yOpenDialogCommand);
+				if (result == null) result = caseYTaggable(yOpenDialogCommand);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YEXPOSED_ACTION: {
+				YExposedAction yExposedAction = (YExposedAction)theEObject;
+				T result = caseYExposedAction(yExposedAction);
+				if (result == null) result = caseYElement(yExposedAction);
+				if (result == null) result = caseYEnable(yExposedAction);
+				if (result == null) result = caseYTaggable(yExposedAction);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YSEND_EVENT_COMMAND: {
+				YSendEventCommand ySendEventCommand = (YSendEventCommand)theEObject;
+				T result = caseYSendEventCommand(ySendEventCommand);
+				if (result == null) result = caseYCommand(ySendEventCommand);
+				if (result == null) result = caseYElement(ySendEventCommand);
+				if (result == null) result = caseYTaggable(ySendEventCommand);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YKEY_STROKE_DEFINITION: {
+				YKeyStrokeDefinition yKeyStrokeDefinition = (YKeyStrokeDefinition)theEObject;
+				T result = caseYKeyStrokeDefinition(yKeyStrokeDefinition);
+				if (result == null) result = caseYElement(yKeyStrokeDefinition);
+				if (result == null) result = caseYTaggable(yKeyStrokeDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YCONVERTER: {
+				YConverter yConverter = (YConverter)theEObject;
+				T result = caseYConverter(yConverter);
+				if (result == null) result = caseYElement(yConverter);
+				if (result == null) result = caseYTaggable(yConverter);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YDELEGATE_CONVERTER: {
+				YDelegateConverter yDelegateConverter = (YDelegateConverter)theEObject;
+				T result = caseYDelegateConverter(yDelegateConverter);
+				if (result == null) result = caseYConverter(yDelegateConverter);
+				if (result == null) result = caseYElement(yDelegateConverter);
+				if (result == null) result = caseYTaggable(yDelegateConverter);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YMEMENTO: {
+				YMemento yMemento = (YMemento)theEObject;
+				T result = caseYMemento(yMemento);
+				if (result == null) result = caseYElement(yMemento);
+				if (result == null) result = caseYTaggable(yMemento);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YAUTHORIZATIONABLE: {
+				YAuthorizationable yAuthorizationable = (YAuthorizationable)theEObject;
+				T result = caseYAuthorizationable(yAuthorizationable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case CoreModelPackage.YTAGGABLE: {
+				YTaggable yTaggable = (YTaggable)theEObject;
+				T result = caseYTaggable(yTaggable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYElement(YElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YString To String Map</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YString To String Map</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYStringToStringMap(Map.Entry<String, String> object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YLayout</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YLayout</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYLayout(YLayout object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YHelper Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YHelper Layout</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYHelperLayout(YHelperLayout object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YField</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YField</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYField(YField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YView</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YView</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYView(YView object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YView Set</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YView Set</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYViewSet(YViewSet object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAlignment Container</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAlignment Container</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAlignmentContainer(YAlignmentContainer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBean Slot</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBean Slot</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBeanSlot(YBeanSlot object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDetail Bean Slot</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDetail Bean Slot</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDetailBeanSlot(YDetailBeanSlot object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YHelper Layout Provider</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YHelper Layout Provider</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYHelperLayoutProvider(YHelperLayoutProvider object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEmbeddable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEmbeddable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEmbeddable(YEmbeddable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDialog</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDialog</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDialog(YDialog object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCss Able</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCss Able</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCssAble(YCssAble object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMarginable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMarginable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMarginable(YMarginable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSpacingable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSpacingable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSpacingable(YSpacingable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YHeightable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YHeightable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYHeightable(YHeightable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YWidthable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YWidthable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYWidthable(YWidthable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YActivateable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YActivateable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYActivateable(YActivateable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YVisibleable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YVisibleable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYVisibleable(YVisibleable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEditable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEditable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEditable(YEditable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEnable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEnable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEnable(YEnable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YFocusable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YFocusable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYFocusable(YFocusable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAction</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAction</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAction(YAction object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBindable(YBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YValue Bindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YValue Bindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYValueBindable(YValueBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSelection Bindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSelection Bindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSelectionBindable(YSelectionBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMulti Selection Bindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMulti Selection Bindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMultiSelectionBindable(YMultiSelectionBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCollection Bindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCollection Bindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCollectionBindable(YCollectionBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YContext Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YContext Value Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYContextValueBindingEndpoint(YContextValueBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBean Slot Value Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBean Slot Value Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBeanSlotValueBindingEndpoint(YBeanSlotValueBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBean Slot List Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBean Slot List Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBeanSlotListBindingEndpoint(YBeanSlotListBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEmbeddable Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEmbeddable Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEmbeddableBindingEndpoint(YEmbeddableBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEmbeddable Value Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEmbeddable Value Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEmbeddableValueEndpoint(YEmbeddableValueEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEmbeddable Selection Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEmbeddable Selection Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEmbeddableSelectionEndpoint(YEmbeddableSelectionEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEmbeddable Multi Selection Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEmbeddable Multi Selection Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEmbeddableMultiSelectionEndpoint(YEmbeddableMultiSelectionEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEmbeddable Collection Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEmbeddable Collection Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEmbeddableCollectionEndpoint(YEmbeddableCollectionEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YActivated Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YActivated Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYActivatedEndpoint(YActivatedEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDt Wrapper</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDt Wrapper</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDtWrapper(YDtWrapper object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCommand</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCommand</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCommand(YCommand object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCommand Set</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCommand Set</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCommandSet(YCommandSet object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YOpen Dialog Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YOpen Dialog Command</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYOpenDialogCommand(YOpenDialogCommand object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YExposed Action</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YExposed Action</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYExposedAction(YExposedAction object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSend Event Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSend Event Command</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSendEventCommand(YSendEventCommand object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YKey Stroke Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YKey Stroke Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYKeyStrokeDefinition(YKeyStrokeDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YConverter</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YConverter</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYConverter(YConverter object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDelegate Converter</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDelegate Converter</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDelegateConverter(YDelegateConverter object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMemento</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMemento</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMemento(YMemento object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAuthorizationable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAuthorizationable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAuthorizationable(YAuthorizationable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTaggable(YTaggable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBinding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBinding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBindingEndpoint(YBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YValue Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YValue Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYValueBindingEndpoint(YValueBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YList Binding Endpoint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YList Binding Endpoint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYListBindingEndpoint(YListBindingEndpoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDt Base</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDt Base</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDtBase(YDtBase object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDatatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDatatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDatatype(YDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //UiModelSwitch
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/CoreModelUtil.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/CoreModelUtil.java
new file mode 100644
index 0000000..a356bd5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/CoreModelUtil.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YVisibleable;
+
+public class CoreModelUtil {
+
+	/**
+	 * Initializes the transient values.
+	 * 
+	 * @param yEmbeddable
+	 */
+	public static void initTransientValues(YEmbeddable yEmbeddable) {
+		if (yEmbeddable instanceof YEditable) {
+			((YEditable) yEmbeddable).setEditable(((YEditable) yEmbeddable)
+					.isInitialEditable());
+		}
+
+		if (yEmbeddable instanceof YEnable) {
+			((YEnable) yEmbeddable).setEnabled(((YEnable) yEmbeddable)
+					.isInitialEnabled());
+		}
+
+		if (yEmbeddable instanceof YVisibleable) {
+			((YVisibleable) yEmbeddable)
+					.setVisible(((YVisibleable) yEmbeddable).isInitialVisible());
+		}
+	}
+
+	/**
+	 * Casts the given object to EObject.
+	 * 
+	 * @param object
+	 * @return
+	 */
+	public static EObject castEObject(Object object) {
+		return (EObject) object;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/IBindableFeaturesItemProvider.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/IBindableFeaturesItemProvider.java
new file mode 100644
index 0000000..e9a8902
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/IBindableFeaturesItemProvider.java
@@ -0,0 +1,45 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * This ItemProvider determines which features of a given YElement may become
+ * binded.
+ */
+public interface IBindableFeaturesItemProvider {
+
+	/**
+	 * Returns the list of bindable features.
+	 * 
+	 * @param element
+	 * @return
+	 */
+	List<EStructuralFeature> getBindableFeatures(YElement element);
+
+	/**
+	 * Returns the type of the given structural feature. Subclasses can override
+	 * and return a different class. See <code>YTableItemProvider</code> for
+	 * instance.
+	 * 
+	 * @param element
+	 * @param feature
+	 * @return
+	 */
+	Class<?> getFeatureType(YElement element, EStructuralFeature feature);
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/SimpleCoreModelFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/SimpleCoreModelFactory.java
new file mode 100644
index 0000000..1b49a15
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/core/util/SimpleCoreModelFactory.java
@@ -0,0 +1,130 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.core.util;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+public class SimpleCoreModelFactory {
+
+	/**
+	 * Creates an instance of {@link YView}
+	 * 
+	 * @return
+	 */
+	public YView createView() {
+		return CoreModelFactory.eINSTANCE.createYView();
+	}
+
+	/**
+	 * Creates an instance of {@link YViewSet}
+	 * 
+	 * @return
+	 */
+	public YViewSet createViewSet() {
+		return CoreModelFactory.eINSTANCE.createYViewSet();
+	}
+
+	/**
+	 * Creates an instance of {@link YDatadescription}
+	 * 
+	 * @return
+	 */
+	public YDatadescription createDatadescription() {
+		return DatatypesFactory.eINSTANCE.createYDatadescription();
+	}
+
+	/**
+	 * Creates an instance of {@link YEmbeddableValueEndpoint}
+	 * 
+	 * @return
+	 */
+	public YEmbeddableValueEndpoint createEmbeddableValueEndpoint() {
+		return CoreModelFactory.eINSTANCE.createYEmbeddableValueEndpoint();
+	}
+
+	/**
+	 * Creates an instance of {@link YECViewModelValueBindingEndpoint}
+	 * 
+	 * @return
+	 */
+	public YECViewModelValueBindingEndpoint createECViewModelValueBindingEndpoint() {
+		return BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+	} 
+
+	/**
+	 * Creates an instance of {@link YECViewModelListBindingEndpoint}
+	 * 
+	 * @return
+	 */ 
+	public YECViewModelListBindingEndpoint createECViewModelListBindingEndpoint() {
+		return BindingFactory.eINSTANCE.createYECViewModelListBindingEndpoint();
+	}
+
+	/**
+	 * Creates an instance of {@link YContextValueBindingEndpoint}
+	 * 
+	 * @return
+	 */
+	public YContextValueBindingEndpoint createContextBindingEndpoint() {
+		return CoreModelFactory.eINSTANCE.createYContextValueBindingEndpoint();
+	}
+
+	/**
+	 * Creates an instance of {@link YBeanValueBindingEndpoint}
+	 * 
+	 * @return
+	 */
+	public YBeanValueBindingEndpoint createBeanBindingEndpoint() {
+		return BindingFactory.eINSTANCE.createYBeanValueBindingEndpoint();
+	}
+
+	/**
+	 * Creates an instance of {@link YBeanSlotValueBindingEndpoint}
+	 * 
+	 * @return
+	 */
+	public YBeanSlotValueBindingEndpoint createBeanSlotValueBindingEndpoint() {
+		return CoreModelFactory.eINSTANCE.createYBeanSlotValueBindingEndpoint();
+	}
+
+	/**
+	 * Creates an instance of {@link YBeanSlotListBindingEndpoint}
+	 * 
+	 * @return
+	 */
+	public YBeanSlotListBindingEndpoint createBeanSlotListBindingEndpoint() {
+		return CoreModelFactory.eINSTANCE.createYBeanSlotListBindingEndpoint();
+	}
+
+	/**
+	 * Creates an instance of {@link YBeanSlot}
+	 * 
+	 * @return
+	 */
+	public YBeanSlot createBeanSlot() {
+		return CoreModelFactory.eINSTANCE.createYBeanSlot();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/DatatypesFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/DatatypesFactory.java
new file mode 100644
index 0000000..9453a93
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/DatatypesFactory.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage
+ * @generated
+ */
+public interface DatatypesFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DatatypesFactory eINSTANCE = org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>YDatadescription</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDatadescription</em>'.
+	 * @generated
+	 */
+	YDatadescription createYDatadescription();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	DatatypesPackage getDatatypesPackage();
+
+} //DatatypesFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/DatatypesPackage.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/DatatypesPackage.java
new file mode 100644
index 0000000..a349fb5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/DatatypesPackage.java
@@ -0,0 +1,446 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface DatatypesPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "datatypes";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/ecview/v1/core/datatypes";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "datatypes";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DatatypesPackage eINSTANCE = org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase <em>YDt Base</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl#getYDtBase()
+	 * @generated
+	 */
+	int YDT_BASE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_BASE__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_BASE__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_BASE__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_BASE__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_BASE__DESCRIPTION = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YDt Base</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDT_BASE_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype <em>YDatatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl#getYDatatype()
+	 * @generated
+	 */
+	int YDATATYPE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATATYPE__TAGS = YDT_BASE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATATYPE__ID = YDT_BASE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATATYPE__NAME = YDT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATATYPE__PROPERTIES = YDT_BASE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATATYPE__DESCRIPTION = YDT_BASE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATATYPE__VALIDATORS = YDT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YDatatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATATYPE_FEATURE_COUNT = YDT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl <em>YDatadescription</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl#getYDatadescription()
+	 * @generated
+	 */
+	int YDATADESCRIPTION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATADESCRIPTION__TAGS = YDT_BASE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATADESCRIPTION__ID = YDT_BASE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATADESCRIPTION__NAME = YDT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATADESCRIPTION__PROPERTIES = YDT_BASE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATADESCRIPTION__DESCRIPTION = YDT_BASE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATADESCRIPTION__LABEL = YDT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATADESCRIPTION__LABEL_I1_8N_KEY = YDT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YDatadescription</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATADESCRIPTION_FEATURE_COUNT = YDT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase <em>YDt Base</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDt Base</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase
+	 * @generated
+	 */
+	EClass getYDtBase();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase#getDescription()
+	 * @see #getYDtBase()
+	 * @generated
+	 */
+	EAttribute getYDtBase_Description();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype <em>YDatatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDatatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype
+	 * @generated
+	 */
+	EClass getYDatatype();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype#getValidators <em>Validators</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Validators</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype#getValidators()
+	 * @see #getYDatatype()
+	 * @generated
+	 */
+	EReference getYDatatype_Validators();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription <em>YDatadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDatadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription
+	 * @generated
+	 */
+	EClass getYDatadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription#getLabel <em>Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Label</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription#getLabel()
+	 * @see #getYDatadescription()
+	 * @generated
+	 */
+	EAttribute getYDatadescription_Label();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription#getLabelI18nKey <em>Label I1 8n Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Label I1 8n Key</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription#getLabelI18nKey()
+	 * @see #getYDatadescription()
+	 * @generated
+	 */
+	EAttribute getYDatadescription_LabelI18nKey();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	DatatypesFactory getDatatypesFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase <em>YDt Base</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase
+		 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl#getYDtBase()
+		 * @generated
+		 */
+		EClass YDT_BASE = eINSTANCE.getYDtBase();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDT_BASE__DESCRIPTION = eINSTANCE.getYDtBase_Description();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype <em>YDatatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype
+		 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl#getYDatatype()
+		 * @generated
+		 */
+		EClass YDATATYPE = eINSTANCE.getYDatatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Validators</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDATATYPE__VALIDATORS = eINSTANCE.getYDatatype_Validators();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl <em>YDatadescription</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl#getYDatadescription()
+		 * @generated
+		 */
+		EClass YDATADESCRIPTION = eINSTANCE.getYDatadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDATADESCRIPTION__LABEL = eINSTANCE.getYDatadescription_Label();
+
+		/**
+		 * The meta object literal for the '<em><b>Label I1 8n Key</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDATADESCRIPTION__LABEL_I1_8N_KEY = eINSTANCE.getYDatadescription_LabelI18nKey();
+
+	}
+
+} //DatatypesPackage
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/YDatadescription.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/YDatadescription.java
new file mode 100644
index 0000000..4151956
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/YDatadescription.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YDatadescription</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription#getLabel <em>Label</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription#getLabelI18nKey <em>Label I1 8n Key</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage#getYDatadescription()
+ * @model
+ * @generated
+ */
+public interface YDatadescription extends YDtBase {
+	/**
+	 * Returns the value of the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Label</em>' attribute.
+	 * @see #setLabel(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage#getYDatadescription_Label()
+	 * @model
+	 * @generated
+	 */
+	String getLabel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription#getLabel <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Label</em>' attribute.
+	 * @see #getLabel()
+	 * @generated
+	 */
+	void setLabel(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label I1 8n Key</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Label I1 8n Key</em>' attribute.
+	 * @see #setLabelI18nKey(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage#getYDatadescription_LabelI18nKey()
+	 * @model
+	 * @generated
+	 */
+	String getLabelI18nKey();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription#getLabelI18nKey <em>Label I1 8n Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Label I1 8n Key</em>' attribute.
+	 * @see #getLabelI18nKey()
+	 * @generated
+	 */
+	void setLabelI18nKey(String value);
+
+} // YDatadescription
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/YDatatype.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/YDatatype.java
new file mode 100644
index 0000000..cd19b80
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/YDatatype.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YDatatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage#getYDatatype()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YDatatype extends YDtBase {
+
+	/**
+	 * Returns the value of the '<em><b>Validators</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.validation.YValidator}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Validators</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Validators</em>' reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage#getYDatatype_Validators()
+	 * @model
+	 * @generated
+	 */
+	EList<YValidator> getValidators();
+} // YDatatype
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/YDtBase.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/YDtBase.java
new file mode 100644
index 0000000..4f618f4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/YDtBase.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YDt Base</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage#getYDtBase()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YDtBase extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage#getYDtBase_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+} // YDtBase
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/impl/DatatypesFactoryImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/impl/DatatypesFactoryImpl.java
new file mode 100644
index 0000000..d395553
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/impl/DatatypesFactoryImpl.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatatypesFactoryImpl extends EFactoryImpl implements DatatypesFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DatatypesFactory init() {
+		try {
+			DatatypesFactory theDatatypesFactory = (DatatypesFactory)EPackage.Registry.INSTANCE.getEFactory(DatatypesPackage.eNS_URI);
+			if (theDatatypesFactory != null) {
+				return theDatatypesFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new DatatypesFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatatypesFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case DatatypesPackage.YDATADESCRIPTION: return createYDatadescription();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDatadescription createYDatadescription() {
+		YDatadescriptionImpl yDatadescription = new YDatadescriptionImpl();
+		return yDatadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatatypesPackage getDatatypesPackage() {
+		return (DatatypesPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static DatatypesPackage getPackage() {
+		return DatatypesPackage.eINSTANCE;
+	}
+
+} //DatatypesFactoryImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/impl/DatatypesPackageImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/impl/DatatypesPackageImpl.java
new file mode 100644
index 0000000..fa1cf66
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/impl/DatatypesPackageImpl.java
@@ -0,0 +1,293 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatatypesPackageImpl extends EPackageImpl implements DatatypesPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yDtBaseEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yDatadescriptionEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private DatatypesPackageImpl() {
+		super(eNS_URI, DatatypesFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link DatatypesPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static DatatypesPackage init() {
+		if (isInited) return (DatatypesPackage)EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+
+		// Obtain or create and register package
+		DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DatatypesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new DatatypesPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		BindingPackageImpl theBindingPackage = (BindingPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) instanceof BindingPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) : BindingPackage.eINSTANCE);
+		CoreModelPackageImpl theCoreModelPackage = (CoreModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) instanceof CoreModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) : CoreModelPackage.eINSTANCE);
+		AuthorizationPackageImpl theAuthorizationPackage = (AuthorizationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) instanceof AuthorizationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) : AuthorizationPackage.eINSTANCE);
+		ValidationPackageImpl theValidationPackage = (ValidationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) instanceof ValidationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) : ValidationPackage.eINSTANCE);
+		VisibilityPackageImpl theVisibilityPackage = (VisibilityPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) instanceof VisibilityPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) : VisibilityPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theDatatypesPackage.createPackageContents();
+		theBindingPackage.createPackageContents();
+		theCoreModelPackage.createPackageContents();
+		theAuthorizationPackage.createPackageContents();
+		theValidationPackage.createPackageContents();
+		theVisibilityPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theDatatypesPackage.initializePackageContents();
+		theBindingPackage.initializePackageContents();
+		theCoreModelPackage.initializePackageContents();
+		theAuthorizationPackage.initializePackageContents();
+		theValidationPackage.initializePackageContents();
+		theVisibilityPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theDatatypesPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(DatatypesPackage.eNS_URI, theDatatypesPackage);
+		return theDatatypesPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYDtBase() {
+		return yDtBaseEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDtBase_Description() {
+		return (EAttribute)yDtBaseEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYDatatype() {
+		return yDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYDatatype_Validators() {
+		return (EReference)yDatatypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYDatadescription() {
+		return yDatadescriptionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDatadescription_Label() {
+		return (EAttribute)yDatadescriptionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYDatadescription_LabelI18nKey() {
+		return (EAttribute)yDatadescriptionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatatypesFactory getDatatypesFactory() {
+		return (DatatypesFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		yDtBaseEClass = createEClass(YDT_BASE);
+		createEAttribute(yDtBaseEClass, YDT_BASE__DESCRIPTION);
+
+		yDatatypeEClass = createEClass(YDATATYPE);
+		createEReference(yDatatypeEClass, YDATATYPE__VALIDATORS);
+
+		yDatadescriptionEClass = createEClass(YDATADESCRIPTION);
+		createEAttribute(yDatadescriptionEClass, YDATADESCRIPTION__LABEL);
+		createEAttribute(yDatadescriptionEClass, YDATADESCRIPTION__LABEL_I1_8N_KEY);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		CoreModelPackage theCoreModelPackage = (CoreModelPackage)EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI);
+		ValidationPackage theValidationPackage = (ValidationPackage)EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		yDtBaseEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		yDatatypeEClass.getESuperTypes().add(this.getYDtBase());
+		yDatadescriptionEClass.getESuperTypes().add(this.getYDtBase());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(yDtBaseEClass, YDtBase.class, "YDtBase", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYDtBase_Description(), ecorePackage.getEString(), "description", null, 0, 1, YDtBase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yDatatypeEClass, YDatatype.class, "YDatatype", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYDatatype_Validators(), theValidationPackage.getYValidator(), null, "validators", null, 0, -1, YDatatype.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yDatadescriptionEClass, YDatadescription.class, "YDatadescription", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYDatadescription_Label(), ecorePackage.getEString(), "label", null, 0, 1, YDatadescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDatadescription_LabelI18nKey(), ecorePackage.getEString(), "labelI18nKey", null, 0, 1, YDatadescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //DatatypesPackageImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/impl/YDatadescriptionImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/impl/YDatadescriptionImpl.java
new file mode 100644
index 0000000..60edec7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/impl/YDatadescriptionImpl.java
@@ -0,0 +1,481 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YDatadescription</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl#getLabel <em>Label</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.datatypes.impl.YDatadescriptionImpl#getLabelI18nKey <em>Label I1 8n Key</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YDatadescriptionImpl extends MinimalEObjectImpl.Container implements YDatadescription {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected String label = LABEL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLabelI18nKey() <em>Label I1 8n Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabelI18nKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_I1_8N_KEY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLabelI18nKey() <em>Label I1 8n Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabelI18nKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected String labelI18nKey = LABEL_I1_8N_KEY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDatadescriptionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DatatypesPackage.Literals.YDATADESCRIPTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatatypesPackage.YDATADESCRIPTION__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatatypesPackage.YDATADESCRIPTION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, DatatypesPackage.YDATADESCRIPTION__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, DatatypesPackage.YDATADESCRIPTION__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatatypesPackage.YDATADESCRIPTION__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLabel() {
+		return label;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabel(String newLabel) {
+		String oldLabel = label;
+		label = newLabel;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatatypesPackage.YDATADESCRIPTION__LABEL, oldLabel, label));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLabelI18nKey() {
+		return labelI18nKey;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabelI18nKey(String newLabelI18nKey) {
+		String oldLabelI18nKey = labelI18nKey;
+		labelI18nKey = newLabelI18nKey;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatatypesPackage.YDATADESCRIPTION__LABEL_I1_8N_KEY, oldLabelI18nKey, labelI18nKey));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DatatypesPackage.YDATADESCRIPTION__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatatypesPackage.YDATADESCRIPTION__TAGS:
+				return getTags();
+			case DatatypesPackage.YDATADESCRIPTION__ID:
+				return getId();
+			case DatatypesPackage.YDATADESCRIPTION__NAME:
+				return getName();
+			case DatatypesPackage.YDATADESCRIPTION__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case DatatypesPackage.YDATADESCRIPTION__DESCRIPTION:
+				return getDescription();
+			case DatatypesPackage.YDATADESCRIPTION__LABEL:
+				return getLabel();
+			case DatatypesPackage.YDATADESCRIPTION__LABEL_I1_8N_KEY:
+				return getLabelI18nKey();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatatypesPackage.YDATADESCRIPTION__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__ID:
+				setId((String)newValue);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__NAME:
+				setName((String)newValue);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__LABEL:
+				setLabel((String)newValue);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__LABEL_I1_8N_KEY:
+				setLabelI18nKey((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatatypesPackage.YDATADESCRIPTION__TAGS:
+				getTags().clear();
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__PROPERTIES:
+				getProperties().clear();
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__LABEL:
+				setLabel(LABEL_EDEFAULT);
+				return;
+			case DatatypesPackage.YDATADESCRIPTION__LABEL_I1_8N_KEY:
+				setLabelI18nKey(LABEL_I1_8N_KEY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatatypesPackage.YDATADESCRIPTION__TAGS:
+				return tags != null && !tags.isEmpty();
+			case DatatypesPackage.YDATADESCRIPTION__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case DatatypesPackage.YDATADESCRIPTION__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case DatatypesPackage.YDATADESCRIPTION__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case DatatypesPackage.YDATADESCRIPTION__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case DatatypesPackage.YDATADESCRIPTION__LABEL:
+				return LABEL_EDEFAULT == null ? label != null : !LABEL_EDEFAULT.equals(label);
+			case DatatypesPackage.YDATADESCRIPTION__LABEL_I1_8N_KEY:
+				return LABEL_I1_8N_KEY_EDEFAULT == null ? labelI18nKey != null : !LABEL_I1_8N_KEY_EDEFAULT.equals(labelI18nKey);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(", label: ");
+		result.append(label);
+		result.append(", labelI18nKey: ");
+		result.append(labelI18nKey);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YDatadescriptionImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/util/DatatypesAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/util/DatatypesAdapterFactory.java
new file mode 100644
index 0000000..2793523
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/util/DatatypesAdapterFactory.java
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage
+ * @generated
+ */
+public class DatatypesAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DatatypesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatatypesAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = DatatypesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatatypesSwitch<Adapter> modelSwitch =
+		new DatatypesSwitch<Adapter>() {
+			@Override
+			public Adapter caseYDtBase(YDtBase object) {
+				return createYDtBaseAdapter();
+			}
+			@Override
+			public Adapter caseYDatatype(YDatatype object) {
+				return createYDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYDatadescription(YDatadescription object) {
+				return createYDatadescriptionAdapter();
+			}
+			@Override
+			public Adapter caseYTaggable(YTaggable object) {
+				return createYTaggableAdapter();
+			}
+			@Override
+			public Adapter caseYElement(YElement object) {
+				return createYElementAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase <em>YDt Base</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase
+	 * @generated
+	 */
+	public Adapter createYDtBaseAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype <em>YDatatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype
+	 * @generated
+	 */
+	public Adapter createYDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription <em>YDatadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription
+	 * @generated
+	 */
+	public Adapter createYDatadescriptionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+	 * @generated
+	 */
+	public Adapter createYTaggableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+	 * @generated
+	 */
+	public Adapter createYElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //DatatypesAdapterFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/util/DatatypesSwitch.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/util/DatatypesSwitch.java
new file mode 100644
index 0000000..ed72e47
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/datatypes/util/DatatypesSwitch.java
@@ -0,0 +1,201 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.datatypes.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage
+ * @generated
+ */
+public class DatatypesSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DatatypesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatatypesSwitch() {
+		if (modelPackage == null) {
+			modelPackage = DatatypesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case DatatypesPackage.YDT_BASE: {
+				YDtBase yDtBase = (YDtBase)theEObject;
+				T result = caseYDtBase(yDtBase);
+				if (result == null) result = caseYElement(yDtBase);
+				if (result == null) result = caseYTaggable(yDtBase);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatatypesPackage.YDATATYPE: {
+				YDatatype yDatatype = (YDatatype)theEObject;
+				T result = caseYDatatype(yDatatype);
+				if (result == null) result = caseYDtBase(yDatatype);
+				if (result == null) result = caseYElement(yDatatype);
+				if (result == null) result = caseYTaggable(yDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatatypesPackage.YDATADESCRIPTION: {
+				YDatadescription yDatadescription = (YDatadescription)theEObject;
+				T result = caseYDatadescription(yDatadescription);
+				if (result == null) result = caseYDtBase(yDatadescription);
+				if (result == null) result = caseYElement(yDatadescription);
+				if (result == null) result = caseYTaggable(yDatadescription);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDt Base</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDt Base</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDtBase(YDtBase object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDatatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDatatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDatatype(YDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDatadescription</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDatadescription</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDatadescription(YDatadescription object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTaggable(YTaggable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYElement(YElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //DatatypesSwitch
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/ValidationFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/ValidationFactory.java
new file mode 100644
index 0000000..9b132c2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/ValidationFactory.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage
+ * @generated
+ */
+public interface ValidationFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ValidationFactory eINSTANCE = org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>YMin Length Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YMin Length Validator</em>'.
+	 * @generated
+	 */
+	YMinLengthValidator createYMinLengthValidator();
+
+	/**
+	 * Returns a new object of class '<em>YMax Length Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YMax Length Validator</em>'.
+	 * @generated
+	 */
+	YMaxLengthValidator createYMaxLengthValidator();
+
+	/**
+	 * Returns a new object of class '<em>YRegexp Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YRegexp Validator</em>'.
+	 * @generated
+	 */
+	YRegexpValidator createYRegexpValidator();
+
+	/**
+	 * Returns a new object of class '<em>YClass Delegate Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YClass Delegate Validator</em>'.
+	 * @generated
+	 */
+	YClassDelegateValidator createYClassDelegateValidator();
+
+	/**
+	 * Returns a new object of class '<em>YBean Validation Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBean Validation Validator</em>'.
+	 * @generated
+	 */
+	YBeanValidationValidator createYBeanValidationValidator();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	ValidationPackage getValidationPackage();
+
+} //ValidationFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/ValidationPackage.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/ValidationPackage.java
new file mode 100644
index 0000000..64725a9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/ValidationPackage.java
@@ -0,0 +1,1346 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ValidationPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "validation";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/ecview/v1/core/validation";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "validation";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ValidationPackage eINSTANCE = org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YValidatorImpl <em>YValidator</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YValidatorImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYValidator()
+	 * @generated
+	 */
+	int YVALIDATOR = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALIDATOR__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALIDATOR__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALIDATOR__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALIDATOR__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALIDATOR__TYPE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YValidator</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALIDATOR_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMinLengthValidatorImpl <em>YMin Length Validator</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YMinLengthValidatorImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYMinLengthValidator()
+	 * @generated
+	 */
+	int YMIN_LENGTH_VALIDATOR = 1;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATOR__TAGS = YVALIDATOR__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATOR__ID = YVALIDATOR__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATOR__NAME = YVALIDATOR__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATOR__PROPERTIES = YVALIDATOR__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATOR__TYPE = YVALIDATOR__TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATOR__ERROR_CODE = YVALIDATOR_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE = YVALIDATOR_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Min Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATOR__MIN_LENGTH = YVALIDATOR_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YMin Length Validator</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATOR_FEATURE_COUNT = YVALIDATOR_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMaxLengthValidatorImpl <em>YMax Length Validator</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YMaxLengthValidatorImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYMaxLengthValidator()
+	 * @generated
+	 */
+	int YMAX_LENGTH_VALIDATOR = 2;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATOR__TAGS = YVALIDATOR__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATOR__ID = YVALIDATOR__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATOR__NAME = YVALIDATOR__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATOR__PROPERTIES = YVALIDATOR__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATOR__TYPE = YVALIDATOR__TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATOR__ERROR_CODE = YVALIDATOR_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE = YVALIDATOR_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Max Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATOR__MAX_LENGTH = YVALIDATOR_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YMax Length Validator</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATOR_FEATURE_COUNT = YVALIDATOR_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YRegexpValidatorImpl <em>YRegexp Validator</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YRegexpValidatorImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYRegexpValidator()
+	 * @generated
+	 */
+	int YREGEXP_VALIDATOR = 3;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATOR__TAGS = YVALIDATOR__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATOR__ID = YVALIDATOR__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATOR__NAME = YVALIDATOR__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATOR__PROPERTIES = YVALIDATOR__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATOR__TYPE = YVALIDATOR__TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATOR__ERROR_CODE = YVALIDATOR_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATOR__DEFAULT_ERROR_MESSAGE = YVALIDATOR_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Reg Expression</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATOR__REG_EXPRESSION = YVALIDATOR_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YRegexp Validator</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATOR_FEATURE_COUNT = YVALIDATOR_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YClassDelegateValidatorImpl <em>YClass Delegate Validator</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YClassDelegateValidatorImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYClassDelegateValidator()
+	 * @generated
+	 */
+	int YCLASS_DELEGATE_VALIDATOR = 4;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATOR__TAGS = YVALIDATOR__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATOR__ID = YVALIDATOR__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATOR__NAME = YVALIDATOR__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATOR__PROPERTIES = YVALIDATOR__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATOR__TYPE = YVALIDATOR__TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATOR__ERROR_CODE = YVALIDATOR_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATOR__DEFAULT_ERROR_MESSAGE = YVALIDATOR_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Class Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATOR__CLASS_NAME = YVALIDATOR_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YClass Delegate Validator</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATOR_FEATURE_COUNT = YVALIDATOR_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YBeanValidationValidatorImpl <em>YBean Validation Validator</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YBeanValidationValidatorImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYBeanValidationValidator()
+	 * @generated
+	 */
+	int YBEAN_VALIDATION_VALIDATOR = 5;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__TAGS = YVALIDATOR__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__ID = YVALIDATOR__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__NAME = YVALIDATOR__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__PROPERTIES = YVALIDATOR__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__TYPE = YVALIDATOR__TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__ERROR_CODE = YVALIDATOR_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__DEFAULT_ERROR_MESSAGE = YVALIDATOR_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Bval Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS = YVALIDATOR_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Bval Class Fully Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS_FULLY_QUALIFIED_NAME = YVALIDATOR_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Bval Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR__BVAL_PROPERTY = YVALIDATOR_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>YBean Validation Validator</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR_FEATURE_COUNT = YVALIDATOR_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig <em>YValidation Config</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYValidationConfig()
+	 * @generated
+	 */
+	int YVALIDATION_CONFIG = 6;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALIDATION_CONFIG__ERROR_CODE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE = 1;
+
+	/**
+	 * The number of structural features of the '<em>YValidation Config</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVALIDATION_CONFIG_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig <em>YMin Length Validation Config</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYMinLengthValidationConfig()
+	 * @generated
+	 */
+	int YMIN_LENGTH_VALIDATION_CONFIG = 7;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATION_CONFIG__ERROR_CODE = YVALIDATION_CONFIG__ERROR_CODE;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE = YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+
+	/**
+	 * The feature id for the '<em><b>Min Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH = YVALIDATION_CONFIG_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YMin Length Validation Config</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMIN_LENGTH_VALIDATION_CONFIG_FEATURE_COUNT = YVALIDATION_CONFIG_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig <em>YMax Length Validation Config</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYMaxLengthValidationConfig()
+	 * @generated
+	 */
+	int YMAX_LENGTH_VALIDATION_CONFIG = 8;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATION_CONFIG__ERROR_CODE = YVALIDATION_CONFIG__ERROR_CODE;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE = YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+
+	/**
+	 * The feature id for the '<em><b>Max Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH = YVALIDATION_CONFIG_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YMax Length Validation Config</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMAX_LENGTH_VALIDATION_CONFIG_FEATURE_COUNT = YVALIDATION_CONFIG_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig <em>YRegexp Validation Config</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYRegexpValidationConfig()
+	 * @generated
+	 */
+	int YREGEXP_VALIDATION_CONFIG = 9;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATION_CONFIG__ERROR_CODE = YVALIDATION_CONFIG__ERROR_CODE;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE = YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+
+	/**
+	 * The feature id for the '<em><b>Reg Expression</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION = YVALIDATION_CONFIG_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YRegexp Validation Config</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREGEXP_VALIDATION_CONFIG_FEATURE_COUNT = YVALIDATION_CONFIG_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig <em>YClass Delegate Validation Config</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYClassDelegateValidationConfig()
+	 * @generated
+	 */
+	int YCLASS_DELEGATE_VALIDATION_CONFIG = 10;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATION_CONFIG__ERROR_CODE = YVALIDATION_CONFIG__ERROR_CODE;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE = YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+
+	/**
+	 * The feature id for the '<em><b>Class Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATION_CONFIG__CLASS_NAME = YVALIDATION_CONFIG_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YClass Delegate Validation Config</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCLASS_DELEGATE_VALIDATION_CONFIG_FEATURE_COUNT = YVALIDATION_CONFIG_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig <em>YBean Validation Validator Config</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYBeanValidationValidatorConfig()
+	 * @generated
+	 */
+	int YBEAN_VALIDATION_VALIDATOR_CONFIG = 11;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR_CONFIG__ERROR_CODE = YVALIDATION_CONFIG__ERROR_CODE;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR_CONFIG__DEFAULT_ERROR_MESSAGE = YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+
+	/**
+	 * The feature id for the '<em><b>Bval Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS = YVALIDATION_CONFIG_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Bval Class Fully Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME = YVALIDATION_CONFIG_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Bval Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY = YVALIDATION_CONFIG_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YBean Validation Validator Config</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_VALIDATION_VALIDATOR_CONFIG_FEATURE_COUNT = YVALIDATION_CONFIG_FEATURE_COUNT + 3;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidator <em>YValidator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YValidator</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidator
+	 * @generated
+	 */
+	EClass getYValidator();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidator#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidator#getType()
+	 * @see #getYValidator()
+	 * @generated
+	 */
+	EAttribute getYValidator_Type();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator <em>YMin Length Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YMin Length Validator</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator
+	 * @generated
+	 */
+	EClass getYMinLengthValidator();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator <em>YMax Length Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YMax Length Validator</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator
+	 * @generated
+	 */
+	EClass getYMaxLengthValidator();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator <em>YRegexp Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YRegexp Validator</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator
+	 * @generated
+	 */
+	EClass getYRegexpValidator();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator <em>YClass Delegate Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YClass Delegate Validator</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator
+	 * @generated
+	 */
+	EClass getYClassDelegateValidator();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator <em>YBean Validation Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBean Validation Validator</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator
+	 * @generated
+	 */
+	EClass getYBeanValidationValidator();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig <em>YValidation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YValidation Config</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig
+	 * @generated
+	 */
+	EClass getYValidationConfig();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig#getErrorCode <em>Error Code</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Error Code</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig#getErrorCode()
+	 * @see #getYValidationConfig()
+	 * @generated
+	 */
+	EAttribute getYValidationConfig_ErrorCode();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig#getDefaultErrorMessage <em>Default Error Message</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Error Message</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig#getDefaultErrorMessage()
+	 * @see #getYValidationConfig()
+	 * @generated
+	 */
+	EAttribute getYValidationConfig_DefaultErrorMessage();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig <em>YMin Length Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YMin Length Validation Config</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig
+	 * @generated
+	 */
+	EClass getYMinLengthValidationConfig();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig#getMinLength <em>Min Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Min Length</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig#getMinLength()
+	 * @see #getYMinLengthValidationConfig()
+	 * @generated
+	 */
+	EAttribute getYMinLengthValidationConfig_MinLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig <em>YMax Length Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YMax Length Validation Config</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig
+	 * @generated
+	 */
+	EClass getYMaxLengthValidationConfig();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig#getMaxLength <em>Max Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Max Length</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig#getMaxLength()
+	 * @see #getYMaxLengthValidationConfig()
+	 * @generated
+	 */
+	EAttribute getYMaxLengthValidationConfig_MaxLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig <em>YRegexp Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YRegexp Validation Config</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig
+	 * @generated
+	 */
+	EClass getYRegexpValidationConfig();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig#getRegExpression <em>Reg Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Reg Expression</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig#getRegExpression()
+	 * @see #getYRegexpValidationConfig()
+	 * @generated
+	 */
+	EAttribute getYRegexpValidationConfig_RegExpression();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig <em>YClass Delegate Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YClass Delegate Validation Config</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig
+	 * @generated
+	 */
+	EClass getYClassDelegateValidationConfig();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig#getClassName <em>Class Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Class Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig#getClassName()
+	 * @see #getYClassDelegateValidationConfig()
+	 * @generated
+	 */
+	EAttribute getYClassDelegateValidationConfig_ClassName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig <em>YBean Validation Validator Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBean Validation Validator Config</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig
+	 * @generated
+	 */
+	EClass getYBeanValidationValidatorConfig();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalClass <em>Bval Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bval Class</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalClass()
+	 * @see #getYBeanValidationValidatorConfig()
+	 * @generated
+	 */
+	EAttribute getYBeanValidationValidatorConfig_BvalClass();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalClassFullyQualifiedName <em>Bval Class Fully Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bval Class Fully Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalClassFullyQualifiedName()
+	 * @see #getYBeanValidationValidatorConfig()
+	 * @generated
+	 */
+	EAttribute getYBeanValidationValidatorConfig_BvalClassFullyQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalProperty <em>Bval Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bval Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalProperty()
+	 * @see #getYBeanValidationValidatorConfig()
+	 * @generated
+	 */
+	EAttribute getYBeanValidationValidatorConfig_BvalProperty();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	ValidationFactory getValidationFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YValidatorImpl <em>YValidator</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YValidatorImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYValidator()
+		 * @generated
+		 */
+		EClass YVALIDATOR = eINSTANCE.getYValidator();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVALIDATOR__TYPE = eINSTANCE.getYValidator_Type();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMinLengthValidatorImpl <em>YMin Length Validator</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YMinLengthValidatorImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYMinLengthValidator()
+		 * @generated
+		 */
+		EClass YMIN_LENGTH_VALIDATOR = eINSTANCE.getYMinLengthValidator();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMaxLengthValidatorImpl <em>YMax Length Validator</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YMaxLengthValidatorImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYMaxLengthValidator()
+		 * @generated
+		 */
+		EClass YMAX_LENGTH_VALIDATOR = eINSTANCE.getYMaxLengthValidator();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YRegexpValidatorImpl <em>YRegexp Validator</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YRegexpValidatorImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYRegexpValidator()
+		 * @generated
+		 */
+		EClass YREGEXP_VALIDATOR = eINSTANCE.getYRegexpValidator();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YClassDelegateValidatorImpl <em>YClass Delegate Validator</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YClassDelegateValidatorImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYClassDelegateValidator()
+		 * @generated
+		 */
+		EClass YCLASS_DELEGATE_VALIDATOR = eINSTANCE.getYClassDelegateValidator();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YBeanValidationValidatorImpl <em>YBean Validation Validator</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.YBeanValidationValidatorImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYBeanValidationValidator()
+		 * @generated
+		 */
+		EClass YBEAN_VALIDATION_VALIDATOR = eINSTANCE.getYBeanValidationValidator();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig <em>YValidation Config</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYValidationConfig()
+		 * @generated
+		 */
+		EClass YVALIDATION_CONFIG = eINSTANCE.getYValidationConfig();
+
+		/**
+		 * The meta object literal for the '<em><b>Error Code</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVALIDATION_CONFIG__ERROR_CODE = eINSTANCE.getYValidationConfig_ErrorCode();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Error Message</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE = eINSTANCE.getYValidationConfig_DefaultErrorMessage();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig <em>YMin Length Validation Config</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYMinLengthValidationConfig()
+		 * @generated
+		 */
+		EClass YMIN_LENGTH_VALIDATION_CONFIG = eINSTANCE.getYMinLengthValidationConfig();
+
+		/**
+		 * The meta object literal for the '<em><b>Min Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH = eINSTANCE.getYMinLengthValidationConfig_MinLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig <em>YMax Length Validation Config</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYMaxLengthValidationConfig()
+		 * @generated
+		 */
+		EClass YMAX_LENGTH_VALIDATION_CONFIG = eINSTANCE.getYMaxLengthValidationConfig();
+
+		/**
+		 * The meta object literal for the '<em><b>Max Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH = eINSTANCE.getYMaxLengthValidationConfig_MaxLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig <em>YRegexp Validation Config</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYRegexpValidationConfig()
+		 * @generated
+		 */
+		EClass YREGEXP_VALIDATION_CONFIG = eINSTANCE.getYRegexpValidationConfig();
+
+		/**
+		 * The meta object literal for the '<em><b>Reg Expression</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION = eINSTANCE.getYRegexpValidationConfig_RegExpression();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig <em>YClass Delegate Validation Config</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYClassDelegateValidationConfig()
+		 * @generated
+		 */
+		EClass YCLASS_DELEGATE_VALIDATION_CONFIG = eINSTANCE.getYClassDelegateValidationConfig();
+
+		/**
+		 * The meta object literal for the '<em><b>Class Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCLASS_DELEGATE_VALIDATION_CONFIG__CLASS_NAME = eINSTANCE.getYClassDelegateValidationConfig_ClassName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig <em>YBean Validation Validator Config</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig
+		 * @see org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl#getYBeanValidationValidatorConfig()
+		 * @generated
+		 */
+		EClass YBEAN_VALIDATION_VALIDATOR_CONFIG = eINSTANCE.getYBeanValidationValidatorConfig();
+
+		/**
+		 * The meta object literal for the '<em><b>Bval Class</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS = eINSTANCE.getYBeanValidationValidatorConfig_BvalClass();
+
+		/**
+		 * The meta object literal for the '<em><b>Bval Class Fully Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME = eINSTANCE.getYBeanValidationValidatorConfig_BvalClassFullyQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Bval Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY = eINSTANCE.getYBeanValidationValidatorConfig_BvalProperty();
+
+	}
+
+} 
+
+//ValidationPackage
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YBeanValidationValidator.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YBeanValidationValidator.java
new file mode 100644
index 0000000..2096711
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YBeanValidationValidator.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBean Validation Validator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYBeanValidationValidator()
+ * @model
+ * @generated
+ */
+public interface YBeanValidationValidator extends YValidator, YBeanValidationValidatorConfig {
+} // YBeanValidationValidator
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YBeanValidationValidatorConfig.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YBeanValidationValidatorConfig.java
new file mode 100644
index 0000000..9021457
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YBeanValidationValidatorConfig.java
@@ -0,0 +1,111 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBean Validation Validator Config</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalClass <em>Bval Class</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalClassFullyQualifiedName <em>Bval Class Fully Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalProperty <em>Bval Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYBeanValidationValidatorConfig()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YBeanValidationValidatorConfig extends YValidationConfig {
+	/**
+	 * Returns the value of the '<em><b>Bval Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bval Class</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bval Class</em>' attribute.
+	 * @see #setBvalClass(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYBeanValidationValidatorConfig_BvalClass()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getBvalClass();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalClass <em>Bval Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bval Class</em>' attribute.
+	 * @see #getBvalClass()
+	 * @generated
+	 */
+	void setBvalClass(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Bval Class Fully Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bval Class Fully Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bval Class Fully Qualified Name</em>' attribute.
+	 * @see #setBvalClassFullyQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYBeanValidationValidatorConfig_BvalClassFullyQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getBvalClassFullyQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalClassFullyQualifiedName <em>Bval Class Fully Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bval Class Fully Qualified Name</em>' attribute.
+	 * @see #getBvalClassFullyQualifiedName()
+	 * @generated
+	 */
+	void setBvalClassFullyQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Bval Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bval Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bval Property</em>' attribute.
+	 * @see #setBvalProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYBeanValidationValidatorConfig_BvalProperty()
+	 * @model
+	 * @generated
+	 */
+	String getBvalProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig#getBvalProperty <em>Bval Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bval Property</em>' attribute.
+	 * @see #getBvalProperty()
+	 * @generated
+	 */
+	void setBvalProperty(String value);
+
+} // YBeanValidationValidatorConfig
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YClassDelegateValidationConfig.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YClassDelegateValidationConfig.java
new file mode 100644
index 0000000..d676039
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YClassDelegateValidationConfig.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YClass Delegate Validation Config</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig#getClassName <em>Class Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYClassDelegateValidationConfig()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YClassDelegateValidationConfig extends YValidationConfig {
+	/**
+	 * Returns the value of the '<em><b>Class Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Class Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Class Name</em>' attribute.
+	 * @see #setClassName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYClassDelegateValidationConfig_ClassName()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getClassName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig#getClassName <em>Class Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Class Name</em>' attribute.
+	 * @see #getClassName()
+	 * @generated
+	 */
+	void setClassName(String value);
+
+} // YClassDelegateValidationConfig
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YClassDelegateValidator.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YClassDelegateValidator.java
new file mode 100644
index 0000000..55f69c6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YClassDelegateValidator.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YClass Delegate Validator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYClassDelegateValidator()
+ * @model
+ * @generated
+ */
+public interface YClassDelegateValidator extends YValidator, YClassDelegateValidationConfig {
+} // YClassDelegateValidator
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMaxLengthValidationConfig.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMaxLengthValidationConfig.java
new file mode 100644
index 0000000..353e947
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMaxLengthValidationConfig.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YMax Length Validation Config</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig#getMaxLength <em>Max Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYMaxLengthValidationConfig()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YMaxLengthValidationConfig extends YValidationConfig {
+	/**
+	 * Returns the value of the '<em><b>Max Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Max Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Max Length</em>' attribute.
+	 * @see #setMaxLength(int)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYMaxLengthValidationConfig_MaxLength()
+	 * @model required="true"
+	 * @generated
+	 */
+	int getMaxLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig#getMaxLength <em>Max Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Max Length</em>' attribute.
+	 * @see #getMaxLength()
+	 * @generated
+	 */
+	void setMaxLength(int value);
+
+} // YMaxLengthValidationConfig
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMaxLengthValidator.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMaxLengthValidator.java
new file mode 100644
index 0000000..028e947
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMaxLengthValidator.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YMax Length Validator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYMaxLengthValidator()
+ * @model
+ * @generated
+ */
+public interface YMaxLengthValidator extends YValidator, YMaxLengthValidationConfig {
+
+} // YMaxLengthValidator
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMinLengthValidationConfig.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMinLengthValidationConfig.java
new file mode 100644
index 0000000..df22038
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMinLengthValidationConfig.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YMin Length Validation Config</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig#getMinLength <em>Min Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYMinLengthValidationConfig()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YMinLengthValidationConfig extends YValidationConfig {
+	/**
+	 * Returns the value of the '<em><b>Min Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Min Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Min Length</em>' attribute.
+	 * @see #setMinLength(int)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYMinLengthValidationConfig_MinLength()
+	 * @model required="true"
+	 * @generated
+	 */
+	int getMinLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig#getMinLength <em>Min Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Min Length</em>' attribute.
+	 * @see #getMinLength()
+	 * @generated
+	 */
+	void setMinLength(int value);
+
+} // YMinLengthValidationConfig
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMinLengthValidator.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMinLengthValidator.java
new file mode 100644
index 0000000..473c624
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YMinLengthValidator.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YMin Length Validator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYMinLengthValidator()
+ * @model
+ * @generated
+ */
+public interface YMinLengthValidator extends YValidator, YMinLengthValidationConfig {
+
+} // YMinLengthValidator
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YRegexpValidationConfig.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YRegexpValidationConfig.java
new file mode 100644
index 0000000..1f7eb64
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YRegexpValidationConfig.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YRegexp Validation Config</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig#getRegExpression <em>Reg Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYRegexpValidationConfig()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YRegexpValidationConfig extends YValidationConfig {
+	/**
+	 * Returns the value of the '<em><b>Reg Expression</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Reg Expression</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Reg Expression</em>' attribute.
+	 * @see #setRegExpression(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYRegexpValidationConfig_RegExpression()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getRegExpression();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig#getRegExpression <em>Reg Expression</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Reg Expression</em>' attribute.
+	 * @see #getRegExpression()
+	 * @generated
+	 */
+	void setRegExpression(String value);
+
+} // YRegexpValidationConfig
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YRegexpValidator.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YRegexpValidator.java
new file mode 100644
index 0000000..bc7b243
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YRegexpValidator.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YRegexp Validator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYRegexpValidator()
+ * @model
+ * @generated
+ */
+public interface YRegexpValidator extends YValidator, YRegexpValidationConfig {
+
+} // YRegexpValidator
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YValidatable.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YValidatable.java
new file mode 100644
index 0000000..c436067
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YValidatable.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YValidatable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYValidatable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YValidatable extends EObject {
+} // YValidatable
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YValidationConfig.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YValidationConfig.java
new file mode 100644
index 0000000..365fe8e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YValidationConfig.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YValidation Config</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig#getErrorCode <em>Error Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig#getDefaultErrorMessage <em>Default Error Message</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYValidationConfig()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YValidationConfig extends EObject {
+
+	/**
+	 * Returns the value of the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Error Code</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Error Code</em>' attribute.
+	 * @see #setErrorCode(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYValidationConfig_ErrorCode()
+	 * @model
+	 * @generated
+	 */
+	String getErrorCode();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig#getErrorCode <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Error Code</em>' attribute.
+	 * @see #getErrorCode()
+	 * @generated
+	 */
+	void setErrorCode(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Error Message</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Error Message</em>' attribute.
+	 * @see #setDefaultErrorMessage(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYValidationConfig_DefaultErrorMessage()
+	 * @model
+	 * @generated
+	 */
+	String getDefaultErrorMessage();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig#getDefaultErrorMessage <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Error Message</em>' attribute.
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 */
+	void setDefaultErrorMessage(String value);
+} // YValidationConfig
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YValidator.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YValidator.java
new file mode 100644
index 0000000..552a1a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/YValidator.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YValidator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidator#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYValidator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface YValidator extends YElement, YBindable {
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#getYValidator_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidator#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+} // YValidator
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/ValidationFactoryImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/ValidationFactoryImpl.java
new file mode 100644
index 0000000..39a9e7b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/ValidationFactoryImpl.java
@@ -0,0 +1,150 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValidationFactoryImpl extends EFactoryImpl implements ValidationFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ValidationFactory init() {
+		try {
+			ValidationFactory theValidationFactory = (ValidationFactory)EPackage.Registry.INSTANCE.getEFactory(ValidationPackage.eNS_URI);
+			if (theValidationFactory != null) {
+				return theValidationFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new ValidationFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValidationFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR: return createYMinLengthValidator();
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR: return createYMaxLengthValidator();
+			case ValidationPackage.YREGEXP_VALIDATOR: return createYRegexpValidator();
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR: return createYClassDelegateValidator();
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR: return createYBeanValidationValidator();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YMinLengthValidator createYMinLengthValidator() {
+		YMinLengthValidatorImpl yMinLengthValidator = new YMinLengthValidatorImpl();
+		return yMinLengthValidator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YMaxLengthValidator createYMaxLengthValidator() {
+		YMaxLengthValidatorImpl yMaxLengthValidator = new YMaxLengthValidatorImpl();
+		return yMaxLengthValidator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YRegexpValidator createYRegexpValidator() {
+		YRegexpValidatorImpl yRegexpValidator = new YRegexpValidatorImpl();
+		return yRegexpValidator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YClassDelegateValidator createYClassDelegateValidator() {
+		YClassDelegateValidatorImpl yClassDelegateValidator = new YClassDelegateValidatorImpl();
+		return yClassDelegateValidator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanValidationValidator createYBeanValidationValidator() {
+		YBeanValidationValidatorImpl yBeanValidationValidator = new YBeanValidationValidatorImpl();
+		return yBeanValidationValidator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValidationPackage getValidationPackage() {
+		return (ValidationPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static ValidationPackage getPackage() {
+		return ValidationPackage.eINSTANCE;
+	}
+
+} //ValidationFactoryImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/ValidationPackageImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/ValidationPackageImpl.java
new file mode 100644
index 0000000..78d06ff
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/ValidationPackageImpl.java
@@ -0,0 +1,567 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValidationPackageImpl extends EPackageImpl implements ValidationPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yValidatorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yMinLengthValidatorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yMaxLengthValidatorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yRegexpValidatorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yClassDelegateValidatorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBeanValidationValidatorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yValidationConfigEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yMinLengthValidationConfigEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yMaxLengthValidationConfigEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yRegexpValidationConfigEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yClassDelegateValidationConfigEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yBeanValidationValidatorConfigEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private ValidationPackageImpl() {
+		super(eNS_URI, ValidationFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link ValidationPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static ValidationPackage init() {
+		if (isInited) return (ValidationPackage)EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI);
+
+		// Obtain or create and register package
+		ValidationPackageImpl theValidationPackage = (ValidationPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ValidationPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ValidationPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		BindingPackageImpl theBindingPackage = (BindingPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) instanceof BindingPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) : BindingPackage.eINSTANCE);
+		CoreModelPackageImpl theCoreModelPackage = (CoreModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) instanceof CoreModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) : CoreModelPackage.eINSTANCE);
+		AuthorizationPackageImpl theAuthorizationPackage = (AuthorizationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) instanceof AuthorizationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) : AuthorizationPackage.eINSTANCE);
+		DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) instanceof DatatypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) : DatatypesPackage.eINSTANCE);
+		VisibilityPackageImpl theVisibilityPackage = (VisibilityPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) instanceof VisibilityPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI) : VisibilityPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theValidationPackage.createPackageContents();
+		theBindingPackage.createPackageContents();
+		theCoreModelPackage.createPackageContents();
+		theAuthorizationPackage.createPackageContents();
+		theDatatypesPackage.createPackageContents();
+		theVisibilityPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theValidationPackage.initializePackageContents();
+		theBindingPackage.initializePackageContents();
+		theCoreModelPackage.initializePackageContents();
+		theAuthorizationPackage.initializePackageContents();
+		theDatatypesPackage.initializePackageContents();
+		theVisibilityPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theValidationPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(ValidationPackage.eNS_URI, theValidationPackage);
+		return theValidationPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYValidator() {
+		return yValidatorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYValidator_Type() {
+		return (EAttribute)yValidatorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYMinLengthValidator() {
+		return yMinLengthValidatorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYMaxLengthValidator() {
+		return yMaxLengthValidatorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYRegexpValidator() {
+		return yRegexpValidatorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYClassDelegateValidator() {
+		return yClassDelegateValidatorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBeanValidationValidator() {
+		return yBeanValidationValidatorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYValidationConfig() {
+		return yValidationConfigEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYValidationConfig_ErrorCode() {
+		return (EAttribute)yValidationConfigEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYValidationConfig_DefaultErrorMessage() {
+		return (EAttribute)yValidationConfigEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYMinLengthValidationConfig() {
+		return yMinLengthValidationConfigEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYMinLengthValidationConfig_MinLength() {
+		return (EAttribute)yMinLengthValidationConfigEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYMaxLengthValidationConfig() {
+		return yMaxLengthValidationConfigEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYMaxLengthValidationConfig_MaxLength() {
+		return (EAttribute)yMaxLengthValidationConfigEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYRegexpValidationConfig() {
+		return yRegexpValidationConfigEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYRegexpValidationConfig_RegExpression() {
+		return (EAttribute)yRegexpValidationConfigEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYClassDelegateValidationConfig() {
+		return yClassDelegateValidationConfigEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYClassDelegateValidationConfig_ClassName() {
+		return (EAttribute)yClassDelegateValidationConfigEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYBeanValidationValidatorConfig() {
+		return yBeanValidationValidatorConfigEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanValidationValidatorConfig_BvalClass() {
+		return (EAttribute)yBeanValidationValidatorConfigEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanValidationValidatorConfig_BvalClassFullyQualifiedName() {
+		return (EAttribute)yBeanValidationValidatorConfigEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanValidationValidatorConfig_BvalProperty() {
+		return (EAttribute)yBeanValidationValidatorConfigEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValidationFactory getValidationFactory() {
+		return (ValidationFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		yValidatorEClass = createEClass(YVALIDATOR);
+		createEAttribute(yValidatorEClass, YVALIDATOR__TYPE);
+
+		yMinLengthValidatorEClass = createEClass(YMIN_LENGTH_VALIDATOR);
+
+		yMaxLengthValidatorEClass = createEClass(YMAX_LENGTH_VALIDATOR);
+
+		yRegexpValidatorEClass = createEClass(YREGEXP_VALIDATOR);
+
+		yClassDelegateValidatorEClass = createEClass(YCLASS_DELEGATE_VALIDATOR);
+
+		yBeanValidationValidatorEClass = createEClass(YBEAN_VALIDATION_VALIDATOR);
+
+		yValidationConfigEClass = createEClass(YVALIDATION_CONFIG);
+		createEAttribute(yValidationConfigEClass, YVALIDATION_CONFIG__ERROR_CODE);
+		createEAttribute(yValidationConfigEClass, YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE);
+
+		yMinLengthValidationConfigEClass = createEClass(YMIN_LENGTH_VALIDATION_CONFIG);
+		createEAttribute(yMinLengthValidationConfigEClass, YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH);
+
+		yMaxLengthValidationConfigEClass = createEClass(YMAX_LENGTH_VALIDATION_CONFIG);
+		createEAttribute(yMaxLengthValidationConfigEClass, YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH);
+
+		yRegexpValidationConfigEClass = createEClass(YREGEXP_VALIDATION_CONFIG);
+		createEAttribute(yRegexpValidationConfigEClass, YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION);
+
+		yClassDelegateValidationConfigEClass = createEClass(YCLASS_DELEGATE_VALIDATION_CONFIG);
+		createEAttribute(yClassDelegateValidationConfigEClass, YCLASS_DELEGATE_VALIDATION_CONFIG__CLASS_NAME);
+
+		yBeanValidationValidatorConfigEClass = createEClass(YBEAN_VALIDATION_VALIDATOR_CONFIG);
+		createEAttribute(yBeanValidationValidatorConfigEClass, YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS);
+		createEAttribute(yBeanValidationValidatorConfigEClass, YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME);
+		createEAttribute(yBeanValidationValidatorConfigEClass, YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		CoreModelPackage theCoreModelPackage = (CoreModelPackage)EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		yValidatorEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		yValidatorEClass.getESuperTypes().add(theCoreModelPackage.getYBindable());
+		yMinLengthValidatorEClass.getESuperTypes().add(this.getYValidator());
+		yMinLengthValidatorEClass.getESuperTypes().add(this.getYMinLengthValidationConfig());
+		yMaxLengthValidatorEClass.getESuperTypes().add(this.getYValidator());
+		yMaxLengthValidatorEClass.getESuperTypes().add(this.getYMaxLengthValidationConfig());
+		yRegexpValidatorEClass.getESuperTypes().add(this.getYValidator());
+		yRegexpValidatorEClass.getESuperTypes().add(this.getYRegexpValidationConfig());
+		yClassDelegateValidatorEClass.getESuperTypes().add(this.getYValidator());
+		yClassDelegateValidatorEClass.getESuperTypes().add(this.getYClassDelegateValidationConfig());
+		yBeanValidationValidatorEClass.getESuperTypes().add(this.getYValidator());
+		yBeanValidationValidatorEClass.getESuperTypes().add(this.getYBeanValidationValidatorConfig());
+		yMinLengthValidationConfigEClass.getESuperTypes().add(this.getYValidationConfig());
+		yMaxLengthValidationConfigEClass.getESuperTypes().add(this.getYValidationConfig());
+		yRegexpValidationConfigEClass.getESuperTypes().add(this.getYValidationConfig());
+		yClassDelegateValidationConfigEClass.getESuperTypes().add(this.getYValidationConfig());
+		yBeanValidationValidatorConfigEClass.getESuperTypes().add(this.getYValidationConfig());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(yValidatorEClass, YValidator.class, "YValidator", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		EGenericType g1 = createEGenericType(ecorePackage.getEJavaClass());
+		EGenericType g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYValidator_Type(), g1, "type", null, 0, 1, YValidator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yMinLengthValidatorEClass, YMinLengthValidator.class, "YMinLengthValidator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yMaxLengthValidatorEClass, YMaxLengthValidator.class, "YMaxLengthValidator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yRegexpValidatorEClass, YRegexpValidator.class, "YRegexpValidator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yClassDelegateValidatorEClass, YClassDelegateValidator.class, "YClassDelegateValidator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yBeanValidationValidatorEClass, YBeanValidationValidator.class, "YBeanValidationValidator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yValidationConfigEClass, YValidationConfig.class, "YValidationConfig", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYValidationConfig_ErrorCode(), ecorePackage.getEString(), "errorCode", null, 0, 1, YValidationConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYValidationConfig_DefaultErrorMessage(), ecorePackage.getEString(), "defaultErrorMessage", null, 0, 1, YValidationConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yMinLengthValidationConfigEClass, YMinLengthValidationConfig.class, "YMinLengthValidationConfig", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYMinLengthValidationConfig_MinLength(), ecorePackage.getEInt(), "minLength", null, 1, 1, YMinLengthValidationConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yMaxLengthValidationConfigEClass, YMaxLengthValidationConfig.class, "YMaxLengthValidationConfig", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYMaxLengthValidationConfig_MaxLength(), ecorePackage.getEInt(), "maxLength", null, 1, 1, YMaxLengthValidationConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yRegexpValidationConfigEClass, YRegexpValidationConfig.class, "YRegexpValidationConfig", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYRegexpValidationConfig_RegExpression(), ecorePackage.getEString(), "regExpression", null, 1, 1, YRegexpValidationConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yClassDelegateValidationConfigEClass, YClassDelegateValidationConfig.class, "YClassDelegateValidationConfig", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYClassDelegateValidationConfig_ClassName(), ecorePackage.getEString(), "className", null, 1, 1, YClassDelegateValidationConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yBeanValidationValidatorConfigEClass, YBeanValidationValidatorConfig.class, "YBeanValidationValidatorConfig", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYBeanValidationValidatorConfig_BvalClass(), g1, "bvalClass", null, 0, 1, YBeanValidationValidatorConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanValidationValidatorConfig_BvalClassFullyQualifiedName(), ecorePackage.getEString(), "bvalClassFullyQualifiedName", null, 0, 1, YBeanValidationValidatorConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanValidationValidatorConfig_BvalProperty(), ecorePackage.getEString(), "bvalProperty", null, 0, 1, YBeanValidationValidatorConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //ValidationPackageImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YBeanValidationValidatorImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YBeanValidationValidatorImpl.java
new file mode 100644
index 0000000..5141980
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YBeanValidationValidatorImpl.java
@@ -0,0 +1,425 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YBean Validation Validator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YBeanValidationValidatorImpl#getErrorCode <em>Error Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YBeanValidationValidatorImpl#getDefaultErrorMessage <em>Default Error Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YBeanValidationValidatorImpl#getBvalClass <em>Bval Class</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YBeanValidationValidatorImpl#getBvalClassFullyQualifiedName <em>Bval Class Fully Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YBeanValidationValidatorImpl#getBvalProperty <em>Bval Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBeanValidationValidatorImpl extends YValidatorImpl implements YBeanValidationValidator {
+	/**
+	 * The default value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ERROR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String errorCode = ERROR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_ERROR_MESSAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultErrorMessage = DEFAULT_ERROR_MESSAGE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBvalClass() <em>Bval Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBvalClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> bvalClass;
+
+	/**
+	 * The default value of the '{@link #getBvalClassFullyQualifiedName() <em>Bval Class Fully Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBvalClassFullyQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String BVAL_CLASS_FULLY_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getBvalClassFullyQualifiedName() <em>Bval Class Fully Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBvalClassFullyQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String bvalClassFullyQualifiedName = BVAL_CLASS_FULLY_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getBvalProperty() <em>Bval Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBvalProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String BVAL_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getBvalProperty() <em>Bval Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBvalProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String bvalProperty = BVAL_PROPERTY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanValidationValidatorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ValidationPackage.Literals.YBEAN_VALIDATION_VALIDATOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getErrorCode() {
+		return errorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrorCode(String newErrorCode) {
+		String oldErrorCode = errorCode;
+		errorCode = newErrorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YBEAN_VALIDATION_VALIDATOR__ERROR_CODE, oldErrorCode, errorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultErrorMessage() {
+		return defaultErrorMessage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultErrorMessage(String newDefaultErrorMessage) {
+		String oldDefaultErrorMessage = defaultErrorMessage;
+		defaultErrorMessage = newDefaultErrorMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YBEAN_VALIDATION_VALIDATOR__DEFAULT_ERROR_MESSAGE, oldDefaultErrorMessage, defaultErrorMessage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Class<?> getBvalClass() {
+		return bvalClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBvalClass(Class<?> newBvalClass) {
+		Class<?> oldBvalClass = bvalClass;
+		bvalClass = newBvalClass;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS, oldBvalClass, bvalClass));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getBvalClassFullyQualifiedName() {
+		return bvalClassFullyQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBvalClassFullyQualifiedName(String newBvalClassFullyQualifiedName) {
+		String oldBvalClassFullyQualifiedName = bvalClassFullyQualifiedName;
+		bvalClassFullyQualifiedName = newBvalClassFullyQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS_FULLY_QUALIFIED_NAME, oldBvalClassFullyQualifiedName, bvalClassFullyQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getBvalProperty() {
+		return bvalProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBvalProperty(String newBvalProperty) {
+		String oldBvalProperty = bvalProperty;
+		bvalProperty = newBvalProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_PROPERTY, oldBvalProperty, bvalProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__ERROR_CODE:
+				return getErrorCode();
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return getDefaultErrorMessage();
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS:
+				return getBvalClass();
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS_FULLY_QUALIFIED_NAME:
+				return getBvalClassFullyQualifiedName();
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_PROPERTY:
+				return getBvalProperty();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__ERROR_CODE:
+				setErrorCode((String)newValue);
+				return;
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage((String)newValue);
+				return;
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS:
+				setBvalClass((Class<?>)newValue);
+				return;
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS_FULLY_QUALIFIED_NAME:
+				setBvalClassFullyQualifiedName((String)newValue);
+				return;
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_PROPERTY:
+				setBvalProperty((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__ERROR_CODE:
+				setErrorCode(ERROR_CODE_EDEFAULT);
+				return;
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage(DEFAULT_ERROR_MESSAGE_EDEFAULT);
+				return;
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS:
+				setBvalClass((Class<?>)null);
+				return;
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS_FULLY_QUALIFIED_NAME:
+				setBvalClassFullyQualifiedName(BVAL_CLASS_FULLY_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_PROPERTY:
+				setBvalProperty(BVAL_PROPERTY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__ERROR_CODE:
+				return ERROR_CODE_EDEFAULT == null ? errorCode != null : !ERROR_CODE_EDEFAULT.equals(errorCode);
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return DEFAULT_ERROR_MESSAGE_EDEFAULT == null ? defaultErrorMessage != null : !DEFAULT_ERROR_MESSAGE_EDEFAULT.equals(defaultErrorMessage);
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS:
+				return bvalClass != null;
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS_FULLY_QUALIFIED_NAME:
+				return BVAL_CLASS_FULLY_QUALIFIED_NAME_EDEFAULT == null ? bvalClassFullyQualifiedName != null : !BVAL_CLASS_FULLY_QUALIFIED_NAME_EDEFAULT.equals(bvalClassFullyQualifiedName);
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_PROPERTY:
+				return BVAL_PROPERTY_EDEFAULT == null ? bvalProperty != null : !BVAL_PROPERTY_EDEFAULT.equals(bvalProperty);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__ERROR_CODE: return ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE;
+				case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanValidationValidatorConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS: return ValidationPackage.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS;
+				case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS_FULLY_QUALIFIED_NAME: return ValidationPackage.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME;
+				case ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_PROPERTY: return ValidationPackage.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE: return ValidationPackage.YBEAN_VALIDATION_VALIDATOR__ERROR_CODE;
+				case ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YBEAN_VALIDATION_VALIDATOR__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanValidationValidatorConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS: return ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS;
+				case ValidationPackage.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_CLASS_FULLY_QUALIFIED_NAME: return ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_CLASS_FULLY_QUALIFIED_NAME;
+				case ValidationPackage.YBEAN_VALIDATION_VALIDATOR_CONFIG__BVAL_PROPERTY: return ValidationPackage.YBEAN_VALIDATION_VALIDATOR__BVAL_PROPERTY;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (errorCode: ");
+		result.append(errorCode);
+		result.append(", defaultErrorMessage: ");
+		result.append(defaultErrorMessage);
+		result.append(", bvalClass: ");
+		result.append(bvalClass);
+		result.append(", bvalClassFullyQualifiedName: ");
+		result.append(bvalClassFullyQualifiedName);
+		result.append(", bvalProperty: ");
+		result.append(bvalProperty);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YBeanValidationValidatorImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YClassDelegateValidatorImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YClassDelegateValidatorImpl.java
new file mode 100644
index 0000000..79eb332
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YClassDelegateValidatorImpl.java
@@ -0,0 +1,323 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YClass Delegate Validator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YClassDelegateValidatorImpl#getErrorCode <em>Error Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YClassDelegateValidatorImpl#getDefaultErrorMessage <em>Default Error Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YClassDelegateValidatorImpl#getClassName <em>Class Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YClassDelegateValidatorImpl extends YValidatorImpl implements YClassDelegateValidator {
+	/**
+	 * The default value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ERROR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String errorCode = ERROR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_ERROR_MESSAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultErrorMessage = DEFAULT_ERROR_MESSAGE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getClassName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CLASS_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getClassName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String className = CLASS_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YClassDelegateValidatorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ValidationPackage.Literals.YCLASS_DELEGATE_VALIDATOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getErrorCode() {
+		return errorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrorCode(String newErrorCode) {
+		String oldErrorCode = errorCode;
+		errorCode = newErrorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YCLASS_DELEGATE_VALIDATOR__ERROR_CODE, oldErrorCode, errorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultErrorMessage() {
+		return defaultErrorMessage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultErrorMessage(String newDefaultErrorMessage) {
+		String oldDefaultErrorMessage = defaultErrorMessage;
+		defaultErrorMessage = newDefaultErrorMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YCLASS_DELEGATE_VALIDATOR__DEFAULT_ERROR_MESSAGE, oldDefaultErrorMessage, defaultErrorMessage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getClassName() {
+		return className;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setClassName(String newClassName) {
+		String oldClassName = className;
+		className = newClassName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YCLASS_DELEGATE_VALIDATOR__CLASS_NAME, oldClassName, className));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__ERROR_CODE:
+				return getErrorCode();
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return getDefaultErrorMessage();
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__CLASS_NAME:
+				return getClassName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__ERROR_CODE:
+				setErrorCode((String)newValue);
+				return;
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage((String)newValue);
+				return;
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__CLASS_NAME:
+				setClassName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__ERROR_CODE:
+				setErrorCode(ERROR_CODE_EDEFAULT);
+				return;
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage(DEFAULT_ERROR_MESSAGE_EDEFAULT);
+				return;
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__CLASS_NAME:
+				setClassName(CLASS_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__ERROR_CODE:
+				return ERROR_CODE_EDEFAULT == null ? errorCode != null : !ERROR_CODE_EDEFAULT.equals(errorCode);
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return DEFAULT_ERROR_MESSAGE_EDEFAULT == null ? defaultErrorMessage != null : !DEFAULT_ERROR_MESSAGE_EDEFAULT.equals(defaultErrorMessage);
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__CLASS_NAME:
+				return CLASS_NAME_EDEFAULT == null ? className != null : !CLASS_NAME_EDEFAULT.equals(className);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__ERROR_CODE: return ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE;
+				case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YClassDelegateValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YCLASS_DELEGATE_VALIDATOR__CLASS_NAME: return ValidationPackage.YCLASS_DELEGATE_VALIDATION_CONFIG__CLASS_NAME;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE: return ValidationPackage.YCLASS_DELEGATE_VALIDATOR__ERROR_CODE;
+				case ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YCLASS_DELEGATE_VALIDATOR__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YClassDelegateValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YCLASS_DELEGATE_VALIDATION_CONFIG__CLASS_NAME: return ValidationPackage.YCLASS_DELEGATE_VALIDATOR__CLASS_NAME;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (errorCode: ");
+		result.append(errorCode);
+		result.append(", defaultErrorMessage: ");
+		result.append(defaultErrorMessage);
+		result.append(", className: ");
+		result.append(className);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YClassDelegateValidatorImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YMaxLengthValidatorImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YMaxLengthValidatorImpl.java
new file mode 100644
index 0000000..02c8362
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YMaxLengthValidatorImpl.java
@@ -0,0 +1,323 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YMax Length Validator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMaxLengthValidatorImpl#getErrorCode <em>Error Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMaxLengthValidatorImpl#getDefaultErrorMessage <em>Default Error Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMaxLengthValidatorImpl#getMaxLength <em>Max Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YMaxLengthValidatorImpl extends YValidatorImpl implements YMaxLengthValidator {
+	/**
+	 * The default value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ERROR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String errorCode = ERROR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_ERROR_MESSAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultErrorMessage = DEFAULT_ERROR_MESSAGE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaxLength() <em>Max Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAX_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaxLength() <em>Max Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maxLength = MAX_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YMaxLengthValidatorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ValidationPackage.Literals.YMAX_LENGTH_VALIDATOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaxLength() {
+		return maxLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaxLength(int newMaxLength) {
+		int oldMaxLength = maxLength;
+		maxLength = newMaxLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YMAX_LENGTH_VALIDATOR__MAX_LENGTH, oldMaxLength, maxLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getErrorCode() {
+		return errorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrorCode(String newErrorCode) {
+		String oldErrorCode = errorCode;
+		errorCode = newErrorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YMAX_LENGTH_VALIDATOR__ERROR_CODE, oldErrorCode, errorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultErrorMessage() {
+		return defaultErrorMessage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultErrorMessage(String newDefaultErrorMessage) {
+		String oldDefaultErrorMessage = defaultErrorMessage;
+		defaultErrorMessage = newDefaultErrorMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YMAX_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE, oldDefaultErrorMessage, defaultErrorMessage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__ERROR_CODE:
+				return getErrorCode();
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return getDefaultErrorMessage();
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__MAX_LENGTH:
+				return getMaxLength();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__ERROR_CODE:
+				setErrorCode((String)newValue);
+				return;
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage((String)newValue);
+				return;
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__MAX_LENGTH:
+				setMaxLength((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__ERROR_CODE:
+				setErrorCode(ERROR_CODE_EDEFAULT);
+				return;
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage(DEFAULT_ERROR_MESSAGE_EDEFAULT);
+				return;
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__MAX_LENGTH:
+				setMaxLength(MAX_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__ERROR_CODE:
+				return ERROR_CODE_EDEFAULT == null ? errorCode != null : !ERROR_CODE_EDEFAULT.equals(errorCode);
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return DEFAULT_ERROR_MESSAGE_EDEFAULT == null ? defaultErrorMessage != null : !DEFAULT_ERROR_MESSAGE_EDEFAULT.equals(defaultErrorMessage);
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR__MAX_LENGTH:
+				return maxLength != MAX_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YMAX_LENGTH_VALIDATOR__ERROR_CODE: return ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE;
+				case ValidationPackage.YMAX_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMaxLengthValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YMAX_LENGTH_VALIDATOR__MAX_LENGTH: return ValidationPackage.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE: return ValidationPackage.YMAX_LENGTH_VALIDATOR__ERROR_CODE;
+				case ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YMAX_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMaxLengthValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH: return ValidationPackage.YMAX_LENGTH_VALIDATOR__MAX_LENGTH;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (errorCode: ");
+		result.append(errorCode);
+		result.append(", defaultErrorMessage: ");
+		result.append(defaultErrorMessage);
+		result.append(", maxLength: ");
+		result.append(maxLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YMaxLengthValidatorImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YMinLengthValidatorImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YMinLengthValidatorImpl.java
new file mode 100644
index 0000000..6eb50bc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YMinLengthValidatorImpl.java
@@ -0,0 +1,323 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YMin Length Validator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMinLengthValidatorImpl#getErrorCode <em>Error Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMinLengthValidatorImpl#getDefaultErrorMessage <em>Default Error Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YMinLengthValidatorImpl#getMinLength <em>Min Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YMinLengthValidatorImpl extends YValidatorImpl implements YMinLengthValidator {
+	/**
+	 * The default value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ERROR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String errorCode = ERROR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_ERROR_MESSAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultErrorMessage = DEFAULT_ERROR_MESSAGE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMinLength() <em>Min Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MIN_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMinLength() <em>Min Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int minLength = MIN_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YMinLengthValidatorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ValidationPackage.Literals.YMIN_LENGTH_VALIDATOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMinLength() {
+		return minLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMinLength(int newMinLength) {
+		int oldMinLength = minLength;
+		minLength = newMinLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YMIN_LENGTH_VALIDATOR__MIN_LENGTH, oldMinLength, minLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getErrorCode() {
+		return errorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrorCode(String newErrorCode) {
+		String oldErrorCode = errorCode;
+		errorCode = newErrorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YMIN_LENGTH_VALIDATOR__ERROR_CODE, oldErrorCode, errorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultErrorMessage() {
+		return defaultErrorMessage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultErrorMessage(String newDefaultErrorMessage) {
+		String oldDefaultErrorMessage = defaultErrorMessage;
+		defaultErrorMessage = newDefaultErrorMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YMIN_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE, oldDefaultErrorMessage, defaultErrorMessage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__ERROR_CODE:
+				return getErrorCode();
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return getDefaultErrorMessage();
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__MIN_LENGTH:
+				return getMinLength();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__ERROR_CODE:
+				setErrorCode((String)newValue);
+				return;
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage((String)newValue);
+				return;
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__MIN_LENGTH:
+				setMinLength((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__ERROR_CODE:
+				setErrorCode(ERROR_CODE_EDEFAULT);
+				return;
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage(DEFAULT_ERROR_MESSAGE_EDEFAULT);
+				return;
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__MIN_LENGTH:
+				setMinLength(MIN_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__ERROR_CODE:
+				return ERROR_CODE_EDEFAULT == null ? errorCode != null : !ERROR_CODE_EDEFAULT.equals(errorCode);
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return DEFAULT_ERROR_MESSAGE_EDEFAULT == null ? defaultErrorMessage != null : !DEFAULT_ERROR_MESSAGE_EDEFAULT.equals(defaultErrorMessage);
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR__MIN_LENGTH:
+				return minLength != MIN_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YMIN_LENGTH_VALIDATOR__ERROR_CODE: return ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE;
+				case ValidationPackage.YMIN_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMinLengthValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YMIN_LENGTH_VALIDATOR__MIN_LENGTH: return ValidationPackage.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE: return ValidationPackage.YMIN_LENGTH_VALIDATOR__ERROR_CODE;
+				case ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YMIN_LENGTH_VALIDATOR__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMinLengthValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH: return ValidationPackage.YMIN_LENGTH_VALIDATOR__MIN_LENGTH;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (errorCode: ");
+		result.append(errorCode);
+		result.append(", defaultErrorMessage: ");
+		result.append(defaultErrorMessage);
+		result.append(", minLength: ");
+		result.append(minLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YMinLengthValidatorImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YRegexpValidatorImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YRegexpValidatorImpl.java
new file mode 100644
index 0000000..6d4d118
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YRegexpValidatorImpl.java
@@ -0,0 +1,323 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YRegexp Validator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YRegexpValidatorImpl#getErrorCode <em>Error Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YRegexpValidatorImpl#getDefaultErrorMessage <em>Default Error Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YRegexpValidatorImpl#getRegExpression <em>Reg Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YRegexpValidatorImpl extends YValidatorImpl implements YRegexpValidator {
+	/**
+	 * The default value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ERROR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String errorCode = ERROR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_ERROR_MESSAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultErrorMessage = DEFAULT_ERROR_MESSAGE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRegExpression() <em>Reg Expression</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRegExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REG_EXPRESSION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRegExpression() <em>Reg Expression</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRegExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected String regExpression = REG_EXPRESSION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YRegexpValidatorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ValidationPackage.Literals.YREGEXP_VALIDATOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRegExpression() {
+		return regExpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRegExpression(String newRegExpression) {
+		String oldRegExpression = regExpression;
+		regExpression = newRegExpression;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YREGEXP_VALIDATOR__REG_EXPRESSION, oldRegExpression, regExpression));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getErrorCode() {
+		return errorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrorCode(String newErrorCode) {
+		String oldErrorCode = errorCode;
+		errorCode = newErrorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YREGEXP_VALIDATOR__ERROR_CODE, oldErrorCode, errorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultErrorMessage() {
+		return defaultErrorMessage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultErrorMessage(String newDefaultErrorMessage) {
+		String oldDefaultErrorMessage = defaultErrorMessage;
+		defaultErrorMessage = newDefaultErrorMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YREGEXP_VALIDATOR__DEFAULT_ERROR_MESSAGE, oldDefaultErrorMessage, defaultErrorMessage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ValidationPackage.YREGEXP_VALIDATOR__ERROR_CODE:
+				return getErrorCode();
+			case ValidationPackage.YREGEXP_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return getDefaultErrorMessage();
+			case ValidationPackage.YREGEXP_VALIDATOR__REG_EXPRESSION:
+				return getRegExpression();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ValidationPackage.YREGEXP_VALIDATOR__ERROR_CODE:
+				setErrorCode((String)newValue);
+				return;
+			case ValidationPackage.YREGEXP_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage((String)newValue);
+				return;
+			case ValidationPackage.YREGEXP_VALIDATOR__REG_EXPRESSION:
+				setRegExpression((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YREGEXP_VALIDATOR__ERROR_CODE:
+				setErrorCode(ERROR_CODE_EDEFAULT);
+				return;
+			case ValidationPackage.YREGEXP_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage(DEFAULT_ERROR_MESSAGE_EDEFAULT);
+				return;
+			case ValidationPackage.YREGEXP_VALIDATOR__REG_EXPRESSION:
+				setRegExpression(REG_EXPRESSION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YREGEXP_VALIDATOR__ERROR_CODE:
+				return ERROR_CODE_EDEFAULT == null ? errorCode != null : !ERROR_CODE_EDEFAULT.equals(errorCode);
+			case ValidationPackage.YREGEXP_VALIDATOR__DEFAULT_ERROR_MESSAGE:
+				return DEFAULT_ERROR_MESSAGE_EDEFAULT == null ? defaultErrorMessage != null : !DEFAULT_ERROR_MESSAGE_EDEFAULT.equals(defaultErrorMessage);
+			case ValidationPackage.YREGEXP_VALIDATOR__REG_EXPRESSION:
+				return REG_EXPRESSION_EDEFAULT == null ? regExpression != null : !REG_EXPRESSION_EDEFAULT.equals(regExpression);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YREGEXP_VALIDATOR__ERROR_CODE: return ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE;
+				case ValidationPackage.YREGEXP_VALIDATOR__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YRegexpValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ValidationPackage.YREGEXP_VALIDATOR__REG_EXPRESSION: return ValidationPackage.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE: return ValidationPackage.YREGEXP_VALIDATOR__ERROR_CODE;
+				case ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YREGEXP_VALIDATOR__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YRegexpValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION: return ValidationPackage.YREGEXP_VALIDATOR__REG_EXPRESSION;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (errorCode: ");
+		result.append(errorCode);
+		result.append(", defaultErrorMessage: ");
+		result.append(defaultErrorMessage);
+		result.append(", regExpression: ");
+		result.append(regExpression);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YRegexpValidatorImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YValidatorImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YValidatorImpl.java
new file mode 100644
index 0000000..ebd3a87
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/impl/YValidatorImpl.java
@@ -0,0 +1,357 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YValidator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YValidatorImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YValidatorImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YValidatorImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YValidatorImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.validation.impl.YValidatorImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class YValidatorImpl extends MinimalEObjectImpl.Container implements YValidator {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YValidatorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ValidationPackage.Literals.YVALIDATOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YVALIDATOR__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YVALIDATOR__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ValidationPackage.YVALIDATOR__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ValidationPackage.YVALIDATOR__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ValidationPackage.YVALIDATOR__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ValidationPackage.YVALIDATOR__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ValidationPackage.YVALIDATOR__TAGS:
+				return getTags();
+			case ValidationPackage.YVALIDATOR__ID:
+				return getId();
+			case ValidationPackage.YVALIDATOR__NAME:
+				return getName();
+			case ValidationPackage.YVALIDATOR__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ValidationPackage.YVALIDATOR__TYPE:
+				return getType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ValidationPackage.YVALIDATOR__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ValidationPackage.YVALIDATOR__ID:
+				setId((String)newValue);
+				return;
+			case ValidationPackage.YVALIDATOR__NAME:
+				setName((String)newValue);
+				return;
+			case ValidationPackage.YVALIDATOR__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ValidationPackage.YVALIDATOR__TYPE:
+				setType((Class<?>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YVALIDATOR__TAGS:
+				getTags().clear();
+				return;
+			case ValidationPackage.YVALIDATOR__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ValidationPackage.YVALIDATOR__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ValidationPackage.YVALIDATOR__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ValidationPackage.YVALIDATOR__TYPE:
+				setType((Class<?>)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ValidationPackage.YVALIDATOR__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ValidationPackage.YVALIDATOR__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ValidationPackage.YVALIDATOR__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ValidationPackage.YVALIDATOR__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ValidationPackage.YVALIDATOR__TYPE:
+				return type != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", type: ");
+		result.append(type);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YValidatorImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/util/ValidationAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/util/ValidationAdapterFactory.java
new file mode 100644
index 0000000..3d89a19
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/util/ValidationAdapterFactory.java
@@ -0,0 +1,392 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage
+ * @generated
+ */
+public class ValidationAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ValidationPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValidationAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = ValidationPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ValidationSwitch<Adapter> modelSwitch =
+		new ValidationSwitch<Adapter>() {
+			@Override
+			public Adapter caseYValidator(YValidator object) {
+				return createYValidatorAdapter();
+			}
+			@Override
+			public Adapter caseYMinLengthValidator(YMinLengthValidator object) {
+				return createYMinLengthValidatorAdapter();
+			}
+			@Override
+			public Adapter caseYMaxLengthValidator(YMaxLengthValidator object) {
+				return createYMaxLengthValidatorAdapter();
+			}
+			@Override
+			public Adapter caseYRegexpValidator(YRegexpValidator object) {
+				return createYRegexpValidatorAdapter();
+			}
+			@Override
+			public Adapter caseYClassDelegateValidator(YClassDelegateValidator object) {
+				return createYClassDelegateValidatorAdapter();
+			}
+			@Override
+			public Adapter caseYBeanValidationValidator(YBeanValidationValidator object) {
+				return createYBeanValidationValidatorAdapter();
+			}
+			@Override
+			public Adapter caseYValidationConfig(YValidationConfig object) {
+				return createYValidationConfigAdapter();
+			}
+			@Override
+			public Adapter caseYMinLengthValidationConfig(YMinLengthValidationConfig object) {
+				return createYMinLengthValidationConfigAdapter();
+			}
+			@Override
+			public Adapter caseYMaxLengthValidationConfig(YMaxLengthValidationConfig object) {
+				return createYMaxLengthValidationConfigAdapter();
+			}
+			@Override
+			public Adapter caseYRegexpValidationConfig(YRegexpValidationConfig object) {
+				return createYRegexpValidationConfigAdapter();
+			}
+			@Override
+			public Adapter caseYClassDelegateValidationConfig(YClassDelegateValidationConfig object) {
+				return createYClassDelegateValidationConfigAdapter();
+			}
+			@Override
+			public Adapter caseYBeanValidationValidatorConfig(YBeanValidationValidatorConfig object) {
+				return createYBeanValidationValidatorConfigAdapter();
+			}
+			@Override
+			public Adapter caseYTaggable(YTaggable object) {
+				return createYTaggableAdapter();
+			}
+			@Override
+			public Adapter caseYElement(YElement object) {
+				return createYElementAdapter();
+			}
+			@Override
+			public Adapter caseYBindable(YBindable object) {
+				return createYBindableAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidator <em>YValidator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidator
+	 * @generated
+	 */
+	public Adapter createYValidatorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator <em>YMin Length Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator
+	 * @generated
+	 */
+	public Adapter createYMinLengthValidatorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator <em>YMax Length Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator
+	 * @generated
+	 */
+	public Adapter createYMaxLengthValidatorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator <em>YRegexp Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator
+	 * @generated
+	 */
+	public Adapter createYRegexpValidatorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator <em>YClass Delegate Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator
+	 * @generated
+	 */
+	public Adapter createYClassDelegateValidatorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator <em>YBean Validation Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator
+	 * @generated
+	 */
+	public Adapter createYBeanValidationValidatorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig <em>YValidation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig
+	 * @generated
+	 */
+	public Adapter createYValidationConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig <em>YMin Length Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig
+	 * @generated
+	 */
+	public Adapter createYMinLengthValidationConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig <em>YMax Length Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig
+	 * @generated
+	 */
+	public Adapter createYMaxLengthValidationConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig <em>YRegexp Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig
+	 * @generated
+	 */
+	public Adapter createYRegexpValidationConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig <em>YClass Delegate Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig
+	 * @generated
+	 */
+	public Adapter createYClassDelegateValidationConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig <em>YBean Validation Validator Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig
+	 * @generated
+	 */
+	public Adapter createYBeanValidationValidatorConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+	 * @generated
+	 */
+	public Adapter createYTaggableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+	 * @generated
+	 */
+	public Adapter createYElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBindable <em>YBindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBindable
+	 * @generated
+	 */
+	public Adapter createYBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //ValidationAdapterFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/util/ValidationSwitch.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/util/ValidationSwitch.java
new file mode 100644
index 0000000..5cae5af
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/validation/util/ValidationSwitch.java
@@ -0,0 +1,445 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.validation.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidatorConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage
+ * @generated
+ */
+public class ValidationSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ValidationPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValidationSwitch() {
+		if (modelPackage == null) {
+			modelPackage = ValidationPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case ValidationPackage.YVALIDATOR: {
+				YValidator yValidator = (YValidator)theEObject;
+				T result = caseYValidator(yValidator);
+				if (result == null) result = caseYElement(yValidator);
+				if (result == null) result = caseYBindable(yValidator);
+				if (result == null) result = caseYTaggable(yValidator);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YMIN_LENGTH_VALIDATOR: {
+				YMinLengthValidator yMinLengthValidator = (YMinLengthValidator)theEObject;
+				T result = caseYMinLengthValidator(yMinLengthValidator);
+				if (result == null) result = caseYValidator(yMinLengthValidator);
+				if (result == null) result = caseYMinLengthValidationConfig(yMinLengthValidator);
+				if (result == null) result = caseYElement(yMinLengthValidator);
+				if (result == null) result = caseYBindable(yMinLengthValidator);
+				if (result == null) result = caseYValidationConfig(yMinLengthValidator);
+				if (result == null) result = caseYTaggable(yMinLengthValidator);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YMAX_LENGTH_VALIDATOR: {
+				YMaxLengthValidator yMaxLengthValidator = (YMaxLengthValidator)theEObject;
+				T result = caseYMaxLengthValidator(yMaxLengthValidator);
+				if (result == null) result = caseYValidator(yMaxLengthValidator);
+				if (result == null) result = caseYMaxLengthValidationConfig(yMaxLengthValidator);
+				if (result == null) result = caseYElement(yMaxLengthValidator);
+				if (result == null) result = caseYBindable(yMaxLengthValidator);
+				if (result == null) result = caseYValidationConfig(yMaxLengthValidator);
+				if (result == null) result = caseYTaggable(yMaxLengthValidator);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YREGEXP_VALIDATOR: {
+				YRegexpValidator yRegexpValidator = (YRegexpValidator)theEObject;
+				T result = caseYRegexpValidator(yRegexpValidator);
+				if (result == null) result = caseYValidator(yRegexpValidator);
+				if (result == null) result = caseYRegexpValidationConfig(yRegexpValidator);
+				if (result == null) result = caseYElement(yRegexpValidator);
+				if (result == null) result = caseYBindable(yRegexpValidator);
+				if (result == null) result = caseYValidationConfig(yRegexpValidator);
+				if (result == null) result = caseYTaggable(yRegexpValidator);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATOR: {
+				YClassDelegateValidator yClassDelegateValidator = (YClassDelegateValidator)theEObject;
+				T result = caseYClassDelegateValidator(yClassDelegateValidator);
+				if (result == null) result = caseYValidator(yClassDelegateValidator);
+				if (result == null) result = caseYClassDelegateValidationConfig(yClassDelegateValidator);
+				if (result == null) result = caseYElement(yClassDelegateValidator);
+				if (result == null) result = caseYBindable(yClassDelegateValidator);
+				if (result == null) result = caseYValidationConfig(yClassDelegateValidator);
+				if (result == null) result = caseYTaggable(yClassDelegateValidator);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR: {
+				YBeanValidationValidator yBeanValidationValidator = (YBeanValidationValidator)theEObject;
+				T result = caseYBeanValidationValidator(yBeanValidationValidator);
+				if (result == null) result = caseYValidator(yBeanValidationValidator);
+				if (result == null) result = caseYBeanValidationValidatorConfig(yBeanValidationValidator);
+				if (result == null) result = caseYElement(yBeanValidationValidator);
+				if (result == null) result = caseYBindable(yBeanValidationValidator);
+				if (result == null) result = caseYValidationConfig(yBeanValidationValidator);
+				if (result == null) result = caseYTaggable(yBeanValidationValidator);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YVALIDATION_CONFIG: {
+				YValidationConfig yValidationConfig = (YValidationConfig)theEObject;
+				T result = caseYValidationConfig(yValidationConfig);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YMIN_LENGTH_VALIDATION_CONFIG: {
+				YMinLengthValidationConfig yMinLengthValidationConfig = (YMinLengthValidationConfig)theEObject;
+				T result = caseYMinLengthValidationConfig(yMinLengthValidationConfig);
+				if (result == null) result = caseYValidationConfig(yMinLengthValidationConfig);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YMAX_LENGTH_VALIDATION_CONFIG: {
+				YMaxLengthValidationConfig yMaxLengthValidationConfig = (YMaxLengthValidationConfig)theEObject;
+				T result = caseYMaxLengthValidationConfig(yMaxLengthValidationConfig);
+				if (result == null) result = caseYValidationConfig(yMaxLengthValidationConfig);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YREGEXP_VALIDATION_CONFIG: {
+				YRegexpValidationConfig yRegexpValidationConfig = (YRegexpValidationConfig)theEObject;
+				T result = caseYRegexpValidationConfig(yRegexpValidationConfig);
+				if (result == null) result = caseYValidationConfig(yRegexpValidationConfig);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YCLASS_DELEGATE_VALIDATION_CONFIG: {
+				YClassDelegateValidationConfig yClassDelegateValidationConfig = (YClassDelegateValidationConfig)theEObject;
+				T result = caseYClassDelegateValidationConfig(yClassDelegateValidationConfig);
+				if (result == null) result = caseYValidationConfig(yClassDelegateValidationConfig);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ValidationPackage.YBEAN_VALIDATION_VALIDATOR_CONFIG: {
+				YBeanValidationValidatorConfig yBeanValidationValidatorConfig = (YBeanValidationValidatorConfig)theEObject;
+				T result = caseYBeanValidationValidatorConfig(yBeanValidationValidatorConfig);
+				if (result == null) result = caseYValidationConfig(yBeanValidationValidatorConfig);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YValidator</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YValidator</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYValidator(YValidator object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMin Length Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMin Length Validator</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMinLengthValidator(YMinLengthValidator object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMax Length Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMax Length Validator</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMaxLengthValidator(YMaxLengthValidator object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YRegexp Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YRegexp Validator</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYRegexpValidator(YRegexpValidator object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YClass Delegate Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YClass Delegate Validator</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYClassDelegateValidator(YClassDelegateValidator object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBean Validation Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBean Validation Validator</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBeanValidationValidator(YBeanValidationValidator object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YValidation Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YValidation Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYValidationConfig(YValidationConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMin Length Validation Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMin Length Validation Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMinLengthValidationConfig(YMinLengthValidationConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMax Length Validation Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMax Length Validation Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMaxLengthValidationConfig(YMaxLengthValidationConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YRegexp Validation Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YRegexp Validation Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYRegexpValidationConfig(YRegexpValidationConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YClass Delegate Validation Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YClass Delegate Validation Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYClassDelegateValidationConfig(YClassDelegateValidationConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBean Validation Validator Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBean Validation Validator Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBeanValidationValidatorConfig(YBeanValidationValidatorConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTaggable(YTaggable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYElement(YElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBindable(YBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //ValidationSwitch
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/VisibilityFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/VisibilityFactory.java
new file mode 100644
index 0000000..33b131d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/VisibilityFactory.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage
+ * @generated
+ */
+public interface VisibilityFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	VisibilityFactory eINSTANCE = org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>YVisibility Processor</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YVisibility Processor</em>'.
+	 * @generated
+	 */
+	YVisibilityProcessor createYVisibilityProcessor();
+
+	/**
+	 * Returns a new object of class '<em>YVisibility Properties</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YVisibility Properties</em>'.
+	 * @generated
+	 */
+	YVisibilityProperties createYVisibilityProperties();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	VisibilityPackage getVisibilityPackage();
+
+} //VisibilityFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/VisibilityPackage.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/VisibilityPackage.java
new file mode 100644
index 0000000..b3d0dd4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/VisibilityPackage.java
@@ -0,0 +1,776 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface VisibilityPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "visibility";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/ecview/v1/core/visibility";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "visibility";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	VisibilityPackage eINSTANCE = org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl <em>YVisibility Processor</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl#getYVisibilityProcessor()
+	 * @generated
+	 */
+	int YVISIBILITY_PROCESSOR = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Data Used</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR__DATA_USED = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Triggers On</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR__TRIGGERS_ON = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Delegate</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR__DELEGATE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Delegate Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME = CoreModelPackage.YELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YVisibility Processor</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROCESSOR_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl <em>YVisibility Properties</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl#getYVisibilityProperties()
+	 * @generated
+	 */
+	int YVISIBILITY_PROPERTIES = 1;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__VISIBLE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__EDITABLE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__ENABLED = CoreModelPackage.YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Border</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__BORDER = CoreModelPackage.YELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Bold</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__BOLD = CoreModelPackage.YELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Italic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__ITALIC = CoreModelPackage.YELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Strikethrough</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__STRIKETHROUGH = CoreModelPackage.YELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Underline</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__UNDERLINE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Background Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__BACKGROUND_COLOR = CoreModelPackage.YELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Foreground Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__FOREGROUND_COLOR = CoreModelPackage.YELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Background Color Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Foreground Color Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__CSS_CLASS = CoreModelPackage.YELEMENT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Css Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES__CSS_ID = CoreModelPackage.YELEMENT_FEATURE_COUNT + 13;
+
+	/**
+	 * The number of structural features of the '<em>YVisibility Properties</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVISIBILITY_PROPERTIES_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 14;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YColor <em>YColor</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YColor
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl#getYColor()
+	 * @generated
+	 */
+	int YCOLOR = 2;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor <em>YVisibility Processor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YVisibility Processor</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor
+	 * @generated
+	 */
+	EClass getYVisibilityProcessor();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDataUsed <em>Data Used</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Data Used</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDataUsed()
+	 * @see #getYVisibilityProcessor()
+	 * @generated
+	 */
+	EReference getYVisibilityProcessor_DataUsed();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getTriggersOn <em>Triggers On</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Triggers On</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getTriggersOn()
+	 * @see #getYVisibilityProcessor()
+	 * @generated
+	 */
+	EReference getYVisibilityProcessor_TriggersOn();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDelegate <em>Delegate</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Delegate</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDelegate()
+	 * @see #getYVisibilityProcessor()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProcessor_Delegate();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDelegateQualifiedName <em>Delegate Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Delegate Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDelegateQualifiedName()
+	 * @see #getYVisibilityProcessor()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProcessor_DelegateQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties <em>YVisibility Properties</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YVisibility Properties</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties
+	 * @generated
+	 */
+	EClass getYVisibilityProperties();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isVisible <em>Visible</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Visible</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isVisible()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_Visible();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isEditable <em>Editable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Editable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isEditable()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_Editable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isEnabled <em>Enabled</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Enabled</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isEnabled()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_Enabled();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isBorder <em>Border</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Border</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isBorder()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_Border();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isBold <em>Bold</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bold</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isBold()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_Bold();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isItalic <em>Italic</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Italic</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isItalic()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_Italic();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isStrikethrough <em>Strikethrough</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Strikethrough</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isStrikethrough()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_Strikethrough();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isUnderline <em>Underline</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Underline</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isUnderline()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_Underline();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getBackgroundColor <em>Background Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Background Color</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getBackgroundColor()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_BackgroundColor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getForegroundColor <em>Foreground Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Foreground Color</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getForegroundColor()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_ForegroundColor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getBackgroundColorCode <em>Background Color Code</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Background Color Code</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getBackgroundColorCode()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_BackgroundColorCode();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getForegroundColorCode <em>Foreground Color Code</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Foreground Color Code</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getForegroundColorCode()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_ForegroundColorCode();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getCssClass <em>Css Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Css Class</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getCssClass()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_CssClass();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getCssId <em>Css Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Css Id</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getCssId()
+	 * @see #getYVisibilityProperties()
+	 * @generated
+	 */
+	EAttribute getYVisibilityProperties_CssId();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YColor <em>YColor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YColor</em>'.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YColor
+	 * @generated
+	 */
+	EEnum getYColor();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	VisibilityFactory getVisibilityFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl <em>YVisibility Processor</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl#getYVisibilityProcessor()
+		 * @generated
+		 */
+		EClass YVISIBILITY_PROCESSOR = eINSTANCE.getYVisibilityProcessor();
+
+		/**
+		 * The meta object literal for the '<em><b>Data Used</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVISIBILITY_PROCESSOR__DATA_USED = eINSTANCE.getYVisibilityProcessor_DataUsed();
+
+		/**
+		 * The meta object literal for the '<em><b>Triggers On</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVISIBILITY_PROCESSOR__TRIGGERS_ON = eINSTANCE.getYVisibilityProcessor_TriggersOn();
+
+		/**
+		 * The meta object literal for the '<em><b>Delegate</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROCESSOR__DELEGATE = eINSTANCE.getYVisibilityProcessor_Delegate();
+
+		/**
+		 * The meta object literal for the '<em><b>Delegate Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME = eINSTANCE.getYVisibilityProcessor_DelegateQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl <em>YVisibility Properties</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl
+		 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl#getYVisibilityProperties()
+		 * @generated
+		 */
+		EClass YVISIBILITY_PROPERTIES = eINSTANCE.getYVisibilityProperties();
+
+		/**
+		 * The meta object literal for the '<em><b>Visible</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__VISIBLE = eINSTANCE.getYVisibilityProperties_Visible();
+
+		/**
+		 * The meta object literal for the '<em><b>Editable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__EDITABLE = eINSTANCE.getYVisibilityProperties_Editable();
+
+		/**
+		 * The meta object literal for the '<em><b>Enabled</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__ENABLED = eINSTANCE.getYVisibilityProperties_Enabled();
+
+		/**
+		 * The meta object literal for the '<em><b>Border</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__BORDER = eINSTANCE.getYVisibilityProperties_Border();
+
+		/**
+		 * The meta object literal for the '<em><b>Bold</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__BOLD = eINSTANCE.getYVisibilityProperties_Bold();
+
+		/**
+		 * The meta object literal for the '<em><b>Italic</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__ITALIC = eINSTANCE.getYVisibilityProperties_Italic();
+
+		/**
+		 * The meta object literal for the '<em><b>Strikethrough</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__STRIKETHROUGH = eINSTANCE.getYVisibilityProperties_Strikethrough();
+
+		/**
+		 * The meta object literal for the '<em><b>Underline</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__UNDERLINE = eINSTANCE.getYVisibilityProperties_Underline();
+
+		/**
+		 * The meta object literal for the '<em><b>Background Color</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__BACKGROUND_COLOR = eINSTANCE.getYVisibilityProperties_BackgroundColor();
+
+		/**
+		 * The meta object literal for the '<em><b>Foreground Color</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__FOREGROUND_COLOR = eINSTANCE.getYVisibilityProperties_ForegroundColor();
+
+		/**
+		 * The meta object literal for the '<em><b>Background Color Code</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE = eINSTANCE.getYVisibilityProperties_BackgroundColorCode();
+
+		/**
+		 * The meta object literal for the '<em><b>Foreground Color Code</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE = eINSTANCE.getYVisibilityProperties_ForegroundColorCode();
+
+		/**
+		 * The meta object literal for the '<em><b>Css Class</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__CSS_CLASS = eINSTANCE.getYVisibilityProperties_CssClass();
+
+		/**
+		 * The meta object literal for the '<em><b>Css Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVISIBILITY_PROPERTIES__CSS_ID = eINSTANCE.getYVisibilityProperties_CssId();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YColor <em>YColor</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YColor
+		 * @see org.eclipse.osbp.ecview.core.common.model.visibility.impl.VisibilityPackageImpl#getYColor()
+		 * @generated
+		 */
+		EEnum YCOLOR = eINSTANCE.getYColor();
+
+	}
+
+} //VisibilityPackage
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YColor.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YColor.java
new file mode 100644
index 0000000..6476c64
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YColor.java
@@ -0,0 +1,420 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YColor</b></em>'.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYColor()
+ * @model
+ * @generated
+ */
+public enum YColor implements Enumerator
+{
+	/**
+	 * The '<em><b>UNDEFINED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNDEFINED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UNDEFINED(0, "UNDEFINED", "UNDEFINED"),
+	/**
+	 * The '<em><b>GREEN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GREEN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GREEN(1, "GREEN", "green"),
+	/**
+	 * The '<em><b>BLUE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BLUE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BLUE(2, "BLUE", "blue"),
+	/**
+	 * The '<em><b>YELLOW</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #YELLOW_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	YELLOW(3, "YELLOW", "yellow"),
+	/**
+	 * The '<em><b>RED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RED(4, "RED", "red"),
+	/**
+	 * The '<em><b>BLACK</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BLACK_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BLACK(5, "BLACK", "black"),
+	/**
+	 * The '<em><b>WHITE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #WHITE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	WHITE(6, "WHITE", "white"),
+	/**
+	 * The '<em><b>GRAY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GRAY_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GRAY(7, "GRAY", "gray"),
+	/**
+	 * The '<em><b>LIGHT GRAY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LIGHT_GRAY_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LIGHT_GRAY(8, "LIGHT_GRAY", "light-gray"), /**
+	 * The '<em><b>DARK GRAY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DARK_GRAY_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DARK_GRAY(9, "DARK_GRAY", "dark-gray");
+	/**
+	 * The '<em><b>UNDEFINED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>UNDEFINED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #UNDEFINED
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UNDEFINED_VALUE = 0;
+
+	/**
+	 * The '<em><b>GREEN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GREEN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #GREEN
+	 * @model literal="green"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GREEN_VALUE = 1;
+
+	/**
+	 * The '<em><b>BLUE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BLUE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #BLUE
+	 * @model literal="blue"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BLUE_VALUE = 2;
+
+	/**
+	 * The '<em><b>YELLOW</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>YELLOW</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #YELLOW
+	 * @model literal="yellow"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int YELLOW_VALUE = 3;
+
+	/**
+	 * The '<em><b>RED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #RED
+	 * @model literal="red"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RED_VALUE = 4;
+
+	/**
+	 * The '<em><b>BLACK</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BLACK</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #BLACK
+	 * @model literal="black"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BLACK_VALUE = 5;
+
+	/**
+	 * The '<em><b>WHITE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>WHITE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #WHITE
+	 * @model literal="white"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int WHITE_VALUE = 6;
+
+	/**
+	 * The '<em><b>GRAY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GRAY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #GRAY
+	 * @model literal="gray"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GRAY_VALUE = 7;
+
+	/**
+	 * The '<em><b>LIGHT GRAY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LIGHT GRAY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #LIGHT_GRAY
+	 * @model literal="light-gray"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LIGHT_GRAY_VALUE = 8;
+
+	/**
+	 * The '<em><b>DARK GRAY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DARK GRAY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #DARK_GRAY
+	 * @model literal="dark-gray"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DARK_GRAY_VALUE = 9;
+
+	/**
+	 * An array of all the '<em><b>YColor</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YColor[] VALUES_ARRAY =
+		new YColor[] {
+			UNDEFINED,
+			GREEN,
+			BLUE,
+			YELLOW,
+			RED,
+			BLACK,
+			WHITE,
+			GRAY,
+			LIGHT_GRAY,
+			DARK_GRAY,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YColor</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YColor> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YColor</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YColor get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YColor result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YColor</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YColor getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YColor result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YColor</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YColor get(int value) {
+		switch (value) {
+			case UNDEFINED_VALUE: return UNDEFINED;
+			case GREEN_VALUE: return GREEN;
+			case BLUE_VALUE: return BLUE;
+			case YELLOW_VALUE: return YELLOW;
+			case RED_VALUE: return RED;
+			case BLACK_VALUE: return BLACK;
+			case WHITE_VALUE: return WHITE;
+			case GRAY_VALUE: return GRAY;
+			case LIGHT_GRAY_VALUE: return LIGHT_GRAY;
+			case DARK_GRAY_VALUE: return DARK_GRAY;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private YColor(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YColorType.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YColorType.java
new file mode 100644
index 0000000..dfd0404
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YColorType.java
@@ -0,0 +1,217 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+//TODO:  check the reference
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YColor Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYColorType()
+ * @model
+ * @generated
+ */
+public enum YColorType implements Enumerator {
+	/**
+	 * The '<em><b>THEME</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #THEME_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	THEME(0, "THEME", "THEME"),
+
+	/**
+	 * The '<em><b>RGB</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RGB_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RGB(1, "RGB", "RGB");
+
+	/**
+	 * The '<em><b>THEME</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>THEME</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #THEME
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int THEME_VALUE = 0;
+
+	/**
+	 * The '<em><b>RGB</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RGB</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #RGB
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RGB_VALUE = 1;
+
+	/**
+	 * An array of all the '<em><b>YColor Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YColorType[] VALUES_ARRAY =
+		new YColorType[] {
+			THEME,
+			RGB,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YColor Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YColorType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YColor Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YColorType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YColorType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YColor Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YColorType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YColorType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YColor Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YColorType get(int value) {
+		switch (value) {
+			case THEME_VALUE: return THEME;
+			case RGB_VALUE: return RGB;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private YColorType(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YColorType
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YVisibilityProcessor.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YVisibilityProcessor.java
new file mode 100644
index 0000000..9900760
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YVisibilityProcessor.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YVisibility Processor</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDataUsed <em>Data Used</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getTriggersOn <em>Triggers On</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDelegate <em>Delegate</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDelegateQualifiedName <em>Delegate Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProcessor()
+ * @model
+ * @generated
+ */
+public interface YVisibilityProcessor extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Data Used</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data Used</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data Used</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProcessor_DataUsed()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YBinding> getDataUsed();
+
+	/**
+	 * Returns the value of the '<em><b>Triggers On</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.binding.YBinding}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Triggers On</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Triggers On</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProcessor_TriggersOn()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YBinding> getTriggersOn();
+
+	/**
+	 * Returns the value of the '<em><b>Delegate</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Delegate</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Delegate</em>' attribute.
+	 * @see #setDelegate(Class)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProcessor_Delegate()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getDelegate();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDelegate <em>Delegate</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Delegate</em>' attribute.
+	 * @see #getDelegate()
+	 * @generated
+	 */
+	void setDelegate(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Delegate Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Delegate Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Delegate Qualified Name</em>' attribute.
+	 * @see #setDelegateQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProcessor_DelegateQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getDelegateQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor#getDelegateQualifiedName <em>Delegate Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Delegate Qualified Name</em>' attribute.
+	 * @see #getDelegateQualifiedName()
+	 * @generated
+	 */
+	void setDelegateQualifiedName(String value);
+
+} // YVisibilityProcessor
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YVisibilityProperties.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YVisibilityProperties.java
new file mode 100644
index 0000000..7c71d0f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/YVisibilityProperties.java
@@ -0,0 +1,415 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YVisibility Properties</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isVisible <em>Visible</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isEditable <em>Editable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isEnabled <em>Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isBorder <em>Border</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isBold <em>Bold</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isItalic <em>Italic</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isStrikethrough <em>Strikethrough</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isUnderline <em>Underline</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getBackgroundColor <em>Background Color</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getForegroundColor <em>Foreground Color</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getBackgroundColorCode <em>Background Color Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getForegroundColorCode <em>Foreground Color Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getCssClass <em>Css Class</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getCssId <em>Css Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties()
+ * @model
+ * @generated
+ */
+public interface YVisibilityProperties extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Visible</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Visible</em>' attribute.
+	 * @see #setVisible(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_Visible()
+	 * @model
+	 * @generated
+	 */
+	boolean isVisible();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isVisible <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Visible</em>' attribute.
+	 * @see #isVisible()
+	 * @generated
+	 */
+	void setVisible(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Editable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Editable</em>' attribute.
+	 * @see #setEditable(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_Editable()
+	 * @model
+	 * @generated
+	 */
+	boolean isEditable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isEditable <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Editable</em>' attribute.
+	 * @see #isEditable()
+	 * @generated
+	 */
+	void setEditable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Enabled</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Enabled</em>' attribute.
+	 * @see #setEnabled(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_Enabled()
+	 * @model
+	 * @generated
+	 */
+	boolean isEnabled();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isEnabled <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Enabled</em>' attribute.
+	 * @see #isEnabled()
+	 * @generated
+	 */
+	void setEnabled(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Border</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Border</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Border</em>' attribute.
+	 * @see #setBorder(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_Border()
+	 * @model
+	 * @generated
+	 */
+	boolean isBorder();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isBorder <em>Border</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Border</em>' attribute.
+	 * @see #isBorder()
+	 * @generated
+	 */
+	void setBorder(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Bold</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bold</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bold</em>' attribute.
+	 * @see #setBold(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_Bold()
+	 * @model
+	 * @generated
+	 */
+	boolean isBold();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isBold <em>Bold</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bold</em>' attribute.
+	 * @see #isBold()
+	 * @generated
+	 */
+	void setBold(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Italic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Italic</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Italic</em>' attribute.
+	 * @see #setItalic(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_Italic()
+	 * @model
+	 * @generated
+	 */
+	boolean isItalic();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isItalic <em>Italic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Italic</em>' attribute.
+	 * @see #isItalic()
+	 * @generated
+	 */
+	void setItalic(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Strikethrough</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Strikethrough</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Strikethrough</em>' attribute.
+	 * @see #setStrikethrough(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_Strikethrough()
+	 * @model
+	 * @generated
+	 */
+	boolean isStrikethrough();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isStrikethrough <em>Strikethrough</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Strikethrough</em>' attribute.
+	 * @see #isStrikethrough()
+	 * @generated
+	 */
+	void setStrikethrough(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Underline</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Underline</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Underline</em>' attribute.
+	 * @see #setUnderline(boolean)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_Underline()
+	 * @model
+	 * @generated
+	 */
+	boolean isUnderline();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#isUnderline <em>Underline</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Underline</em>' attribute.
+	 * @see #isUnderline()
+	 * @generated
+	 */
+	void setUnderline(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Background Color</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.visibility.YColor}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Background Color</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Background Color</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YColor
+	 * @see #setBackgroundColor(YColor)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_BackgroundColor()
+	 * @model
+	 * @generated
+	 */
+	YColor getBackgroundColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getBackgroundColor <em>Background Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Background Color</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YColor
+	 * @see #getBackgroundColor()
+	 * @generated
+	 */
+	void setBackgroundColor(YColor value);
+
+	/**
+	 * Returns the value of the '<em><b>Foreground Color</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.visibility.YColor}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Foreground Color</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Foreground Color</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YColor
+	 * @see #setForegroundColor(YColor)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_ForegroundColor()
+	 * @model
+	 * @generated
+	 */
+	YColor getForegroundColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getForegroundColor <em>Foreground Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Foreground Color</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YColor
+	 * @see #getForegroundColor()
+	 * @generated
+	 */
+	void setForegroundColor(YColor value);
+
+	/**
+	 * Returns the value of the '<em><b>Background Color Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Background Color Code</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Background Color Code</em>' attribute.
+	 * @see #setBackgroundColorCode(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_BackgroundColorCode()
+	 * @model
+	 * @generated
+	 */
+	String getBackgroundColorCode();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getBackgroundColorCode <em>Background Color Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Background Color Code</em>' attribute.
+	 * @see #getBackgroundColorCode()
+	 * @generated
+	 */
+	void setBackgroundColorCode(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Foreground Color Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Foreground Color Code</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Foreground Color Code</em>' attribute.
+	 * @see #setForegroundColorCode(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_ForegroundColorCode()
+	 * @model
+	 * @generated
+	 */
+	String getForegroundColorCode();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getForegroundColorCode <em>Foreground Color Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Foreground Color Code</em>' attribute.
+	 * @see #getForegroundColorCode()
+	 * @generated
+	 */
+	void setForegroundColorCode(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Css Class</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Css Class</em>' attribute.
+	 * @see #setCssClass(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_CssClass()
+	 * @model
+	 * @generated
+	 */
+	String getCssClass();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getCssClass <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Css Class</em>' attribute.
+	 * @see #getCssClass()
+	 * @generated
+	 */
+	void setCssClass(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Css Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Css Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Css Id</em>' attribute.
+	 * @see #setCssId(String)
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#getYVisibilityProperties_CssId()
+	 * @model
+	 * @generated
+	 */
+	String getCssId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties#getCssId <em>Css Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Css Id</em>' attribute.
+	 * @see #getCssId()
+	 * @generated
+	 */
+	void setCssId(String value);
+
+} // YVisibilityProperties
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/VisibilityFactoryImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/VisibilityFactoryImpl.java
new file mode 100644
index 0000000..19db333
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/VisibilityFactoryImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityFactory;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YColor;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VisibilityFactoryImpl extends EFactoryImpl implements VisibilityFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static VisibilityFactory init() {
+		try {
+			VisibilityFactory theVisibilityFactory = (VisibilityFactory)EPackage.Registry.INSTANCE.getEFactory(VisibilityPackage.eNS_URI);
+			if (theVisibilityFactory != null) {
+				return theVisibilityFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new VisibilityFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VisibilityFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case VisibilityPackage.YVISIBILITY_PROCESSOR: return createYVisibilityProcessor();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES: return createYVisibilityProperties();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case VisibilityPackage.YCOLOR:
+				return createYColorFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case VisibilityPackage.YCOLOR:
+				return convertYColorToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YVisibilityProcessor createYVisibilityProcessor() {
+		YVisibilityProcessorImpl yVisibilityProcessor = new YVisibilityProcessorImpl();
+		return yVisibilityProcessor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YVisibilityProperties createYVisibilityProperties() {
+		YVisibilityPropertiesImpl yVisibilityProperties = new YVisibilityPropertiesImpl();
+		return yVisibilityProperties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YColor createYColorFromString(EDataType eDataType, String initialValue) {
+		YColor result = YColor.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertYColorToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VisibilityPackage getVisibilityPackage() {
+		return (VisibilityPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static VisibilityPackage getPackage() {
+		return VisibilityPackage.eINSTANCE;
+	}
+
+} //VisibilityFactoryImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/VisibilityPackageImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/VisibilityPackageImpl.java
new file mode 100644
index 0000000..32a2c49
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/VisibilityPackageImpl.java
@@ -0,0 +1,463 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.binding.impl.BindingPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.AuthorizationPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.impl.AuthorizationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.CoreModelPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.impl.DatatypesPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.impl.ValidationPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityFactory;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YColor;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VisibilityPackageImpl extends EPackageImpl implements VisibilityPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yVisibilityProcessorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yVisibilityPropertiesEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum yColorEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private VisibilityPackageImpl() {
+		super(eNS_URI, VisibilityFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link VisibilityPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static VisibilityPackage init() {
+		if (isInited) return (VisibilityPackage)EPackage.Registry.INSTANCE.getEPackage(VisibilityPackage.eNS_URI);
+
+		// Obtain or create and register package
+		VisibilityPackageImpl theVisibilityPackage = (VisibilityPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof VisibilityPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new VisibilityPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		BindingPackageImpl theBindingPackage = (BindingPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) instanceof BindingPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI) : BindingPackage.eINSTANCE);
+		CoreModelPackageImpl theCoreModelPackage = (CoreModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) instanceof CoreModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI) : CoreModelPackage.eINSTANCE);
+		AuthorizationPackageImpl theAuthorizationPackage = (AuthorizationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) instanceof AuthorizationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AuthorizationPackage.eNS_URI) : AuthorizationPackage.eINSTANCE);
+		ValidationPackageImpl theValidationPackage = (ValidationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) instanceof ValidationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI) : ValidationPackage.eINSTANCE);
+		DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) instanceof DatatypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI) : DatatypesPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theVisibilityPackage.createPackageContents();
+		theBindingPackage.createPackageContents();
+		theCoreModelPackage.createPackageContents();
+		theAuthorizationPackage.createPackageContents();
+		theValidationPackage.createPackageContents();
+		theDatatypesPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theVisibilityPackage.initializePackageContents();
+		theBindingPackage.initializePackageContents();
+		theCoreModelPackage.initializePackageContents();
+		theAuthorizationPackage.initializePackageContents();
+		theValidationPackage.initializePackageContents();
+		theDatatypesPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theVisibilityPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(VisibilityPackage.eNS_URI, theVisibilityPackage);
+		return theVisibilityPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYVisibilityProcessor() {
+		return yVisibilityProcessorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYVisibilityProcessor_DataUsed() {
+		return (EReference)yVisibilityProcessorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYVisibilityProcessor_TriggersOn() {
+		return (EReference)yVisibilityProcessorEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProcessor_Delegate() {
+		return (EAttribute)yVisibilityProcessorEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProcessor_DelegateQualifiedName() {
+		return (EAttribute)yVisibilityProcessorEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYVisibilityProperties() {
+		return yVisibilityPropertiesEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_Visible() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_Editable() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_Enabled() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_Border() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_Bold() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_Italic() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_Strikethrough() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_Underline() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_BackgroundColor() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_ForegroundColor() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_BackgroundColorCode() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_ForegroundColorCode() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_CssClass() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYVisibilityProperties_CssId() {
+		return (EAttribute)yVisibilityPropertiesEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYColor() {
+		return yColorEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VisibilityFactory getVisibilityFactory() {
+		return (VisibilityFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		yVisibilityProcessorEClass = createEClass(YVISIBILITY_PROCESSOR);
+		createEReference(yVisibilityProcessorEClass, YVISIBILITY_PROCESSOR__DATA_USED);
+		createEReference(yVisibilityProcessorEClass, YVISIBILITY_PROCESSOR__TRIGGERS_ON);
+		createEAttribute(yVisibilityProcessorEClass, YVISIBILITY_PROCESSOR__DELEGATE);
+		createEAttribute(yVisibilityProcessorEClass, YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME);
+
+		yVisibilityPropertiesEClass = createEClass(YVISIBILITY_PROPERTIES);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__VISIBLE);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__EDITABLE);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__ENABLED);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__BORDER);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__BOLD);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__ITALIC);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__STRIKETHROUGH);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__UNDERLINE);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__BACKGROUND_COLOR);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__FOREGROUND_COLOR);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__CSS_CLASS);
+		createEAttribute(yVisibilityPropertiesEClass, YVISIBILITY_PROPERTIES__CSS_ID);
+
+		// Create enums
+		yColorEEnum = createEEnum(YCOLOR);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		CoreModelPackage theCoreModelPackage = (CoreModelPackage)EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI);
+		BindingPackage theBindingPackage = (BindingPackage)EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		yVisibilityProcessorEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		yVisibilityPropertiesEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(yVisibilityProcessorEClass, YVisibilityProcessor.class, "YVisibilityProcessor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYVisibilityProcessor_DataUsed(), theBindingPackage.getYBinding(), null, "dataUsed", null, 0, -1, YVisibilityProcessor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYVisibilityProcessor_TriggersOn(), theBindingPackage.getYBinding(), null, "triggersOn", null, 0, -1, YVisibilityProcessor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		EGenericType g1 = createEGenericType(ecorePackage.getEJavaClass());
+		EGenericType g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYVisibilityProcessor_Delegate(), g1, "delegate", null, 0, 1, YVisibilityProcessor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProcessor_DelegateQualifiedName(), ecorePackage.getEString(), "delegateQualifiedName", null, 0, 1, YVisibilityProcessor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yVisibilityPropertiesEClass, YVisibilityProperties.class, "YVisibilityProperties", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYVisibilityProperties_Visible(), ecorePackage.getEBoolean(), "visible", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_Editable(), ecorePackage.getEBoolean(), "editable", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_Enabled(), ecorePackage.getEBoolean(), "enabled", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_Border(), ecorePackage.getEBoolean(), "border", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_Bold(), ecorePackage.getEBoolean(), "bold", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_Italic(), ecorePackage.getEBoolean(), "italic", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_Strikethrough(), ecorePackage.getEBoolean(), "strikethrough", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_Underline(), ecorePackage.getEBoolean(), "underline", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_BackgroundColor(), this.getYColor(), "backgroundColor", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_ForegroundColor(), this.getYColor(), "foregroundColor", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_BackgroundColorCode(), ecorePackage.getEString(), "backgroundColorCode", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_ForegroundColorCode(), ecorePackage.getEString(), "foregroundColorCode", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_CssClass(), ecorePackage.getEString(), "cssClass", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVisibilityProperties_CssId(), ecorePackage.getEString(), "cssId", null, 0, 1, YVisibilityProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(yColorEEnum, YColor.class, "YColor");
+		addEEnumLiteral(yColorEEnum, YColor.UNDEFINED);
+		addEEnumLiteral(yColorEEnum, YColor.GREEN);
+		addEEnumLiteral(yColorEEnum, YColor.BLUE);
+		addEEnumLiteral(yColorEEnum, YColor.YELLOW);
+		addEEnumLiteral(yColorEEnum, YColor.RED);
+		addEEnumLiteral(yColorEEnum, YColor.BLACK);
+		addEEnumLiteral(yColorEEnum, YColor.WHITE);
+		addEEnumLiteral(yColorEEnum, YColor.GRAY);
+		addEEnumLiteral(yColorEEnum, YColor.LIGHT_GRAY);
+		addEEnumLiteral(yColorEEnum, YColor.DARK_GRAY);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //VisibilityPackageImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/YVisibilityProcessorImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/YVisibilityProcessorImpl.java
new file mode 100644
index 0000000..15438b7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/YVisibilityProcessorImpl.java
@@ -0,0 +1,491 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YVisibility Processor</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl#getDataUsed <em>Data Used</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl#getTriggersOn <em>Triggers On</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl#getDelegate <em>Delegate</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityProcessorImpl#getDelegateQualifiedName <em>Delegate Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YVisibilityProcessorImpl extends MinimalEObjectImpl.Container implements YVisibilityProcessor {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The cached value of the '{@link #getDataUsed() <em>Data Used</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDataUsed()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YBinding> dataUsed;
+
+	/**
+	 * The cached value of the '{@link #getTriggersOn() <em>Triggers On</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTriggersOn()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YBinding> triggersOn;
+
+	/**
+	 * The cached value of the '{@link #getDelegate() <em>Delegate</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDelegate()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> delegate;
+
+	/**
+	 * The default value of the '{@link #getDelegateQualifiedName() <em>Delegate Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDelegateQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DELEGATE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDelegateQualifiedName() <em>Delegate Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDelegateQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String delegateQualifiedName = DELEGATE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YVisibilityProcessorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return VisibilityPackage.Literals.YVISIBILITY_PROCESSOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROCESSOR__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROCESSOR__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, VisibilityPackage.YVISIBILITY_PROCESSOR__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, VisibilityPackage.YVISIBILITY_PROCESSOR__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YBinding> getDataUsed() {
+		if (dataUsed == null) {
+			dataUsed = new EObjectContainmentEList.Resolving<YBinding>(YBinding.class, this, VisibilityPackage.YVISIBILITY_PROCESSOR__DATA_USED);
+		}
+		return dataUsed;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YBinding> getTriggersOn() {
+		if (triggersOn == null) {
+			triggersOn = new EObjectContainmentEList.Resolving<YBinding>(YBinding.class, this, VisibilityPackage.YVISIBILITY_PROCESSOR__TRIGGERS_ON);
+		}
+		return triggersOn;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Class<?> getDelegate() {
+		return delegate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDelegate(Class<?> newDelegate) {
+		Class<?> oldDelegate = delegate;
+		delegate = newDelegate;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE, oldDelegate, delegate));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDelegateQualifiedName() {
+		return delegateQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDelegateQualifiedName(String newDelegateQualifiedName) {
+		String oldDelegateQualifiedName = delegateQualifiedName;
+		delegateQualifiedName = newDelegateQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME, oldDelegateQualifiedName, delegateQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DATA_USED:
+				return ((InternalEList<?>)getDataUsed()).basicRemove(otherEnd, msgs);
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TRIGGERS_ON:
+				return ((InternalEList<?>)getTriggersOn()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TAGS:
+				return getTags();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__ID:
+				return getId();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__NAME:
+				return getName();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DATA_USED:
+				return getDataUsed();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TRIGGERS_ON:
+				return getTriggersOn();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE:
+				return getDelegate();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME:
+				return getDelegateQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__ID:
+				setId((String)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__NAME:
+				setName((String)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DATA_USED:
+				getDataUsed().clear();
+				getDataUsed().addAll((Collection<? extends YBinding>)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TRIGGERS_ON:
+				getTriggersOn().clear();
+				getTriggersOn().addAll((Collection<? extends YBinding>)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE:
+				setDelegate((Class<?>)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME:
+				setDelegateQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TAGS:
+				getTags().clear();
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__PROPERTIES:
+				getProperties().clear();
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DATA_USED:
+				getDataUsed().clear();
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TRIGGERS_ON:
+				getTriggersOn().clear();
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE:
+				setDelegate((Class<?>)null);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME:
+				setDelegateQualifiedName(DELEGATE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TAGS:
+				return tags != null && !tags.isEmpty();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DATA_USED:
+				return dataUsed != null && !dataUsed.isEmpty();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__TRIGGERS_ON:
+				return triggersOn != null && !triggersOn.isEmpty();
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE:
+				return delegate != null;
+			case VisibilityPackage.YVISIBILITY_PROCESSOR__DELEGATE_QUALIFIED_NAME:
+				return DELEGATE_QUALIFIED_NAME_EDEFAULT == null ? delegateQualifiedName != null : !DELEGATE_QUALIFIED_NAME_EDEFAULT.equals(delegateQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", delegate: ");
+		result.append(delegate);
+		result.append(", delegateQualifiedName: ");
+		result.append(delegateQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YVisibilityProcessorImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/YVisibilityPropertiesImpl.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/YVisibilityPropertiesImpl.java
new file mode 100644
index 0000000..35d7bba
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/impl/YVisibilityPropertiesImpl.java
@@ -0,0 +1,1076 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YColor;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YVisibility Properties</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#isVisible <em>Visible</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#isEditable <em>Editable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#isEnabled <em>Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#isBorder <em>Border</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#isBold <em>Bold</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#isItalic <em>Italic</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#isStrikethrough <em>Strikethrough</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#isUnderline <em>Underline</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getBackgroundColor <em>Background Color</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getForegroundColor <em>Foreground Color</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getBackgroundColorCode <em>Background Color Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getForegroundColorCode <em>Foreground Color Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getCssClass <em>Css Class</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.common.model.visibility.impl.YVisibilityPropertiesImpl#getCssId <em>Css Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YVisibilityPropertiesImpl extends MinimalEObjectImpl.Container implements YVisibilityProperties {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #isVisible() <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VISIBLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isVisible() <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean visible = VISIBLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEditable() <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EDITABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isEditable() <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean editable = EDITABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ENABLED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean enabled = ENABLED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isBorder() <em>Border</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBorder()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean BORDER_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isBorder() <em>Border</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBorder()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean border = BORDER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isBold() <em>Bold</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBold()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean BOLD_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isBold() <em>Bold</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBold()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean bold = BOLD_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isItalic() <em>Italic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isItalic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ITALIC_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isItalic() <em>Italic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isItalic()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean italic = ITALIC_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isStrikethrough() <em>Strikethrough</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStrikethrough()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean STRIKETHROUGH_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isStrikethrough() <em>Strikethrough</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStrikethrough()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean strikethrough = STRIKETHROUGH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isUnderline() <em>Underline</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUnderline()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean UNDERLINE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUnderline() <em>Underline</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUnderline()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean underline = UNDERLINE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getBackgroundColor() <em>Background Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBackgroundColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YColor BACKGROUND_COLOR_EDEFAULT = YColor.UNDEFINED;
+
+	/**
+	 * The cached value of the '{@link #getBackgroundColor() <em>Background Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBackgroundColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected YColor backgroundColor = BACKGROUND_COLOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getForegroundColor() <em>Foreground Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getForegroundColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YColor FOREGROUND_COLOR_EDEFAULT = YColor.UNDEFINED;
+
+	/**
+	 * The cached value of the '{@link #getForegroundColor() <em>Foreground Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getForegroundColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected YColor foregroundColor = FOREGROUND_COLOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getBackgroundColorCode() <em>Background Color Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBackgroundColorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String BACKGROUND_COLOR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getBackgroundColorCode() <em>Background Color Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBackgroundColorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String backgroundColorCode = BACKGROUND_COLOR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getForegroundColorCode() <em>Foreground Color Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getForegroundColorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FOREGROUND_COLOR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getForegroundColorCode() <em>Foreground Color Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getForegroundColorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String foregroundColorCode = FOREGROUND_COLOR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_CLASS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssClass = CSS_CLASS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCssId() <em>Css Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCssId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCssId() <em>Css Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCssId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssId = CSS_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YVisibilityPropertiesImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return VisibilityPackage.Literals.YVISIBILITY_PROPERTIES;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, VisibilityPackage.YVISIBILITY_PROPERTIES__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, VisibilityPackage.YVISIBILITY_PROPERTIES__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isVisible() {
+		return visible;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setVisible(boolean newVisible) {
+		boolean oldVisible = visible;
+		visible = newVisible;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__VISIBLE, oldVisible, visible));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEditable() {
+		return editable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEditable(boolean newEditable) {
+		boolean oldEditable = editable;
+		editable = newEditable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__EDITABLE, oldEditable, editable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEnabled(boolean newEnabled) {
+		boolean oldEnabled = enabled;
+		enabled = newEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__ENABLED, oldEnabled, enabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isBorder() {
+		return border;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBorder(boolean newBorder) {
+		boolean oldBorder = border;
+		border = newBorder;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__BORDER, oldBorder, border));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isBold() {
+		return bold;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBold(boolean newBold) {
+		boolean oldBold = bold;
+		bold = newBold;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__BOLD, oldBold, bold));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isItalic() {
+		return italic;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setItalic(boolean newItalic) {
+		boolean oldItalic = italic;
+		italic = newItalic;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__ITALIC, oldItalic, italic));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isStrikethrough() {
+		return strikethrough;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStrikethrough(boolean newStrikethrough) {
+		boolean oldStrikethrough = strikethrough;
+		strikethrough = newStrikethrough;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__STRIKETHROUGH, oldStrikethrough, strikethrough));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isUnderline() {
+		return underline;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUnderline(boolean newUnderline) {
+		boolean oldUnderline = underline;
+		underline = newUnderline;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__UNDERLINE, oldUnderline, underline));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YColor getBackgroundColor() {
+		return backgroundColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBackgroundColor(YColor newBackgroundColor) {
+		YColor oldBackgroundColor = backgroundColor;
+		backgroundColor = newBackgroundColor == null ? BACKGROUND_COLOR_EDEFAULT : newBackgroundColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR, oldBackgroundColor, backgroundColor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YColor getForegroundColor() {
+		return foregroundColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setForegroundColor(YColor newForegroundColor) {
+		YColor oldForegroundColor = foregroundColor;
+		foregroundColor = newForegroundColor == null ? FOREGROUND_COLOR_EDEFAULT : newForegroundColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR, oldForegroundColor, foregroundColor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getBackgroundColorCode() {
+		return backgroundColorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBackgroundColorCode(String newBackgroundColorCode) {
+		String oldBackgroundColorCode = backgroundColorCode;
+		backgroundColorCode = newBackgroundColorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE, oldBackgroundColorCode, backgroundColorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getForegroundColorCode() {
+		return foregroundColorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setForegroundColorCode(String newForegroundColorCode) {
+		String oldForegroundColorCode = foregroundColorCode;
+		foregroundColorCode = newForegroundColorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE, oldForegroundColorCode, foregroundColorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCssClass() {
+		return cssClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCssClass(String newCssClass) {
+		String oldCssClass = cssClass;
+		cssClass = newCssClass;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_CLASS, oldCssClass, cssClass));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCssId() {
+		return cssId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCssId(String newCssId) {
+		String oldCssId = cssId;
+		cssId = newCssId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_ID, oldCssId, cssId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__TAGS:
+				return getTags();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ID:
+				return getId();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__NAME:
+				return getName();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__VISIBLE:
+				return isVisible();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__EDITABLE:
+				return isEditable();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ENABLED:
+				return isEnabled();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BORDER:
+				return isBorder();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BOLD:
+				return isBold();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ITALIC:
+				return isItalic();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__STRIKETHROUGH:
+				return isStrikethrough();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__UNDERLINE:
+				return isUnderline();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR:
+				return getBackgroundColor();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR:
+				return getForegroundColor();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE:
+				return getBackgroundColorCode();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE:
+				return getForegroundColorCode();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_CLASS:
+				return getCssClass();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_ID:
+				return getCssId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ID:
+				setId((String)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__NAME:
+				setName((String)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__VISIBLE:
+				setVisible((Boolean)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__EDITABLE:
+				setEditable((Boolean)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ENABLED:
+				setEnabled((Boolean)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BORDER:
+				setBorder((Boolean)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BOLD:
+				setBold((Boolean)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ITALIC:
+				setItalic((Boolean)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__STRIKETHROUGH:
+				setStrikethrough((Boolean)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__UNDERLINE:
+				setUnderline((Boolean)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR:
+				setBackgroundColor((YColor)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR:
+				setForegroundColor((YColor)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE:
+				setBackgroundColorCode((String)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE:
+				setForegroundColorCode((String)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_CLASS:
+				setCssClass((String)newValue);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_ID:
+				setCssId((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__TAGS:
+				getTags().clear();
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__PROPERTIES:
+				getProperties().clear();
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__VISIBLE:
+				setVisible(VISIBLE_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__EDITABLE:
+				setEditable(EDITABLE_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ENABLED:
+				setEnabled(ENABLED_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BORDER:
+				setBorder(BORDER_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BOLD:
+				setBold(BOLD_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ITALIC:
+				setItalic(ITALIC_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__STRIKETHROUGH:
+				setStrikethrough(STRIKETHROUGH_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__UNDERLINE:
+				setUnderline(UNDERLINE_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR:
+				setBackgroundColor(BACKGROUND_COLOR_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR:
+				setForegroundColor(FOREGROUND_COLOR_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE:
+				setBackgroundColorCode(BACKGROUND_COLOR_CODE_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE:
+				setForegroundColorCode(FOREGROUND_COLOR_CODE_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_CLASS:
+				setCssClass(CSS_CLASS_EDEFAULT);
+				return;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_ID:
+				setCssId(CSS_ID_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__TAGS:
+				return tags != null && !tags.isEmpty();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__VISIBLE:
+				return visible != VISIBLE_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__EDITABLE:
+				return editable != EDITABLE_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ENABLED:
+				return enabled != ENABLED_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BORDER:
+				return border != BORDER_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BOLD:
+				return bold != BOLD_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__ITALIC:
+				return italic != ITALIC_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__STRIKETHROUGH:
+				return strikethrough != STRIKETHROUGH_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__UNDERLINE:
+				return underline != UNDERLINE_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR:
+				return backgroundColor != BACKGROUND_COLOR_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR:
+				return foregroundColor != FOREGROUND_COLOR_EDEFAULT;
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__BACKGROUND_COLOR_CODE:
+				return BACKGROUND_COLOR_CODE_EDEFAULT == null ? backgroundColorCode != null : !BACKGROUND_COLOR_CODE_EDEFAULT.equals(backgroundColorCode);
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__FOREGROUND_COLOR_CODE:
+				return FOREGROUND_COLOR_CODE_EDEFAULT == null ? foregroundColorCode != null : !FOREGROUND_COLOR_CODE_EDEFAULT.equals(foregroundColorCode);
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_CLASS:
+				return CSS_CLASS_EDEFAULT == null ? cssClass != null : !CSS_CLASS_EDEFAULT.equals(cssClass);
+			case VisibilityPackage.YVISIBILITY_PROPERTIES__CSS_ID:
+				return CSS_ID_EDEFAULT == null ? cssId != null : !CSS_ID_EDEFAULT.equals(cssId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", visible: ");
+		result.append(visible);
+		result.append(", editable: ");
+		result.append(editable);
+		result.append(", enabled: ");
+		result.append(enabled);
+		result.append(", border: ");
+		result.append(border);
+		result.append(", bold: ");
+		result.append(bold);
+		result.append(", italic: ");
+		result.append(italic);
+		result.append(", strikethrough: ");
+		result.append(strikethrough);
+		result.append(", underline: ");
+		result.append(underline);
+		result.append(", backgroundColor: ");
+		result.append(backgroundColor);
+		result.append(", foregroundColor: ");
+		result.append(foregroundColor);
+		result.append(", backgroundColorCode: ");
+		result.append(backgroundColorCode);
+		result.append(", foregroundColorCode: ");
+		result.append(foregroundColorCode);
+		result.append(", cssClass: ");
+		result.append(cssClass);
+		result.append(", cssId: ");
+		result.append(cssId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YVisibilityPropertiesImpl
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/util/VisibilityAdapterFactory.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/util/VisibilityAdapterFactory.java
new file mode 100644
index 0000000..6e315b5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/util/VisibilityAdapterFactory.java
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage
+ * @generated
+ */
+public class VisibilityAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static VisibilityPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VisibilityAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = VisibilityPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VisibilitySwitch<Adapter> modelSwitch =
+		new VisibilitySwitch<Adapter>() {
+			@Override
+			public Adapter caseYVisibilityProcessor(YVisibilityProcessor object) {
+				return createYVisibilityProcessorAdapter();
+			}
+			@Override
+			public Adapter caseYVisibilityProperties(YVisibilityProperties object) {
+				return createYVisibilityPropertiesAdapter();
+			}
+			@Override
+			public Adapter caseYTaggable(YTaggable object) {
+				return createYTaggableAdapter();
+			}
+			@Override
+			public Adapter caseYElement(YElement object) {
+				return createYElementAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor <em>YVisibility Processor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor
+	 * @generated
+	 */
+	public Adapter createYVisibilityProcessorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties <em>YVisibility Properties</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties
+	 * @generated
+	 */
+	public Adapter createYVisibilityPropertiesAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+	 * @generated
+	 */
+	public Adapter createYTaggableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+	 * @generated
+	 */
+	public Adapter createYElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //VisibilityAdapterFactory
diff --git a/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/util/VisibilitySwitch.java b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/util/VisibilitySwitch.java
new file mode 100644
index 0000000..7ae8a2d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/src/org/eclipse/osbp/ecview/core/common/model/visibility/util/VisibilitySwitch.java
@@ -0,0 +1,175 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.model.visibility.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
+import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProperties;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage
+ * @generated
+ */
+public class VisibilitySwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static VisibilityPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VisibilitySwitch() {
+		if (modelPackage == null) {
+			modelPackage = VisibilityPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case VisibilityPackage.YVISIBILITY_PROCESSOR: {
+				YVisibilityProcessor yVisibilityProcessor = (YVisibilityProcessor)theEObject;
+				T result = caseYVisibilityProcessor(yVisibilityProcessor);
+				if (result == null) result = caseYElement(yVisibilityProcessor);
+				if (result == null) result = caseYTaggable(yVisibilityProcessor);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case VisibilityPackage.YVISIBILITY_PROPERTIES: {
+				YVisibilityProperties yVisibilityProperties = (YVisibilityProperties)theEObject;
+				T result = caseYVisibilityProperties(yVisibilityProperties);
+				if (result == null) result = caseYElement(yVisibilityProperties);
+				if (result == null) result = caseYTaggable(yVisibilityProperties);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YVisibility Processor</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YVisibility Processor</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYVisibilityProcessor(YVisibilityProcessor object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YVisibility Properties</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YVisibility Properties</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYVisibilityProperties(YVisibilityProperties object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTaggable(YTaggable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYElement(YElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //VisibilitySwitch
diff --git a/org.eclipse.osbp.ecview.core.common.model/text/description.txt b/org.eclipse.osbp.ecview.core.common.model/text/description.txt
new file mode 100644
index 0000000..1f14815
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.model/text/description.txt
@@ -0,0 +1,385 @@
+Model ECViewCore
+
+This model description is not a real EMF artifact. It was generated by the
+org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's
+code generator can be extended.
+This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+
+Contains packages:
+  binding <http://lunifera.org/ecview/v1/core/binding>
+  core <http://lunifera.org/ecview/v1/core/view>
+  validation <http://lunifera.org/ecview/v1/core/validation>
+  datatypes <http://lunifera.org/ecview/v1/core/datatypes>
+  visibility <http://lunifera.org/ecview/v1/core/visibility>
+
+Package binding <http://lunifera.org/ecview/v1/core/binding>
+
+  Class YBindingSet -> YElement
+    Reference bindings : YBinding<<0..*>>
+    Operation addBinding(YValueBindingEndpoint<<1..1>>, YValueBindingEndpoint<<1..1>>) : YValueBinding
+    Operation addBinding(YListBindingEndpoint<<1..1>>, YListBindingEndpoint<<1..1>>) : YListBinding
+    Operation addBinding(YValueBindingEndpoint<<1..1>>, YValueBindingEndpoint<<1..1>>, YBindingUpdateStrategy<<1..1>>, YBindingUpdateStrategy<<1..1>>) : YValueBinding
+    Operation addBinding(YListBindingEndpoint<<1..1>>, YListBindingEndpoint<<1..1>>, YBindingUpdateStrategy<<1..1>>, YBindingUpdateStrategy<<1..1>>) : YListBinding
+    Operation getView() : YView
+    Operation addBinding(YBinding<<1..1>>) : void
+    Operation removeBinding(YBinding<<1..1>>) : void
+
+  Class YBindingEndpoint -> YElement
+    Operation getBinding() : YBinding
+    Operation isBindsElement(YElement<<1..1>>) : EBoolean
+
+  Class YValueBindingEndpoint -> YBindingEndpoint
+    Operation createDetailValueEndpoint() : YDetailValueBindingEndpoint
+
+  Class YBeanValueBindingEndpoint -> YValueBindingEndpoint
+    Attribute bean : EJavaObject
+    Attribute propertyPath : EString
+
+  Class YDetailValueBindingEndpoint -> YValueBindingEndpoint
+    Reference masterObservable : YValueBindingEndpoint<<1..1>>
+    Reference features : EStructuralFeature<<0..*>>
+    Attribute propertyPath : EString
+    Attribute type : EJavaClass
+
+  Class YListBindingEndpoint -> YBindingEndpoint
+
+  Class YBinding -> YElement
+    Attribute modelToTargetStrategy : YBindingUpdateStrategy
+    Attribute targetToModelStrategy : YBindingUpdateStrategy
+    Operation getBindingSet() : YBindingSet
+    Operation isBindsElement(YElement<<1..1>>) : EBoolean
+    Operation getTargetEndpoint() : YBindingEndpoint
+    Operation getModelEndpoint() : YBindingEndpoint
+
+  Class YValueBinding -> YBinding
+    Reference targetEndpoint : YValueBindingEndpoint<<1..1>>
+    Reference modelEndpoint : YValueBindingEndpoint<<1..1>>
+
+  Class YListBinding -> YBinding
+    Reference targetEndpoint : YListBindingEndpoint<<1..1>>
+    Reference modelEndpoint : YListBindingEndpoint<<1..1>>
+
+  Class YEnumListBindingEndpoint -> YListBindingEndpoint
+    Attribute enum : EJavaClass<<1..1>>
+
+  Class YECViewModelValueBindingEndpoint -> YValueBindingEndpoint
+    Reference element : EObject<<1..1>>
+    Reference features : EStructuralFeature<<0..*>>
+    Attribute propertyPath : EString
+    Attribute type : EJavaClass
+    Attribute typeQualifiedName : EString
+    Attribute emfNsURI : EString
+
+  Class YECViewModelListBindingEndpoint -> YListBindingEndpoint
+    Reference element : EObject<<1..1>>
+    Reference features : EStructuralFeature<<0..*>>
+    Attribute propertyPath : EString
+    Attribute type : EJavaClass
+    Attribute typeQualifiedName : EString
+    Attribute emfNsURI : EString
+
+  Class YVisibilityProcessorValueBindingEndpoint -> YValueBindingEndpoint
+    Attribute processorInstance : EJavaObject
+    Attribute property : EString
+
+  Enum YBindingUpdateStrategy
+    Literal UPDATE = 0
+    Literal ON_REQUEST = 1
+    Literal NEVER = 2
+
+Package core <http://lunifera.org/ecview/v1/core/view>
+
+  Class YElement
+    Attribute id : EString
+    Attribute name : EString
+
+  Class YLayout -> YEmbeddable, YEditable, YEnable
+    Reference elements : YEmbeddable<<0..*>>
+
+  Class YField -> YEmbeddable, YEditable, YEnable
+    Reference validators : YValidator<<0..*>>
+    Reference internalValidators : YValidator<<0..*>>
+    Operation addValueChangeListener(YValueChangeListener) : EBoolean
+    Operation removeValueChangeListener(YValueChangeListener) : EBoolean
+    Operation removeAllValueChangListeners() : void
+
+  Class YView -> YElement, YCssAble, YMarginable
+    Reference root : YViewSet
+    Attribute viewName : EString
+    Reference content : YEmbeddable
+    Reference bindingSet : YBindingSet
+    Reference beanSlots : YBeanSlot<<0..*>>
+    Reference commandSet : YCommandSet
+    Reference dialogs : YDialog<<0..*>>
+    Attribute deviceType : YDeviceType
+    Attribute contentAlignment : YAlignment
+    Reference visibilityProcessors : YVisibilityProcessor<<0..*>>
+    Reference exposedActions : YExposedAction<<0..*>>
+    Attribute sharedStateGroup : EString
+    Operation getOrCreateBindingSet() : YBindingSet
+
+  Class YViewSet -> YElement
+    Reference views : YView<<0..*>>
+    Reference beanSlots : YBeanSlot<<0..*>>
+
+  Class YBeanSlot -> YBindable
+    Attribute name : EString<<1..1>>
+    Attribute valueType : EJavaClass
+    Attribute valueTypeQualifiedName : EString
+    Attribute eventTopic : EString
+    Attribute redirectEvents : EBoolean
+
+  Class YEmbeddable -> YElement, YCssAble, YVisibleable
+    Reference orphanDatatypes : YDatatype<<0..*>>
+    Reference orphanDatadescriptions : YDatadescription<<0..*>>
+    Operation getParent() : YLayout
+    Operation getView() : YView
+
+  Class YDialog -> YElement, YValueBindable, YCssAble
+    Reference content : YEmbeddable
+    Attribute modal : EBoolean
+    Attribute resizeable : EBoolean
+    Attribute draggable : EBoolean
+    Attribute closable : EBoolean
+    Attribute value : EJavaObject
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+    Reference datadescription : YDatadescription
+
+  Class YCssAble
+    Attribute cssClass : EString
+    Attribute cssID : EString
+
+  Class YMarginable
+    Attribute margin : EBoolean
+
+  Class YSpacingable
+    Attribute spacing : EBoolean
+
+  Class YHeightable
+    Attribute height : EInt
+    Attribute heightUnit : YUnit
+
+  Class YWidthable
+    Attribute width : EInt
+    Attribute widthUnit : YUnit
+
+  Class YActivateable -> YBindable
+    Attribute initialActivated : EBoolean
+    Attribute /activated : EBoolean
+
+  Class YVisibleable
+    Attribute initialVisible : EBoolean
+    Attribute /visible : EBoolean
+
+  Class YEditable
+    Attribute initialEditable : EBoolean
+    Attribute /editable : EBoolean
+
+  Class YEnable
+    Attribute initialEnabled : EBoolean
+    Attribute /enabled : EBoolean
+
+  Class YAction -> YEmbeddable, YEnable
+
+  Class YBindable
+
+  Class YValueBindable -> YBindable
+    Reference valueBindingEndpoint : YEmbeddableValueEndpoint
+    Operation createValueEndpoint() : YEmbeddableValueEndpoint
+
+  Class YSelectionBindable -> YBindable
+    Reference selectionBindingEndpoint : YEmbeddableSelectionEndpoint
+    Operation createSelectionEndpoint() : YEmbeddableSelectionEndpoint
+
+  Class YMultiSelectionBindable -> YBindable
+    Reference multiSelectionBindingEndpoint : YEmbeddableMultiSelectionEndpoint
+    Operation createMultiSelectionEndpoint() : YEmbeddableMultiSelectionEndpoint
+
+  Class YCollectionBindable -> YBindable
+    Reference collectionBindingEndpoint : YEmbeddableCollectionEndpoint
+    Operation createCollectionEndpoint() : YEmbeddableCollectionEndpoint
+
+  Class YContextValueBindingEndpoint -> YValueBindingEndpoint
+    Attribute urlString : EString<<1..1>>
+
+  Class YBeanSlotValueBindingEndpoint -> YValueBindingEndpoint
+    Attribute attributePath : EString<<1..1>>
+    Reference beanSlot : YBeanSlot<<1..1>>
+
+  Class YBeanSlotListBindingEndpoint -> YListBindingEndpoint
+    Attribute attributePath : EString<<1..1>>
+    Reference beanSlot : YBeanSlot<<1..1>>
+    Attribute collectionType : EJavaClass
+    Attribute collectionTypeQualifiedName : EString
+
+  Class YEmbeddableBindingEndpoint
+    Operation getElement() : YBindable
+
+  Class YEmbeddableValueEndpoint -> YValueBindingEndpoint, YEmbeddableBindingEndpoint
+    Reference element : YValueBindable<<1..1>>
+
+  Class YEmbeddableSelectionEndpoint -> YValueBindingEndpoint, YEmbeddableBindingEndpoint
+    Reference element : YSelectionBindable<<1..1>>
+    Attribute attributePath : EString
+
+  Class YEmbeddableMultiSelectionEndpoint -> YListBindingEndpoint, YEmbeddableBindingEndpoint
+    Reference element : YMultiSelectionBindable<<1..1>>
+
+  Class YEmbeddableCollectionEndpoint -> YListBindingEndpoint, YEmbeddableBindingEndpoint
+    Reference element : YCollectionBindable<<1..1>>
+
+  Class YActivatedEndpoint -> YValueBindingEndpoint, YEmbeddableBindingEndpoint
+    Reference element : YActivateable<<1..1>>
+
+  Class YDtWrapper -> YDatatype
+
+  Class YCommand -> YElement
+    Operation getView() : YView
+
+  Class YCommandSet -> YElement
+    Reference commands : YCommand<<0..*>>
+    Operation getView() : YView
+    Operation addCommand(YCommand<<1..1>>) : void
+    Operation removeCommand(YCommand<<1..1>>) : void
+
+  Class YOpenDialogCommand -> YCommand
+    Reference dialog : YDialog
+    Attribute trigger : EJavaObject
+    Operation getView() : YView
+    Operation createTriggerDialogEndpoint() : YECViewModelValueBindingEndpoint
+
+  Class YExposedAction -> YElement, YEnable
+    Attribute icon : EString
+    Attribute label : EString
+    Attribute labelI18nKey : EString
+    Attribute externalClickTime : ELong
+    Attribute internalClickTime : ELong
+    Attribute executedNotificationTime : ELong
+    Attribute canceledNotificationTime : ELong
+    Attribute checkDirty : EBoolean
+    Attribute externalCommandId : EString
+    Operation getView() : YView
+
+  Class YSendEventCommand -> YCommand
+    Attribute eventTopic : EString
+    Attribute message : EJavaObject
+    Attribute trigger : EJavaObject
+    Attribute autoTrigger : EBoolean
+    Operation getView() : YView
+    Operation createTriggerEndpoint() : YECViewModelValueBindingEndpoint
+    Operation createMessageEndpoint() : YECViewModelValueBindingEndpoint
+    Operation createAutoTriggerEndpoint() : YECViewModelValueBindingEndpoint
+    Operation createEventTopicEndpoint() : YECViewModelValueBindingEndpoint
+
+  Enum YDeviceType
+    Literal IDE = 0
+    Literal MOBILE = 1
+
+  Enum YAlignment
+    Literal BOTTOM_LEFT = 0
+    Literal BOTTOM_CENTER = 1
+    Literal BOTTOM_RIGHT = 2
+    Literal BOTTOM_FILL = 3
+    Literal MIDDLE_LEFT = 4
+    Literal MIDDLE_CENTER = 5
+    Literal MIDDLE_RIGHT = 6
+    Literal MIDDLE_FILL = 7
+    Literal TOP_LEFT = 8
+    Literal TOP_CENTER = 9
+    Literal TOP_RIGHT = 10
+    Literal TOP_FILL = 11
+    Literal FILL_FILL = 12
+    Literal FILL_LEFT = 13
+    Literal FILL_CENTER = 14
+    Literal FILL_RIGHT = 15
+    Literal UNDEFINED = 16
+
+  Enum YFlatAlignment
+    Literal LEFT = 0
+    Literal CENTER = 1
+    Literal RIGHT = 2
+
+  Enum YUnit
+    Literal Pixel = 0
+    Literal Em = 1
+
+  DataType YURI <java.net.URI>
+
+  DataType YValueChangeListener <org.lunifera.ecview.core.common.model.core.listeners.YValueChangeListener>
+
+Package validation <http://lunifera.org/ecview/v1/core/validation>
+
+  Class YValidator -> YElement, YBindable
+    Attribute type : EJavaClass
+
+  Class YMinLengthValidator -> YValidator, YMinLengthValidationConfig
+
+  Class YMaxLengthValidator -> YValidator, YMaxLengthValidationConfig
+
+  Class YRegexpValidator -> YValidator, YRegexpValidationConfig
+
+  Class YClassDelegateValidator -> YValidator, YClassDelegateValidationConfig
+
+  Class YValidationConfig
+    Attribute errorCode : EString
+    Attribute defaultErrorMessage : EString
+
+  Class YMinLengthValidationConfig -> YValidationConfig
+    Attribute minLength : EInt<<1..1>>
+
+  Class YMaxLengthValidationConfig -> YValidationConfig
+    Attribute maxLength : EInt<<1..1>>
+
+  Class YRegexpValidationConfig -> YValidationConfig
+    Attribute regExpression : EString<<1..1>>
+
+  Class YClassDelegateValidationConfig -> YValidationConfig
+    Attribute className : EString<<1..1>>
+
+Package datatypes <http://lunifera.org/ecview/v1/core/datatypes>
+
+  Class YDtBase -> YElement
+    Attribute description : EString
+
+  Class YDatatype -> YDtBase
+    Reference validators : YValidator<<0..*>>
+
+  Class YDatadescription -> YDtBase
+    Attribute label : EString
+    Attribute labelI18nKey : EString
+
+Package visibility <http://lunifera.org/ecview/v1/core/visibility>
+
+  Class YVisibilityProcessor -> YElement
+    Reference dataUsed : YBinding<<0..*>>
+    Reference triggersOn : YBinding<<0..*>>
+    Attribute delegate : EJavaClass
+    Attribute delegateQualifiedName : EString
+
+  Class YVisibilityProperties -> YElement
+    Attribute visible : EBoolean
+    Attribute editable : EBoolean
+    Attribute enabled : EBoolean
+    Attribute border : EBoolean
+    Attribute bold : EBoolean
+    Attribute italic : EBoolean
+    Attribute strikethrough : EBoolean
+    Attribute underline : EBoolean
+    Attribute backgroundColor : YColor
+    Attribute foregroundColor : YColor
+    Attribute backgroundColorCode : EString
+    Attribute foregroundColorCode : EString
+
+  Enum YColor
+    Literal UNDEFINED = 0
+    Literal GREEN = 1
+    Literal BLUE = 2
+    Literal YELLOW = 3
+    Literal RED = 4
+    Literal BLACK = 5
+    Literal WHITE = 6
+    Literal GRAY = 7
+    Literal LIGHT_GRAY = 8
+    Literal DARK_GRAY = 9
diff --git a/org.eclipse.osbp.ecview.core.common.tests/.checkstyle b/org.eclipse.osbp.ecview.core.common.tests/.checkstyle
new file mode 100644
index 0000000..2f2667a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <fileset name="all" enabled="true" check-config-name="emfstoreStyle" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/org.eclipse.osbp.ecview.core.common.tests/.project b/org.eclipse.osbp.ecview.core.common.tests/.project
new file mode 100644
index 0000000..3b622eb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.common.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.common.tests/LICENSE.txt b/org.eclipse.osbp.ecview.core.common.tests/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.common.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4639e01
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.common.tests
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.common.tests;singleton:=true
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.junit;visibility:=reexport,
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.extension.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.extension.editparts.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.core.databinding.observable,
+ org.eclipse.core.databinding.beans;bundle-version="1.2.200",
+ org.eclipse.core.databinding;bundle-version="1.4.1",
+ org.eclipse.osbp.ecview.core.databinding.beans;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.databinding.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.util.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common.editparts.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.extension.editparts;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.equinox.ds;bundle-version="1.4.200"
+Bundle-Activator: org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.Activator
+Import-Package: org.slf4j;version="1.6.4"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osbp.ecview.core.common.tests/build.properties b/org.eclipse.osbp.ecview.core.common.tests/build.properties
new file mode 100644
index 0000000..a4ddec3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+bin.includes = META-INF/,\
+               .
+output.. = target/classes
diff --git a/org.eclipse.osbp.ecview.core.common.tests/epl-v10.html b/org.eclipse.osbp.ecview.core.common.tests/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?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 ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" 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>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"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.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" 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
+("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.</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 "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.</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/org.eclipse.osbp.ecview.core.common.tests/license.html b/org.eclipse.osbp.ecview.core.common.tests/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.tests/pom.xml b/org.eclipse.osbp.ecview.core.common.tests/pom.xml
new file mode 100644
index 0000000..f1b8df0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/pom.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>org.eclipse.osbp.ecview.core.common.tests</artifactId>
+	<description>Tests for the common core issues</description>
+	<parent>
+		<groupId>org.eclipse.osbp.ecview.core</groupId>
+		<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+	</parent>
+	<packaging>eclipse-test-plugin</packaging>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<configuration>
+					<includes>
+						<include>**/*Test.class</include>
+					</includes>
+					<failIfNoTests>false</failIfNoTests>
+					<showEclipseLog>true</showEclipseLog>
+					<!-- <argLine>${ui.test.vmargs}</argLine> -->
+					<bundleStartLevel>
+						<bundle>
+							<id>org.eclipse.osgi</id>
+							<level>-1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.equinox.common</id>
+							<level>1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.equinox.ds</id>
+							<level>2</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.equinox.log</id>
+							<level>1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.osgi.services</id>
+							<level>1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.osbp.ecview.core.common.tests</id>
+							<level>4</level>
+							<autoStart>true</autoStart>
+						</bundle>
+					</bundleStartLevel>
+
+					<dependencies>
+						<!-- Plugins -->
+						<dependency>
+							<type>eclipse-plugin</type>
+							<artifactId>org.eclipse.equinox.ds</artifactId>
+							<version>0.0.0</version>
+						</dependency>
+						<dependency>
+							<type>eclipse-plugin</type>
+							<artifactId>org.eclipse.equinox.util</artifactId>
+							<version>0.0.0</version>
+						</dependency>
+					</dependencies>
+
+					<useUIHarness>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/beans/BeanSlotInitializerAdapterTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/beans/BeanSlotInitializerAdapterTest.java
new file mode 100644
index 0000000..9e97c31
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/beans/BeanSlotInitializerAdapterTest.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.beans;
+
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+
+import org.eclipse.osbp.ecview.core.common.beans.BeanSlotInitializerAdapter;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.presentation.DelegatingPresenterFactory;
+import org.junit.Before;
+import org.junit.Test;
+
+@SuppressWarnings("restriction")
+public class BeanSlotInitializerAdapterTest {
+
+	private DelegatingPresenterFactory presenterFactory = DelegatingPresenterFactory
+			.getInstance();
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+		presenterFactory.clear();
+	}
+
+	/**
+	 * Tests the context.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test() {
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, CoreModelFactory.eINSTANCE.createYView());
+
+		assertNull(context.getBeanSlot("bean1"));
+
+		new BeanSlotInitializerAdapter() {
+			@Override
+			protected void doIntialize() {
+				createBeanSlot("view://bean/bean1", String.class);
+			}
+		}.intialize(context);
+
+		ISlot slot = context.getBeanSlot("bean1");
+		assertSame(String.class, slot.getValueType());
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/Activator.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/Activator.java
new file mode 100644
index 0000000..a28010d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/Activator.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * Activator of the bundle.
+ */
+public class Activator implements BundleActivator {
+
+	private static BundleContext context;
+
+	/**
+	 * Returns the bundle context.
+	 * 
+	 * @return context
+	 */
+	public static BundleContext getContext() {
+		return context;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void start(BundleContext bundleContext) throws Exception {
+		// END SUPRESS CATCH EXCEPTION
+		Activator.context = bundleContext;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void stop(BundleContext bundleContext) throws Exception {
+		// END SUPRESS CATCH EXCEPTION
+		Activator.context = null;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/BundleHelper.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/BundleHelper.java
new file mode 100644
index 0000000..e360d7d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/BundleHelper.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf;
+
+
+public class BundleHelper {
+
+//	public static void ensure() {
+//		BundleContext context = Activator.getContext();
+//
+//		Set<String> required = new HashSet<String>();
+//		required.add("org.eclipse.equinox.common");
+//		required.add("org.eclipse.equinox.ds");
+//		required.add("org.eclipse.equinox.log");
+//		required.add("org.eclipse.equinox.common");
+//		required.add("org.eclipse.equinox.common");
+//		required.add("org.eclipse.equinox.common");
+//		required.add("org.eclipse.equinox.common");
+//		required.add("org.eclipse.equinox.common");
+//	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/EditpartManagerTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/EditpartManagerTest.java
new file mode 100644
index 0000000..6120d21
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/EditpartManagerTest.java
@@ -0,0 +1,355 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpartProvider;
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the editpartManager.
+ */
+@SuppressWarnings("restriction")
+public class EditpartManagerTest {
+
+	private EditpartManager editpartManager = new EditpartManager();
+	private ResourceSetImpl resourceSet;
+	private CoreModelFactory modelFactory = CoreModelFactory.eINSTANCE;
+
+	/**
+	 * Casts element to eObject.
+	 * 
+	 * @param element
+	 * @return
+	 */
+	protected EObject castEObject(Object element) {
+		return (EObject) element;
+	}
+
+	/**
+	 * Setup the test.
+	 */
+	@Before
+	public void setup() {
+		resourceSet = new ResourceSetImpl();
+		resourceSet
+				.getResourceFactoryRegistry()
+				.getExtensionToFactoryMap()
+				.put(Resource.Factory.Registry.DEFAULT_EXTENSION,
+						new XMIResourceFactoryImpl());
+		resourceSet.getPackageRegistry().put(CoreModelPackage.eNS_URI,
+				CoreModelPackage.eINSTANCE);
+
+		DelegatingEditPartManager manager = DelegatingEditPartManager
+				.getInstance();
+		manager.clear();
+		manager.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		manager.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+	}
+
+	/**
+	 * Tests that the editpart manager always returns the same instance on
+	 * calling getInstance().
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getInstance() {
+		// END SUPRESS CATCH EXCEPTION
+		Resource resource = resourceSet.createResource(URI
+				.createURI("http://eclipse.org/emf/emfclient/uimodel"));
+		YViewSet viewSet = modelFactory.createYViewSet();
+		resource.getContents().add(castEObject(viewSet));
+
+		// ...> view1
+		// ......> layout1
+		// ...........> field1
+		// ...> view2
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		resource.getContents().add(castEObject(view1));
+		viewSet.getViews().add(view1);
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		YView view2 = modelFactory.createYView();
+		resource.getContents().add(castEObject(view2));
+		viewSet.getViews().add(view2);
+		YLayout layout2 = modelFactory.createYLayout();
+		view2.setContent(layout2);
+		YField field2 = modelFactory.createYField();
+		layout2.getElements().add(field2);
+
+		IViewContext context = new ViewContext();
+		// access the editparts the editpartManager
+		//
+		// view1
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+		// layout1
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+		// field1
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context,
+				field1);
+		// view 2
+		IViewEditpart view2Editpart = editpartManager.getEditpart(context,
+				view2);
+		// layout2
+		ILayoutEditpart layout2Editpart = editpartManager.getEditpart(context,
+				layout2);
+		// field2
+		IFieldEditpart field2Editpart = editpartManager.getEditpart(context,
+				field2);
+
+		// ensure that the editpartManager also returns the singleton instance
+		//
+		Assert.assertSame(view1Editpart,
+				editpartManager.getEditpart(context, view1));
+		Assert.assertSame(layout1Editpart,
+				editpartManager.getEditpart(context, layout1));
+		Assert.assertSame(field1Editpart,
+				editpartManager.getEditpart(context, field1));
+		Assert.assertSame(view2Editpart,
+				editpartManager.getEditpart(context, view2));
+		Assert.assertSame(layout2Editpart,
+				editpartManager.getEditpart(context, layout2));
+		Assert.assertSame(field2Editpart,
+				editpartManager.getEditpart(context, field2));
+	}
+
+	/**
+	 * Tests that no edit part is created for findEditpart(modelObject).
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_findEditpart() {
+		// END SUPRESS CATCH EXCEPTION
+		Resource resource = resourceSet.createResource(URI
+				.createURI("http://eclipse.org/emf/emfclient/uimodel"));
+		YViewSet viewSet = modelFactory.createYViewSet();
+		resource.getContents().add(castEObject(viewSet));
+
+		// viewSet
+		// ...> view1
+		// ......> layout1
+		// ...........> field1
+		// ...> view2
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		resource.getContents().add(castEObject(view1));
+		viewSet.getViews().add(view1);
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		YView view2 = modelFactory.createYView();
+		resource.getContents().add(castEObject(view2));
+		viewSet.getViews().add(view2);
+		YLayout layout2 = modelFactory.createYLayout();
+		view2.setContent(layout2);
+		YField field2 = modelFactory.createYField();
+		layout2.getElements().add(field2);
+
+		// try to find the editparts from the editpartManager
+		//
+		// viewSet
+		Assert.assertNull(editpartManager.findEditpart(viewSet));
+		// view1
+		Assert.assertNull(editpartManager.findEditpart(view1));
+		// layout1
+		Assert.assertNull(editpartManager.findEditpart(layout1));
+		// field1
+		Assert.assertNull(editpartManager.findEditpart(field1));
+		// view 2
+		Assert.assertNull(editpartManager.findEditpart(view2));
+		// layout2
+		Assert.assertNull(editpartManager.findEditpart(layout2));
+		// field2
+		Assert.assertNull(editpartManager.findEditpart(field2));
+	}
+
+	/**
+	 * Tests that the findEditpart(modelObject) will find the same instance as
+	 * getInstance.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_findEditpart_afterGetEditpart() {
+		// END SUPRESS CATCH EXCEPTION
+		Resource resource = resourceSet.createResource(URI
+				.createURI("http://eclipse.org/emf/emfclient/uimodel"));
+		YViewSet viewSet = modelFactory.createYViewSet();
+		resource.getContents().add(castEObject(viewSet));
+
+		// ...> view1
+		// ......> layout1
+		// ...........> field1
+		// ...> view2
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		resource.getContents().add(castEObject(view1));
+		viewSet.getViews().add(view1);
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		YView view2 = modelFactory.createYView();
+		resource.getContents().add(castEObject(view2));
+		viewSet.getViews().add(view2);
+		YLayout layout2 = modelFactory.createYLayout();
+		view2.setContent(layout2);
+		YField field2 = modelFactory.createYField();
+		layout2.getElements().add(field2);
+
+		IViewContext context = new ViewContext();
+
+		// access the editparts the editpartManager
+		//
+		// view1
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+		// layout1
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+		// field1
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context,
+				field1);
+		// view 2
+		IViewEditpart view2Editpart = editpartManager.getEditpart(context,
+				view2);
+		// layout2
+		ILayoutEditpart layout2Editpart = editpartManager.getEditpart(context,
+				layout2);
+		// field2
+		IFieldEditpart field2Editpart = editpartManager.getEditpart(context,
+				field2);
+
+		// ensure that the editpartManager also finds the singleton instance
+		//
+		Assert.assertSame(view1Editpart, editpartManager.findEditpart(view1));
+		Assert.assertSame(layout1Editpart,
+				editpartManager.findEditpart(layout1));
+		Assert.assertSame(field1Editpart, editpartManager.findEditpart(field1));
+		Assert.assertSame(view2Editpart, editpartManager.findEditpart(view2));
+		Assert.assertSame(layout2Editpart,
+				editpartManager.findEditpart(layout2));
+		Assert.assertSame(field2Editpart, editpartManager.findEditpart(field2));
+	}
+
+	/**
+	 * Tests that no ADDITIONAL {@link IElementEditpartProvider} is registered
+	 * on the model object for calling getEditpart(context,modelObject). Just
+	 * one for the first create.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getInstance_justOneAdapterInstanceRegistered() {
+		// END SUPRESS CATCH EXCEPTION
+		Resource resource = resourceSet.createResource(URI
+				.createURI("http://eclipse.org/emf/emfclient/uimodel"));
+
+		// viewSet
+		// ...> view1
+		// ......> layout1
+		// ...........> field1
+		// ...> view2
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		resource.getContents().add(castEObject(view1));
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		YView view2 = modelFactory.createYView();
+		resource.getContents().add(castEObject(view2));
+		YLayout layout2 = modelFactory.createYLayout();
+		view2.setContent(layout2);
+		YField field2 = modelFactory.createYField();
+		layout2.getElements().add(field2);
+
+		ViewContext context = new ViewContext();
+
+		// access the editparts the editpartManager
+		//
+		// view1
+		editpartManager.getEditpart(context, view1);
+		editpartManager.getEditpart(context, view1);
+		editpartManager.findEditpart(view1);
+		assertIUiElementEditpartProviderCount(1, view1);
+		// layout1
+		editpartManager.getEditpart(context, layout1);
+		assertIUiElementEditpartProviderCount(1, layout1);
+		// field1
+		editpartManager.getEditpart(context, field1);
+		editpartManager.getEditpart(context, field1);
+		editpartManager.getEditpart(context, field1);
+		editpartManager.getEditpart(context, field1);
+		assertIUiElementEditpartProviderCount(1, field1);
+		// view 2
+		editpartManager.getEditpart(context, view2);
+		assertIUiElementEditpartProviderCount(1, view2);
+		// layout2
+		editpartManager.getEditpart(context, layout2);
+		editpartManager.getEditpart(context, layout2);
+		assertIUiElementEditpartProviderCount(1, layout2);
+		// field2
+		editpartManager.getEditpart(context, field2);
+		assertIUiElementEditpartProviderCount(1, field2);
+	}
+
+	/**
+	 * Asserts that the number of added editpartProvider adapter equals the
+	 * given one.
+	 * 
+	 * @param expectedCount
+	 * @param eObject
+	 */
+	private void assertIUiElementEditpartProviderCount(int expectedCount,
+			Object object) {
+		int count = 0;
+		for (Adapter adapter : castEObject(object).eAdapters()) {
+			if (adapter instanceof IElementEditpartProvider) {
+				count++;
+			}
+		}
+
+		Assert.assertEquals(expectedCount, count);
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/EditpartsTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/EditpartsTest.java
new file mode 100644
index 0000000..990e690
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/EditpartsTest.java
@@ -0,0 +1,832 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf;
+
+import static org.junit.Assert.assertSame;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.Future;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.context.ContextException;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IExposedActionEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.YViewSet;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityManager;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the common editparts issues.
+ */
+@SuppressWarnings("restriction")
+public class EditpartsTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private ResourceSetImpl resourceSet;
+	private CoreModelFactory modelFactory = CoreModelFactory.eINSTANCE;
+
+	/**
+	 * Casts element to EObject.
+	 * 
+	 * @param element
+	 * @return
+	 */
+	protected EObject castEObject(Object element) {
+		return (EObject) element;
+	}
+
+	/**
+	 * Setup the test.
+	 */
+	@Before
+	public void setup() {
+		resourceSet = new ResourceSetImpl();
+		resourceSet
+				.getResourceFactoryRegistry()
+				.getExtensionToFactoryMap()
+				.put(Resource.Factory.Registry.DEFAULT_EXTENSION,
+						new XMIResourceFactoryImpl());
+		resourceSet.getPackageRegistry().put(CoreModelPackage.eNS_URI,
+				CoreModelPackage.eINSTANCE);
+
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+	}
+
+	/**
+	 * Tests that only one editpart instance is created for one model instance.<br>
+	 * Note that the editpartManager.getEditpart(context, ) was used.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_SingletonEdipartPerEObjectInstance__FirstAccessByParentEditpart() {
+		// END SUPRESS CATCH EXCEPTION
+		Resource resource = resourceSet.createResource(URI
+				.createURI(CoreModelPackage.eNS_URI));
+		YViewSet viewSet = modelFactory.createYViewSet();
+		resource.getContents().add(castEObject(viewSet));
+
+		// viewSet
+		// ...> view1
+		// ......> layout1
+		// ...........> field1
+		// ...> view2
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		viewSet.getViews().add(view1);
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		YView view2 = modelFactory.createYView();
+		viewSet.getViews().add(view2);
+		YLayout layout2 = modelFactory.createYLayout();
+		view2.setContent(layout2);
+		YField field2 = modelFactory.createYField();
+		layout2.getElements().add(field2);
+
+		IViewContext context = new ViewContext();
+		// access the editparts from their parents
+		//
+		// view1
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+		// layout1
+		ILayoutEditpart layout1Editpart = (ILayoutEditpart) view1Editpart
+				.getContent();
+		// field1
+		IFieldEditpart field1Editpart = (IFieldEditpart) layout1Editpart
+				.getElements().get(0);
+		// view 2
+		IViewEditpart view2Editpart = editpartManager.getEditpart(context,
+				view2);
+		// layout2
+		ILayoutEditpart layout2Editpart = (ILayoutEditpart) view2Editpart
+				.getContent();
+		// field2
+		IFieldEditpart field2Editpart = (IFieldEditpart) layout2Editpart
+				.getElements().get(0);
+
+		// ensure that the eObject of the edit part is the same
+		// as the eObject from the ui model
+		//
+		Assert.assertSame(view1, view1Editpart.getModel());
+		Assert.assertSame(layout1, layout1Editpart.getModel());
+		Assert.assertSame(field1, field1Editpart.getModel());
+		Assert.assertSame(view2, view2Editpart.getModel());
+		Assert.assertSame(layout2, layout2Editpart.getModel());
+		Assert.assertSame(field2, field2Editpart.getModel());
+
+		// ensure that the editpart can be accessed by its model element
+		//
+		Assert.assertSame(view1Editpart, ElementEditpart.findEditPartFor(view1));
+		Assert.assertSame(layout1Editpart,
+				ElementEditpart.findEditPartFor(layout1));
+		Assert.assertSame(field1Editpart,
+				ElementEditpart.findEditPartFor(field1));
+		Assert.assertSame(view2Editpart, ElementEditpart.findEditPartFor(view2));
+		Assert.assertSame(layout2Editpart,
+				ElementEditpart.findEditPartFor(layout2));
+		Assert.assertSame(field2Editpart,
+				ElementEditpart.findEditPartFor(field2));
+
+		// ensure that the editpartManager also returns the singleton instance
+		//
+		Assert.assertSame(view1Editpart,
+				editpartManager.getEditpart(context, view1));
+		Assert.assertSame(layout1Editpart,
+				editpartManager.getEditpart(context, layout1));
+		Assert.assertSame(field1Editpart,
+				editpartManager.getEditpart(context, field1));
+		Assert.assertSame(view2Editpart,
+				editpartManager.getEditpart(context, view2));
+		Assert.assertSame(layout2Editpart,
+				editpartManager.getEditpart(context, layout2));
+		Assert.assertSame(field2Editpart,
+				editpartManager.getEditpart(context, field2));
+	}
+
+	/**
+	 * Tests that only one editpart instance is created for one model instance.<br>
+	 * It's the same as {@link #test_SingletonEdipartPerEObjectInstance()} but
+	 * the editpartManager.getEditpart(context, object) first accesses the
+	 * editpart. Afterwards it is determined by the edit parts parent.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_SingletonEdipartPerEObjectInstance__FirstAccessByEditpartManager() {
+		// END SUPRESS CATCH EXCEPTION
+		Resource resource = resourceSet.createResource(URI
+				.createURI(CoreModelPackage.eNS_URI));
+		YViewSet viewSet = modelFactory.createYViewSet();
+		resource.getContents().add(castEObject(viewSet));
+
+		// ...> view1
+		// ......> layout1
+		// ...........> field1
+		// ...> view2
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		viewSet.getViews().add(view1);
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		YView view2 = modelFactory.createYView();
+		viewSet.getViews().add(view2);
+		YLayout layout2 = modelFactory.createYLayout();
+		view2.setContent(layout2);
+		YField field2 = modelFactory.createYField();
+		layout2.getElements().add(field2);
+
+		ViewContext context = new ViewContext();
+
+		// access the editparts the editpartManager
+		//
+		// view1
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+		// layout1
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+		// field1
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context,
+				field1);
+		// view 2
+		IViewEditpart view2Editpart = editpartManager.getEditpart(context,
+				view2);
+		// layout2
+		ILayoutEditpart layout2Editpart = editpartManager.getEditpart(context,
+				layout2);
+		// field2
+		IFieldEditpart field2Editpart = editpartManager.getEditpart(context,
+				field2);
+
+		// ensure that the eObject of the edit part is the same
+		// as the eObject from the ui model
+		//
+		Assert.assertSame(view1, view1Editpart.getModel());
+		Assert.assertSame(layout1, layout1Editpart.getModel());
+		Assert.assertSame(field1, field1Editpart.getModel());
+		Assert.assertSame(view2, view2Editpart.getModel());
+		Assert.assertSame(layout2, layout2Editpart.getModel());
+		Assert.assertSame(field2, field2Editpart.getModel());
+
+		// ensure that the editpart can be accessed by its model element
+		//
+		Assert.assertSame(view1Editpart, ElementEditpart.findEditPartFor(view1));
+		Assert.assertSame(layout1Editpart,
+				ElementEditpart.findEditPartFor(layout1));
+		Assert.assertSame(field1Editpart,
+				ElementEditpart.findEditPartFor(field1));
+		Assert.assertSame(view2Editpart, ElementEditpart.findEditPartFor(view2));
+		Assert.assertSame(layout2Editpart,
+				ElementEditpart.findEditPartFor(layout2));
+		Assert.assertSame(field2Editpart,
+				ElementEditpart.findEditPartFor(field2));
+
+		// ensure that the editpart parents also returns the singleton instance
+		//
+		Assert.assertSame(view1Editpart,
+				editpartManager.getEditpart(context, view1));
+		Assert.assertSame(layout1Editpart, view1Editpart.getContent());
+		Assert.assertSame(field1Editpart, layout1Editpart.getElements().get(0));
+		Assert.assertSame(view2Editpart,
+				editpartManager.getEditpart(context, view2));
+		Assert.assertSame(layout2Editpart, view2Editpart.getContent());
+		Assert.assertSame(field2Editpart, layout2Editpart.getElements().get(0));
+	}
+
+	/**
+	 * Test the getParent method by emf model.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getParent_WithEMFModel() {
+		// END SUPRESS CATCH EXCEPTION
+
+		// ...> view1
+		// ......> layout1
+		// ...........> field1
+		// ...> view2
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		YView view2 = modelFactory.createYView();
+		YLayout layout2 = modelFactory.createYLayout();
+		view2.setContent(layout2);
+		YField field2 = modelFactory.createYField();
+		layout2.getElements().add(field2);
+
+		// access the editparts from their parents
+		//
+
+		ViewContext context_1 = new ViewContext();
+		ViewContext context_2 = new ViewContext();
+		
+		// view1
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context_1,
+				view1);
+		// layout1
+		ILayoutEditpart layout1Editpart = (ILayoutEditpart) view1Editpart
+				.getContent();
+		// field1
+		IFieldEditpart field1Editpart = (IFieldEditpart) layout1Editpart
+				.getElements().get(0);
+		// view 2
+		IViewEditpart view2Editpart = editpartManager.getEditpart(context_2,
+				view2);
+		// layout2
+		ILayoutEditpart layout2Editpart = (ILayoutEditpart) view2Editpart
+				.getContent();
+		// field2
+		IFieldEditpart field2Editpart = (IFieldEditpart) layout2Editpart
+				.getElements().get(0);
+
+		// ensure that the eObject of the edit part is the same
+		// as the eObject from the ui model
+		//
+		Assert.assertSame(view1Editpart, layout1Editpart.getParent());
+		Assert.assertSame(layout1Editpart, field1Editpart.getParent());
+		Assert.assertSame(view2Editpart, layout2Editpart.getParent());
+		Assert.assertSame(layout2Editpart, field2Editpart.getParent());
+
+		// check the parents of the emf model
+		//
+		// TODO check this - view is not a layout!
+		Assert.assertNull(layout1.getParent());
+		Assert.assertSame(layout1, field1.getParent());
+		Assert.assertNull(layout2.getParent());
+		Assert.assertSame(layout2, field2.getParent());
+	}
+
+	// BEGIN SUPRESS CATCH EXCEPTION
+	@Test
+	public void test_getView_WithEMFModel() {
+		// END SUPRESS CATCH EXCEPTION
+
+		// ...> view1
+		// ......> layout1
+		// ...........> field1
+		// ...> view2
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		YView view2 = modelFactory.createYView();
+		YLayout layout2 = modelFactory.createYLayout();
+		view2.setContent(layout2);
+		YField field2 = modelFactory.createYField();
+		layout2.getElements().add(field2);
+
+		ViewContext context_1 = new ViewContext();
+		ViewContext context_2 = new ViewContext();
+
+		// access the editparts from their parents
+		//
+		// view1
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context_1,
+				view1);
+		// layout1
+		ILayoutEditpart layout1Editpart = (ILayoutEditpart) view1Editpart
+				.getContent();
+		// field1
+		IFieldEditpart field1Editpart = (IFieldEditpart) layout1Editpart
+				.getElements().get(0);
+		// view 2
+		IViewEditpart view2Editpart = editpartManager.getEditpart(context_2,
+				view2);
+		// layout2
+		ILayoutEditpart layout2Editpart = (ILayoutEditpart) view2Editpart
+				.getContent();
+		// field2
+		IFieldEditpart field2Editpart = (IFieldEditpart) layout2Editpart
+				.getElements().get(0);
+
+		// checks that all the edit parts are returning the proper view
+		//
+		Assert.assertSame(view1Editpart, layout1Editpart.getView());
+		Assert.assertSame(view1Editpart, field1Editpart.getView());
+		Assert.assertSame(view2Editpart, layout2Editpart.getView());
+		Assert.assertSame(view2Editpart, field2Editpart.getView());
+
+		// checks that all the model elements are returning the proper view
+		//
+		Assert.assertSame(view1, layout1.getView());
+		Assert.assertSame(view1, field1.getView());
+		Assert.assertSame(view2, layout2.getView());
+		Assert.assertSame(view2, field2.getView());
+	}
+
+	/**
+	 * Tests that only one editpart instance is created for one model instance.<br>
+	 * It's the same as {@link #test_SingletonEdipartPerEObjectInstance()} but
+	 * the editpartManager.getEditpart(context, object) first accesses the
+	 * editpart. Afterwards it is determined by the edit parts parent.
+	 */
+	// BEGIN SUPRESS CATCH EXCEPTION
+	@Test
+	public void test_ExtensionModel() {
+		// END SUPRESS CATCH EXCEPTION
+		YTextField textField = ExtensionModelFactory.eINSTANCE
+				.createYTextField();
+
+		ViewContext context = new ViewContext();
+
+		// access the editparts the editpartManager
+		//
+		// viewSet
+		IEmbeddableEditpart textEditPart = editpartManager.getEditpart(context,
+				textField);
+
+		// ensure that the eObject of the edit part is the same
+		// as the eObject from the ui model
+		//
+		Assert.assertSame(textField, textEditPart.getModel());
+
+		// ensure that the editpart can be accessed by its model element
+		//
+		Assert.assertSame(textEditPart,
+				ElementEditpart.findEditPartFor(textField));
+
+		// ensure that the editpart parents also returns the singleton instance
+		//
+		Assert.assertSame(textEditPart,
+				editpartManager.getEditpart(context, textField));
+	}
+
+	// BEGIN SUPRESS CATCH EXCEPTION
+	@Test
+	public void test_ID() {
+		// END SUPRESS CATCH EXCEPTION
+		// Start with an empty id and let the edit part create one
+		//
+
+		ViewContext context = new ViewContext();
+
+		final YLayout yLayout = modelFactory.createYLayout();
+		Assert.assertNull(yLayout.getId());
+		final ILayoutEditpart layoutEditPart = editpartManager.getEditpart(
+				context, yLayout);
+		Assert.assertEquals(yLayout.getId(), layoutEditPart.getId());
+		Assert.assertNotNull(yLayout.getId());
+
+		try {
+			yLayout.setId("MyId");
+			Assert.fail("Exception must be thrown!");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		// Start with an given id
+		//
+		final YLayout yLayout2 = modelFactory.createYLayout();
+		yLayout2.setId("Huhuhu");
+		final ILayoutEditpart layoutEditPart2 = editpartManager.getEditpart(
+				context, yLayout2);
+		Assert.assertEquals(yLayout2.getId(), layoutEditPart2.getId());
+		Assert.assertEquals("Huhuhu", yLayout2.getId());
+
+		try {
+			yLayout2.setId("MyId");
+			Assert.fail("Exception must be thrown!");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+	}
+
+	@Test
+	public void test_EditpartFromModel_DifferentEditpartsRegisteredAsAdapter() {
+		// Different adapters (editparts) are registered as listener at the
+		// eObject.
+		// ElementEditpart.findEditpart(yElement) needs to return the editpart
+		// that is associated with the yElement.
+		YView view1 = modelFactory.createYView();
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField yField1 = modelFactory.createYField();
+		layout1.getElements().add(yField1);
+		YField yField2 = modelFactory.createYField();
+		layout1.getElements().add(yField2);
+
+		ViewContext context = new ViewContext();
+
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context,
+				yField1);
+		IFieldEditpart field2Editpart = editpartManager.getEditpart(context,
+				yField2);
+
+		yField1.eAdapters().add((Adapter) field2Editpart);
+
+		assertSame(field1Editpart, ElementEditpart.findEditPartFor(yField1));
+	}
+
+	/**
+	 * Tests the disposal of edit parts.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_Dispose_Containements() {
+		// END SUPRESS CATCH EXCEPTION
+		Resource resource = resourceSet.createResource(URI
+				.createURI(CoreModelPackage.eNS_URI));
+		YViewSet viewSet = modelFactory.createYViewSet();
+		resource.getContents().add(castEObject(viewSet));
+
+		// ......> layout1
+		// ...........> field1
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		viewSet.getViews().add(view1);
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		YView view2 = modelFactory.createYView();
+		viewSet.getViews().add(view2);
+		YLayout layout2 = modelFactory.createYLayout();
+		view2.setContent(layout2);
+		YField field2 = modelFactory.createYField();
+		layout2.getElements().add(field2);
+
+		// access the editparts the editpartManager
+		//
+		ViewContext context_1 = new ViewContext();
+		
+		ViewContext context_2 = new ViewContext();
+
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context_1,
+				view1);
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context_1,
+				layout1);
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context_1,
+				field1);
+		IViewEditpart view2Editpart = editpartManager.getEditpart(context_2,
+				view2);
+		ILayoutEditpart layout2Editpart = editpartManager.getEditpart(context_2,
+				layout2);
+		IFieldEditpart field2Editpart = editpartManager.getEditpart(context_2,
+				field2);
+
+		Assert.assertFalse(view1Editpart.isDisposed());
+		Assert.assertFalse(layout1Editpart.isDisposed());
+		Assert.assertFalse(field1Editpart.isDisposed());
+		Assert.assertFalse(view2Editpart.isDisposed());
+		Assert.assertFalse(layout2Editpart.isDisposed());
+		Assert.assertFalse(field2Editpart.isDisposed());
+
+		// dispose the root and all contained edit parts will be disposed too
+		//
+		view1Editpart.dispose();
+
+		Assert.assertTrue(view1Editpart.isDisposed());
+		Assert.assertTrue(layout1Editpart.isDisposed());
+		Assert.assertTrue(field1Editpart.isDisposed());
+		Assert.assertFalse(view2Editpart.isDisposed());
+		Assert.assertFalse(layout2Editpart.isDisposed());
+		Assert.assertFalse(field2Editpart.isDisposed());
+	}
+
+	/**
+	 * Tests the disposal of edit parts.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_UiViewEditPart_content() {
+		// END SUPRESS CATCH EXCEPTION
+
+		ViewContext context = new ViewContext();
+
+		// view
+		// ...> layout1
+		YView view = modelFactory.createYView();
+		IViewEditpart viewEditPart = editpartManager.getEditpart(context, view);
+
+		Assert.assertNull(view.getContent());
+		Assert.assertNull(viewEditPart.getContent());
+
+		// set layout by model
+		YLayout layout1 = modelFactory.createYLayout();
+		view.setContent(layout1);
+		Assert.assertSame(layout1, view.getContent());
+		Assert.assertSame(editpartManager.getEditpart(context, layout1),
+				viewEditPart.getContent());
+	}
+
+	/**
+	 * Tests the disposal of edit parts.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_UiLayoutEditPart_elements() {
+		// END SUPRESS CATCH EXCEPTION
+		YLayout rootLayout = modelFactory.createYLayout();
+		// layout
+		// ...> layout1
+		// ...> field1
+		YLayout layout1 = modelFactory.createYLayout();
+		rootLayout.getElements().add(layout1);
+
+		YField field1 = modelFactory.createYField();
+		rootLayout.getElements().add(field1);
+
+		ViewContext context = new ViewContext();
+
+		// access the editparts by the editpartManager
+		//
+		ILayoutEditpart rootLayoutEditPart = editpartManager.getEditpart(
+				context, rootLayout);
+
+		Assert.assertEquals(2, rootLayoutEditPart.getElements().size());
+		Assert.assertEquals(rootLayout.getElements().size(), rootLayoutEditPart
+				.getElements().size());
+
+		// add 3rd field by model
+		YField field3 = modelFactory.createYField();
+		rootLayout.getElements().add(field3);
+		Assert.assertEquals(3, rootLayoutEditPart.getElements().size());
+		Assert.assertEquals(rootLayout.getElements().size(), rootLayoutEditPart
+				.getElements().size());
+
+		// add 4th layout by edit part
+		YLayout layout4 = modelFactory.createYLayout();
+		rootLayout.getElements().add(layout4);
+		Assert.assertEquals(4, rootLayoutEditPart.getElements().size());
+		Assert.assertEquals(rootLayout.getElements().size(), rootLayoutEditPart
+				.getElements().size());
+		ILayoutEditpart layout4Editpart = editpartManager.findEditpart(layout4);
+
+		// remove 3rd layout by model
+		rootLayout.getElements().remove(field3);
+		Assert.assertEquals(3, rootLayoutEditPart.getElements().size());
+		Assert.assertEquals(rootLayout.getElements().size(), rootLayoutEditPart
+				.getElements().size());
+
+		// remove 4rd layout by edit part
+		rootLayoutEditPart.removeElement(layout4Editpart);
+		Assert.assertEquals(2, rootLayoutEditPart.getElements().size());
+		Assert.assertEquals(rootLayout.getElements().size(), rootLayoutEditPart
+				.getElements().size());
+	}
+
+	// BEGIN SUPRESS CATCH EXCEPTION
+	@Test
+	public void test_setContext() {
+		// END SUPRESS CATCH EXCEPTION
+		// ...........> field2
+
+		YView view1 = modelFactory.createYView();
+
+		ViewContext context1 = new ViewContext();
+		IViewEditpart view1EditPart = editpartManager.getEditpart(context1,
+				view1);
+		assertSame(context1, view1EditPart.getContext());
+
+		// does not create a new editpart and does not set context
+		ViewContext context2 = new ViewContext();
+		IViewEditpart view1_2EditPart = editpartManager.getEditpart(context2,
+				view1);
+		assertSame(context1, view1_2EditPart.getContext());
+		assertSame(view1EditPart, view1_2EditPart);
+	}
+
+	/**
+	 * Internal context for testing.
+	 */
+	private static class InternalViewContext implements IViewContext {
+
+		private boolean rendered;
+
+		@Override
+		public boolean isDisposed() {
+			return false;
+		}
+
+		@Override
+		public void dispose() {
+		}
+
+		@Override
+		public void addDisposeListener(Listener listener) {
+		}
+
+		@Override
+		public void removeDisposeListener(Listener listener) {
+		}
+
+		@Override
+		public String getPresentationURI() {
+			return null;
+		}
+
+		@Override
+		public IViewEditpart getViewEditpart() {
+			return null;
+		}
+
+		@Override
+		public Object getBean(String selector) {
+			return null;
+		}
+
+		@Override
+		public void setBean(String selector, Object bean) {
+		}
+
+		@Override
+		public Object getRootLayout() {
+			return null;
+		}
+
+		@Override
+		public void render(String presentationURI, Object rootLayout,
+				Map<String, Object> parameter) throws ContextException {
+
+		}
+
+		@Override
+		public boolean isRendered() {
+			return rendered;
+		}
+
+		@Override
+		public <S> S getService(String selector) {
+			return null;
+		}
+
+		@Override
+		public void registerService(String selector, Object service) {
+
+		}
+
+		@Override
+		public void unregisterService(String selector) {
+
+		}
+
+		@Override
+		public ISlot getBeanSlot(String selector) {
+			return null;
+		}
+
+		@Override
+		public ISlot createBeanSlot(String selector, Class<?> type) {
+			return null;
+		}
+
+		@Override
+		public void exec(Runnable runnable) {
+
+		}
+
+		@Override
+		public Future<?> execAsync(Runnable runnable) {
+			return null;
+		}
+
+		@Override
+		public void setLocale(Locale locale) {
+
+		}
+
+		@Override
+		public Locale getLocale() {
+			return null;
+		}
+
+		@Override
+		public boolean isDisposing() {
+
+			return false;
+		}
+
+		@Override
+		public ISlot createBeanSlot(String selector, Class<?> type,
+				String eventTopic) {
+
+			return null;
+		}
+
+		@Override
+		public IVisibilityManager getVisibilityManager() {
+
+			return null;
+		}
+
+		@Override
+		public List<IExposedActionEditpart> getExposedActions() {
+
+			return null;
+		}
+
+		@Override
+		public Object findModelElement(String id) {
+
+			return null;
+		}
+
+		@Override
+		public Object findBoundField(String bindingIdRegex) {
+			return null;
+		}
+
+		@Override
+		public void setViewEditpart(IViewEditpart viewEditpart) {
+			// TODO Auto-generated method stub
+
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/FieldEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/FieldEditpartTest.java
new file mode 100644
index 0000000..d5b55ea
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/FieldEditpartTest.java
@@ -0,0 +1,328 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+
+/**
+ * Tests the ui field edit part.
+ * 
+ * @author admin
+ * 
+ */
+@SuppressWarnings("restriction")
+public class FieldEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private CoreModelFactory modelFactory = CoreModelFactory.eINSTANCE;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+	}
+
+	/**
+	 * Tests the disposal.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+		// ...> yLayout1
+		// ......> yField1
+		
+		ViewContext context = new ViewContext();
+		
+		
+		YField yField1 = modelFactory.createYField();
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context, yField1);
+
+		Assert.assertFalse(field1Editpart.isDisposed());
+		field1Editpart.dispose();
+		Assert.assertTrue(field1Editpart.isDisposed());
+
+		field1Editpart.isDisposed();
+		field1Editpart.dispose();
+
+		try {
+			field1Editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			field1Editpart.getId();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			field1Editpart.getModel();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			field1Editpart.getParent();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			field1Editpart.getView();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			field1Editpart.removeDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			field1Editpart.getValidators();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+
+	/**
+	 * Tests the automatic disposal of validators.
+	 */
+	@Test
+	public void test_validatorsDisposed_AfterDispose() {
+		// ...> yLayout1
+		// ......> yField1
+		
+		ViewContext context = new ViewContext();
+		
+		YLayout yLayout1 = modelFactory.createYLayout();
+		YField yField1 = modelFactory.createYField();
+		yLayout1.getElements().add(yField1);
+		IFieldEditpart fieldEditpart = editpartManager.getEditpart(context, yField1);
+		assertFalse(fieldEditpart.isDisposed());
+
+		// create and add validator
+		//
+		YMinLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMinLengthValidator();
+		YMinLengthValidator yValidator2 = ValidationFactory.eINSTANCE
+				.createYMinLengthValidator();
+		IValidatorEditpart validatorEditpart = editpartManager
+				.getEditpart(context, yValidator);
+		IValidatorEditpart validatorEditpart2 = editpartManager
+				.getEditpart(context, yValidator2);
+		fieldEditpart.addValidator(validatorEditpart);
+		fieldEditpart.addValidator(validatorEditpart2);
+		assertFalse(validatorEditpart.isDisposed());
+		assertFalse(validatorEditpart2.isDisposed());
+
+		// dispose parent
+		//
+		fieldEditpart.dispose();
+		assertTrue(fieldEditpart.isDisposed());
+		assertTrue(validatorEditpart.isDisposed());
+		assertTrue(validatorEditpart2.isDisposed());
+	}
+
+	/**
+	 * Tests the addition and removal of validators by the edit parts.
+	 */
+	@Test
+	public void test_addRemoveValidator() {
+
+		ViewContext context = new ViewContext();
+		
+		// ...> yLayout1
+		// ......> yField1
+		YLayout yLayout1 = modelFactory.createYLayout();
+		YField yField1 = modelFactory.createYField();
+		yLayout1.getElements().add(yField1);
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context, yField1);
+
+		// create and add validator by editpart
+		//
+		YMinLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMinLengthValidator();
+		IValidatorEditpart validatorEditpart = editpartManager
+				.getEditpart(context, yValidator);
+
+		assertEquals(0, field1Editpart.getValidators().size());
+		assertEquals(0, yField1.getValidators().size());
+
+		// add
+		field1Editpart.addValidator(validatorEditpart);
+
+		assertEquals(1, field1Editpart.getValidators().size());
+		assertEquals(1, yField1.getValidators().size());
+		assertSame(validatorEditpart, field1Editpart.getValidators().get(0));
+
+		// add twice -> no effect
+		field1Editpart.addValidator(validatorEditpart);
+
+		assertEquals(1, field1Editpart.getValidators().size());
+		assertEquals(1, yField1.getValidators().size());
+
+		// remove validator by editpart
+		//
+		field1Editpart.removeValidator(validatorEditpart);
+
+		assertEquals(0, field1Editpart.getValidators().size());
+		assertEquals(0, yField1.getValidators().size());
+
+		// remove twice
+		//
+		field1Editpart.removeValidator(validatorEditpart);
+
+		assertEquals(0, field1Editpart.getValidators().size());
+		assertEquals(0, yField1.getValidators().size());
+	}
+
+	/**
+	 * Tests the addition and removal of validators by the model.
+	 */
+	@Test
+	public void test_addRemoveValidatorByModel() {
+		
+		ViewContext context = new ViewContext();
+		
+		// ...> yLayout1
+		// ......> yField1
+		YLayout yLayout1 = modelFactory.createYLayout();
+		YField yField1 = modelFactory.createYField();
+		yLayout1.getElements().add(yField1);
+		ILayoutEditpart layout1Editpart = (ILayoutEditpart) editpartManager
+				.getEditpart(context, yLayout1);
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context, yField1);
+
+		Assert.assertEquals(1, layout1Editpart.getElements().size());
+		Assert.assertSame(yLayout1, yField1.getParent());
+
+		// create validator
+		//
+		ValidationFactory vf = ValidationFactory.eINSTANCE;
+		YMinLengthValidator yValidator = vf.createYMinLengthValidator();
+		assertEquals(0, yField1.getValidators().size());
+		assertEquals(0, field1Editpart.getValidators().size());
+
+		// add by model
+
+		yField1.getValidators().add(yValidator);
+
+		assertEquals(1, yField1.getValidators().size());
+		assertEquals(1, field1Editpart.getValidators().size());
+		assertSame(yValidator, yField1.getValidators().get(0));
+
+		// add twice -> no effect
+		//
+		yField1.getValidators().add(yValidator);
+
+		assertEquals(1, yField1.getValidators().size());
+		assertEquals(1, field1Editpart.getValidators().size());
+		assertSame(yValidator, yField1.getValidators().get(0));
+
+		// remove validator by model
+		//
+		yField1.getValidators().remove(yValidator);
+
+		assertEquals(0, yField1.getValidators().size());
+		assertEquals(0, field1Editpart.getValidators().size());
+
+		// remove twice
+		//
+		yField1.getValidators().remove(yValidator);
+
+		assertEquals(0, yField1.getValidators().size());
+		assertEquals(0, field1Editpart.getValidators().size());
+
+	}
+
+	/**
+	 * Tests whether the list of validators for an editpart is unmodifiable
+	 * (only the list within the model may be modified).
+	 */
+	@Test
+	public void test_Validators_unmodifiable() {
+		
+		ViewContext context = new ViewContext();
+		
+		YField yField1 = modelFactory.createYField();
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context, yField1);
+
+		ValidationFactory vf = ValidationFactory.eINSTANCE;
+		YMinLengthValidator yValidator = vf.createYMinLengthValidator();
+		IValidatorEditpart validatorEditpart = editpartManager
+				.getEditpart(context, yValidator);
+
+		try {
+			field1Editpart.getValidators().add(validatorEditpart);
+			Assert.fail("Must be unmodifieable");
+		} catch (Exception e) {
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/LayoutEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/LayoutEditpartTest.java
new file mode 100644
index 0000000..e8d3700
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/LayoutEditpartTest.java
@@ -0,0 +1,423 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf;
+
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the ui layout edit part.
+ */
+@SuppressWarnings("restriction")
+public class LayoutEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private CoreModelFactory modelFactory = CoreModelFactory.eINSTANCE;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+	}
+
+	/**
+	 * Tests the parent property.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_parent() {
+		ViewContext context = new ViewContext();
+
+		// ...> layout1
+		// ......> field1
+		YLayout layout1 = modelFactory.createYLayout();
+		YLayout layout1_1 = modelFactory.createYLayout();
+		layout1.getElements().add(layout1_1);
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+		ILayoutEditpart layout1_1Editpart = editpartManager.getEditpart(
+				context, layout1_1);
+
+		Assert.assertEquals(1, layout1Editpart.getElements().size());
+		Assert.assertSame(layout1Editpart, layout1_1Editpart.getParent());
+		Assert.assertSame(layout1, layout1_1.getParent());
+
+		// dispose the field
+		//
+		layout1_1Editpart.dispose();
+		Assert.assertFalse(layout1Editpart.isDisposed());
+		Assert.assertTrue(layout1_1Editpart.isDisposed());
+
+		Assert.assertEquals(1, layout1Editpart.getElements().size());
+		Assert.assertSame(layout1, layout1_1.getParent());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests adding and removing embeddeables.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_addAndRemove_Embedded() {
+		// END SUPRESS CATCH EXCEPTION
+
+		ViewContext context = new ViewContext();
+
+		// ...> layout
+		// ......> field1
+		YLayout layout = modelFactory.createYLayout();
+		YField field1 = modelFactory.createYField();
+		layout.getElements().add(field1);
+		ILayoutEditpart layoutEditpart = (ILayoutEditpart) editpartManager
+				.getEditpart(context, layout);
+		Assert.assertEquals(1, layoutEditpart.getElements().size());
+		Assert.assertSame(layout, field1.getParent());
+
+		// ...> layout
+		// ......> field1
+		// ......> field2
+		// add by model
+		YField field2 = modelFactory.createYField();
+		layout.getElements().add(field2);
+		Assert.assertEquals(2, layoutEditpart.getElements().size());
+		Assert.assertSame(layout, field2.getParent());
+
+		// add model twice
+		layout.getElements().add(field2);
+		Assert.assertEquals(2, layout.getElements().size());
+		Assert.assertEquals(2, layoutEditpart.getElements().size());
+		Assert.assertSame(layout, field2.getParent());
+
+		// ...> layout
+		// ......> field1
+		// ......> field2
+		// ......> field3
+		// add by edit part
+		IFieldEditpart field3Editpart = editpartManager.getEditpart(context,
+				CoreModelFactory.eINSTANCE.createYField());
+		layoutEditpart.addElement(field3Editpart);
+		Assert.assertSame(layoutEditpart, field3Editpart.getParent());
+		Assert.assertEquals(3, layoutEditpart.getElements().size());
+
+		// add edit part twice
+		layoutEditpart.addElement(field3Editpart);
+		Assert.assertSame(layoutEditpart, field3Editpart.getParent());
+		Assert.assertEquals(3, layout.getElements().size());
+		Assert.assertEquals(3, layoutEditpart.getElements().size());
+
+		// remove by model
+		layout.getElements().remove(field2);
+		Assert.assertEquals(2, layoutEditpart.getElements().size());
+		Assert.assertNull(field2.getParent());
+
+		// remove by model twice
+		layout.getElements().remove(field2);
+		Assert.assertEquals(2, layoutEditpart.getElements().size());
+		Assert.assertNull(field2.getParent());
+
+		// remove by edit part
+		layoutEditpart.removeElement(field3Editpart);
+		Assert.assertEquals(1, layoutEditpart.getElements().size());
+		Assert.assertNull(field3Editpart.getParent());
+
+		// remove by edit part twice
+		layoutEditpart.removeElement(field3Editpart);
+		Assert.assertEquals(1, layoutEditpart.getElements().size());
+		Assert.assertNull(field3Editpart.getParent());
+
+	}
+
+	/**
+	 * Test the move of embedded elements by the model.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_moveEmbedded_byModel() {
+		// END SUPRESS CATCH EXCEPTION
+
+		ViewContext context = new ViewContext();
+
+		// ...> layout1
+		// ......> field1
+		// ...> layout2
+		YLayout layout1 = modelFactory.createYLayout();
+		YField field1 = modelFactory.createYField();
+		YLayout layout2 = modelFactory.createYLayout();
+		layout1.getElements().add(field1);
+		ILayoutEditpart layout1Editpart = (ILayoutEditpart) editpartManager
+				.getEditpart(context, layout1);
+		ILayoutEditpart layout2Editpart = (ILayoutEditpart) editpartManager
+				.getEditpart(context, layout2);
+		Assert.assertEquals(1, layout1Editpart.getElements().size());
+		Assert.assertEquals(0, layout2Editpart.getElements().size());
+		Assert.assertSame(layout1, field1.getParent());
+
+		// move it
+		//
+		layout2.getElements().add(field1);
+		Assert.assertEquals(0, layout1.getElements().size());
+		Assert.assertEquals(1, layout2.getElements().size());
+		Assert.assertSame(layout2, field1.getParent());
+
+		Assert.assertEquals(0, layout1Editpart.getElements().size());
+		Assert.assertEquals(1, layout2Editpart.getElements().size());
+	}
+
+	/**
+	 * Tests the getView method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getView() {
+		// END SUPRESS CATCH EXCEPTION
+
+		ViewContext context = new ViewContext();
+
+		// ...> view1
+		// ......> layout1
+		// .........> field1
+		YView view1 = modelFactory.createYView();
+		YLayout layout1 = modelFactory.createYLayout();
+		YField field1 = modelFactory.createYField();
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context,
+				field1);
+		view1.setContent(layout1);
+		layout1.addElement(field1);
+
+		Assert.assertSame(view1Editpart, layout1Editpart.getView());
+		Assert.assertSame(view1Editpart, field1Editpart.getView());
+		Assert.assertSame(view1, layout1.getView());
+		Assert.assertSame(view1, field1.getView());
+
+		// ...> view1
+		// ......> layout1
+		// .........> field1
+		ViewContext context2 = new ViewContext();
+		YView view2 = modelFactory.createYView();
+		IViewEditpart view2Editpart = editpartManager.getEditpart(context2,
+				view2);
+		view2.setContent(layout1);
+
+		Assert.assertTrue(layout1Editpart.isDisposed());
+		Assert.assertTrue(field1Editpart.isDisposed());
+
+		layout1Editpart = editpartManager.getEditpart(context2, layout1);
+		field1Editpart = editpartManager.getEditpart(context2, field1);
+
+		Assert.assertSame(view2Editpart, layout1Editpart.getView());
+		Assert.assertSame(view2Editpart, field1Editpart.getView());
+		Assert.assertSame(view2, layout1.getView());
+		Assert.assertSame(view2, field1.getView());
+
+	}
+
+	/**
+	 * Tests the unmodifyable state of getElements collection.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getElements_unmodifyable() {
+		// END SUPRESS CATCH EXCEPTION
+
+		ViewContext context = new ViewContext();
+
+		YLayout layout1 = modelFactory.createYLayout();
+		YField field1 = modelFactory.createYField();
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context,
+				field1);
+
+		try {
+			layout1Editpart.getElements().add(field1Editpart);
+			Assert.fail("Must be unmodifieable");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+	}
+
+	/**
+	 * Tests the disposal of embedded elements.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_disposeEmbedded() {
+		// END SUPRESS CATCH EXCEPTION
+
+		ViewContext context = new ViewContext();
+
+		// ...> layout1
+		// ......> field1
+		YLayout layout1 = modelFactory.createYLayout();
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context,
+				field1);
+
+		Assert.assertEquals(1, layout1Editpart.getElements().size());
+		Assert.assertSame(layout1Editpart, field1Editpart.getParent());
+		Assert.assertSame(layout1, field1.getParent());
+
+		// dispose the field
+		//
+		field1Editpart.dispose();
+		Assert.assertFalse(layout1Editpart.isDisposed());
+		Assert.assertTrue(field1Editpart.isDisposed());
+
+		// disposed editpart are recreated on request
+		Assert.assertEquals(1, layout1Editpart.getElements().size());
+		Assert.assertSame(layout1, field1.getParent());
+	}
+
+	/**
+	 * Tests the disposal of edit parts.
+	 */
+	// BEGIN SUPRESS CATCH EXCEPTION
+	@Test
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+
+		ViewContext context = new ViewContext();
+
+		// ...> layout1
+		// ......> field1
+		YLayout layout1 = modelFactory.createYLayout();
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context,
+				field1);
+
+		Assert.assertFalse(layout1Editpart.isDisposed());
+		Assert.assertFalse(field1Editpart.isDisposed());
+		layout1Editpart.dispose();
+		Assert.assertTrue(layout1Editpart.isDisposed());
+		Assert.assertTrue(field1Editpart.isDisposed());
+
+		layout1Editpart.isDisposed();
+		layout1Editpart.dispose();
+
+		try {
+			layout1Editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			layout1Editpart.addElement(field1Editpart);
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			layout1Editpart.getElements();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			layout1Editpart.getId();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			layout1Editpart.getModel();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			layout1Editpart.getParent();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			layout1Editpart.getView();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			layout1Editpart.removeDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			layout1Editpart.removeElement(field1Editpart);
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/ViewEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/ViewEditpartTest.java
new file mode 100644
index 0000000..2a7c836
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/ViewEditpartTest.java
@@ -0,0 +1,604 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.context.ConfigurationAdapter;
+import org.eclipse.osbp.ecview.core.common.context.ContextException;
+import org.eclipse.osbp.ecview.core.common.context.IContext;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeChangeEvent;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.presentation.DelegatingPresenterFactory;
+import org.eclipse.osbp.ecview.core.common.presentation.IPresentationFactory;
+import org.eclipse.osbp.ecview.core.common.presentation.IViewPresentation;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.common.services.IUiKitBasedService;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the {@link ViewEditpart}.
+ */
+@SuppressWarnings("restriction")
+public class ViewEditpartTest {
+
+	private DelegatingPresenterFactory presenterFactory = DelegatingPresenterFactory
+			.getInstance();
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private CoreModelFactory modelFactory = CoreModelFactory.eINSTANCE;
+	private BindingFactory bindingFactory = BindingFactory.eINSTANCE;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+		presenterFactory.clear();
+		presenterFactory.addDelegate(new PresenterFactory());
+	}
+
+	/**
+	 * Tests the context.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_context() {
+		// END SUPRESS CATCH EXCEPTION
+
+		IViewContext context = new ViewContext();
+		YView yView = CoreModelFactory.eINSTANCE.createYView();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+		assertSame(context, viewEditpart.getContext());
+		assertSame(viewEditpart, context.getViewEditpart());
+	}
+
+	/**
+	 * Tests setContent by model.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_setContent_byModel() {
+		// END SUPRESS CATCH EXCEPTION
+		// ...> view1
+		// ......> layout1
+		IViewContext context = new ViewContext();
+
+		YView view1 = modelFactory.createYView();
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+
+		assertSame(layout1Editpart, view1Editpart.getContent());
+		// parent is null if it is the view
+		assertSame(view1Editpart, layout1Editpart.getParent());
+		assertSame(view1Editpart, layout1Editpart.getView());
+
+		// unset the layout
+		//
+		view1.setContent(null);
+		assertNull(view1Editpart.getContent());
+		assertTrue(layout1Editpart.isDisposed());
+
+	}
+
+	/**
+	 * Tests move content by model.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_moveContent_byModel() {
+		// END SUPRESS CATCH EXCEPTION
+
+		IViewContext context_1 = new ViewContext();
+
+		// ...> view1
+		// ......> layout1
+		YView view1 = modelFactory.createYView();
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context_1,
+				view1);
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context_1,
+				layout1);
+
+		assertSame(layout1Editpart, view1Editpart.getContent());
+		// parent is null if it is the view
+		assertSame(view1Editpart, layout1Editpart.getParent());
+		assertSame(view1Editpart, layout1Editpart.getView());
+
+		// ...> view2
+		// ......> layout1
+		YView view2 = modelFactory.createYView();
+		view2.setContent(layout1);
+		
+		assertTrue(layout1Editpart.isDisposed());
+		
+		IViewContext context_2 = new ViewContext();
+		
+		IViewEditpart view2Editpart = editpartManager.getEditpart(context_2,
+				view2);
+		layout1Editpart = (ILayoutEditpart) view2Editpart.getContent();
+		assertSame(layout1, layout1Editpart.getModel());
+
+		assertSame(layout1Editpart, view2Editpart.getContent());
+		assertSame(view2Editpart, layout1Editpart.getView());
+	}
+
+	/**
+	 * Tests dispose content.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_disposeContent() {
+		// END SUPRESS CATCH EXCEPTION
+
+		IViewContext context = new ViewContext();
+
+		// ...> view1
+		// ......> layout1
+		YView view1 = modelFactory.createYView();
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context,
+				layout1);
+
+		assertSame(layout1Editpart, view1Editpart.getContent());
+		assertSame(view1Editpart, layout1Editpart.getView());
+		assertSame(view1, layout1.getView());
+
+		// dispose the layout
+		//
+		layout1Editpart.requestDispose();
+		assertFalse(view1Editpart.isDisposed());
+		assertTrue(layout1Editpart.isDisposed());
+
+		// a new instance will be returned since the old one was disposed
+		assertFalse(layout1Editpart == view1Editpart.getContent());
+		assertNull(layout1.getParent());
+	}
+
+	/**
+	 * Tests the disposal.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+
+		IViewContext context = new ViewContext();
+
+		YView view1 = modelFactory.createYView();
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+
+		assertFalse(view1Editpart.isDisposed());
+		view1Editpart.dispose();
+		assertTrue(view1Editpart.isDisposed());
+
+		view1Editpart.isDisposed();
+		view1Editpart.dispose();
+
+		try {
+			view1Editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			view1Editpart.setContent(null);
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			view1Editpart.getContent();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			view1Editpart.getId();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			view1Editpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			view1Editpart.removeDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+
+	/**
+	 * Tests setContent by model.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_setBindingSet_byModel() {
+		// END SUPRESS CATCH EXCEPTION
+
+		IViewContext context = new ViewContext();
+
+		// ...> view1
+		YView view1 = modelFactory.createYView();
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+		view1.setBindingSet(bindingSet);
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				context, bindingSet);
+		assertFalse(bindingSetEditpart.isActive());
+
+		assertSame(bindingSetEditpart, view1Editpart.getBindingSet());
+		// parent is null if it is the view
+		assertSame(view1Editpart, bindingSetEditpart.getView());
+		assertTrue(bindingSetEditpart.isActive());
+
+		// unset the binding set
+		//
+		view1.setBindingSet(null);
+		assertTrue(bindingSetEditpart.isDisposed());
+
+		// bindingset is get or create -> so a new instance is created
+		assertNotNull(view1Editpart.getBindingSet());
+	}
+
+	/**
+	 * Tests setContent by editPart.
+	 * 
+	 * @throws ContextException
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_configuration() throws ContextException {
+		// END SUPRESS CATCH EXCEPTION
+
+		IViewContext context = new ViewContext();
+
+		// ...> view1
+		YView view1 = modelFactory.createYView();
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context,
+				view1);
+
+		final List<String> callOrder = new ArrayList<String>();
+		view1Editpart.setConfiguration(new ConfigurationAdapter() {
+			@Override
+			public void beforeUiRendering(IContext context) {
+				callOrder.add("beforeUiRendering");
+			}
+
+			@Override
+			public void afterUiRendering(IContext context) {
+				callOrder.add("afterUiRendering");
+			}
+
+			@Override
+			public void beforeBind(IContext context) {
+				callOrder.add("beforeBind");
+			}
+
+			@Override
+			public void afterBind(IContext context) {
+				callOrder.add("afterBind");
+			}
+		});
+
+		view1Editpart.render(null);
+
+		assertEquals("beforeUiRendering", callOrder.get(0));
+		assertEquals("afterUiRendering", callOrder.get(1));
+		assertEquals("beforeBind", callOrder.get(2));
+		assertEquals("afterBind", callOrder.get(3));
+
+	}
+
+	/**
+	 * IMPORTANT: Each UI-Kit has to implement this test method too.
+	 */
+	@Test
+	public void testExec() {
+		ViewContext context = new ViewContext();
+		editpartManager.getEditpart(context,
+				CoreModelFactory.eINSTANCE.createYView());
+		context.exec(new Runnable() {
+			@Override
+			public void run() {
+			}
+		});
+	}
+
+	@Test
+	public void test_addBeanSlotByModel() {
+		ViewContext context = new ViewContext();
+		editpartManager.getEditpart(context,
+				CoreModelFactory.eINSTANCE.createYView());
+		assertNull(context.getBeanSlot("myfoo"));
+
+		YView yView = (YView) context.getViewEditpart().getModel();
+
+		// add a bean slot
+		YBeanSlot yBeanSlot = modelFactory.createYBeanSlot();
+		yBeanSlot.setName("myFoo");
+		yBeanSlot.setValueType(List.class);
+		yView.getBeanSlots().add(yBeanSlot);
+
+		ISlot slot = context.getBeanSlot("myFoo");
+		assertEquals(List.class, slot.getValueType());
+	}
+
+	@Test
+	public void test_removeBeanSlotByModel() {
+		ViewContext context = new ViewContext();
+		editpartManager.getEditpart(context,
+				CoreModelFactory.eINSTANCE.createYView());
+		assertNull(context.getBeanSlot("myfoo"));
+
+		YView yView = (YView) context.getViewEditpart().getModel();
+
+		// add a bean slot
+		YBeanSlot yBeanSlot = modelFactory.createYBeanSlot();
+		yBeanSlot.setName("myFoo");
+		yBeanSlot.setValueType(List.class);
+		yView.getBeanSlots().add(yBeanSlot);
+
+		try {
+			// remove of bean slot not possible in runtime
+			yView.getBeanSlots().remove(yBeanSlot);
+			fail("must throw exception!");
+		} catch (Exception e) {
+		}
+		assertNotNull(context.getBeanSlot("myFoo"));
+	}
+
+	/**
+	 * A helper presentation.
+	 */
+	@SuppressWarnings("rawtypes")
+	private static class Presentation implements IViewPresentation {
+
+		@Override
+		public boolean isDisposed() {
+			return false;
+		}
+
+		@Override
+		public void dispose() {
+
+		}
+
+		@Override
+		public void addDisposeListener(Listener listener) {
+
+		}
+
+		@Override
+		public void removeDisposeListener(Listener listener) {
+
+		}
+
+		@Override
+		public void unrender() {
+
+		}
+
+		@Override
+		public Object createWidget(Object parent) {
+			return null;
+		}
+
+		@Override
+		public Object getWidget() {
+			return null;
+		}
+
+		@Override
+		public boolean isRendered() {
+			return false;
+		}
+
+		@Override
+		public void render(Map options) {
+
+		}
+
+		@Override
+		public Object getModel() {
+			return null;
+		}
+
+		@Override
+		public IViewContext getViewContext() {
+			return null;
+		}
+
+		@Override
+		public IObservable getObservableValue(Object model) {
+			return null;
+		}
+
+		@Override
+		public void exec(Runnable runnable) {
+			runnable.run();
+		}
+
+		@Override
+		public Future execAsync(Runnable runnable) {
+			ExecutorService executor = Executors.newSingleThreadExecutor();
+			return executor.submit(runnable);
+		}
+
+		@Override
+		public Set getUIBindings() {
+			return null;
+		}
+
+		@Override
+		public void resetVisibilityProperties() {
+
+		}
+
+		@Override
+		public void notifyDatatypeChanged(DatatypeChangeEvent event) {
+
+		}
+
+		@Override
+		public boolean isDisposing() {
+
+			return false;
+		}
+
+		@Override
+		public void apply(IVisibilityHandler handler) {
+
+		}
+
+		@Override
+		public void setContent(IEmbeddableEditpart editpart) {
+
+		}
+
+		@Override
+		public IEmbeddableEditpart getContent() {
+
+			return null;
+		}
+
+		@Override
+		public IUiKitBasedService createService(Class serviceClass) {
+
+			return null;
+		}
+
+		@Override
+		public void openDialog(IDialogEditpart dialogEditpart,
+				IBindableEndpointEditpart inputData) {
+
+		}
+
+		@Override
+		public void closeDialog(IDialogEditpart dialogEditpart) {
+
+		}
+
+		@Override
+		public void requestFocus(IElementEditpart toFocus) {
+
+		}
+
+		@Override
+		public void updateContentAlignment() {
+
+		}
+
+		@Override
+		public void updateSpacings() {
+
+		}
+
+	}
+
+	/**
+	 * A helper presenter factory.
+	 */
+	private static class PresenterFactory implements IPresentationFactory {
+
+		@Override
+		public boolean isFor(IViewContext uiContext, IElementEditpart editpart) {
+			return true;
+		}
+
+		@SuppressWarnings("unchecked")
+		@Override
+		public <A extends IWidgetPresentation<?>> A createPresentation(
+				IViewContext uiContext, IElementEditpart editpart) {
+			return (A) new Presentation();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/AbstractBean.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/AbstractBean.java
new file mode 100644
index 0000000..50dbcd0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/AbstractBean.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.binding;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+/**
+ * Default implementation of value bean. Offerns {@link PropertyChangeSupport}.
+ */
+public class AbstractBean {
+	private final PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	public AbstractBean() {
+	}
+
+	/**
+	 * Adds the given property change listener to the change support.
+	 * 
+	 * @param listener
+	 *            Listener to be added
+	 * @see java.beans.PropertyChangeSupport#addPropertyChangeListener(java.beans.PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(listener);
+	}
+
+	/**
+	 * Adds the given property change listener to the change support.
+	 * 
+	 * @param property
+	 *            Name of the property
+	 * @param listener
+	 *            Listener to be added
+	 * @see java.beans.PropertyChangeSupport#addPropertyChangeListener(java.lang.String,
+	 *      java.beans.PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(String property,
+			PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(property, listener);
+	}
+
+	/**
+	 * Removes the given property change listener from the change support.
+	 * 
+	 * @param listener
+	 *            Listener to be removed
+	 * @see java.beans.PropertyChangeSupport#removePropertyChangeListener(java.beans.PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(listener);
+	}
+
+	/**
+	 * Removes the given property change listener from the change support.
+	 * 
+	 * @param property
+	 *            Name of the property
+	 * @param listener
+	 *            Listener to be removed
+	 * @see java.beans.PropertyChangeSupport#removePropertyChangeListener(java.lang.String,
+	 *      java.beans.PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(String property,
+			PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(property, listener);
+	}
+
+	/**
+	 * Fires the property changed event.
+	 * 
+	 * @param property
+	 *            Name of the property
+	 * @param oldValue
+	 *            The old value
+	 * @param newValue
+	 *            The new value
+	 * @see java.beans.PropertyChangeSupport#firePropertyChange(String, Object,
+	 *      Object)
+	 */
+	protected void firePropertyChanged(String property, Object oldValue,
+			Object newValue) {
+		changeSupport.firePropertyChange(property, oldValue, newValue);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BeanSlotListBindingEndpointEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BeanSlotListBindingEndpointEditpartTest.java
new file mode 100644
index 0000000..1832dc1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BeanSlotListBindingEndpointEditpartTest.java
@@ -0,0 +1,383 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.binding;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.list.IListChangeListener;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.ListChangeEvent;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IBeanSlotListBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.uri.BeanScope;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the {@link ViewEditpart}.
+ */
+@SuppressWarnings("restriction")
+public class BeanSlotListBindingEndpointEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private BindingFactory bindingFactory = BindingFactory.eINSTANCE;
+	private CoreModelFactory factory = CoreModelFactory.eINSTANCE;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+
+		// initialize default realm
+		new DefaultBindingManager.DefaultRealm();
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getObservable_NPE() {
+		// END SUPRESS CATCH EXCEPTION
+		YBeanSlotListBindingEndpoint yEndpoint = factory
+				.createYBeanSlotListBindingEndpoint();
+		yEndpoint.setAttributePath("Huhu");
+		yEndpoint.setBeanSlot(factory.createYBeanSlot());
+		IBeanSlotListBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(new ViewContext(), yEndpoint);
+
+		try {
+			editpart.getObservable();
+			fail();
+		} catch (RuntimeException e) {
+			// expected
+			assertEquals("null is not a valid super type!", e.getMessage());
+		}
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getObservable_For_ViewContext() {
+		// END SUPRESS CATCH EXCEPTION
+		YView yView = factory.createYView();
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+
+		// add a bean slot
+		YBeanSlot yBeanSlot = factory.createYBeanSlot();
+		yBeanSlot.setName("myFoo");
+		yBeanSlot.setValueType(List.class);
+		yView.getBeanSlots().add(yBeanSlot);
+
+		// create the model endpoint and register
+		YBeanSlotListBindingEndpoint yEndpoint = factory
+				.createYBeanSlotListBindingEndpoint();
+		yEndpoint.setBeanSlot(yBeanSlot);
+		yEndpoint.setAttributePath("value");
+		yEndpoint.setCollectionType(Bean.class);
+
+		IBeanSlotListBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(context, yEndpoint);
+		IObservableList value = editpart.getObservable();
+
+		final int[] counter = new int[1];
+		value.addListChangeListener(new IListChangeListener() {
+			@Override
+			public void handleListChange(ListChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+		assertEquals(0, counter[0]);
+
+		List<Bean> beans = new ArrayList<Bean>();
+		beans.add(new Bean("Test1"));
+		beans.add(new Bean("Test2"));
+
+		context.setBean("myFoo", beans);
+		assertEquals(1, counter[0]);
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getNestedObservable_For_ViewContext() {
+		// END SUPRESS CATCH EXCEPTION
+		YView yView = factory.createYView();
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+
+		// add a bean slot
+		YBeanSlot yBeanSlot = factory.createYBeanSlot();
+		yBeanSlot.setName("myFoo");
+		yBeanSlot.setValueType(Bean.class);
+		yView.getBeanSlots().add(yBeanSlot);
+
+		// create the model endpoint and register
+		YBeanSlotListBindingEndpoint yEndpoint = factory
+				.createYBeanSlotListBindingEndpoint();
+		yEndpoint.setBeanSlot(yBeanSlot);
+		yEndpoint.setAttributePath("value.values");
+		yEndpoint.setCollectionType(String.class);
+
+		IBeanSlotListBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(context, yEndpoint);
+		IObservableList value = editpart.getObservable();
+
+		final int[] counter = new int[1];
+		value.addListChangeListener(new IListChangeListener() {
+			@Override
+			public void handleListChange(ListChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+		assertEquals(0, counter[0]);
+
+		Bean bean = new Bean("Test1");
+		bean.values.add("Value1");
+		bean.values.add("Value2");
+
+		context.setBean("myFoo", bean);
+		assertEquals(1, counter[0]);
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_bind() {
+		// END SUPRESS CATCH EXCEPTION
+
+		YView yView = factory.createYView();
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+
+		context.createBeanSlot("slo1", String.class);
+		YBindingSet bs = bindingFactory.createYBindingSet();
+		yView.setBindingSet(bs);
+
+		// add a bean slot
+		YBeanSlot yBeanSlot1 = factory.createYBeanSlot();
+		yBeanSlot1.setName("myFoo");
+		yBeanSlot1.setValueType(Bean.class);
+		yView.getBeanSlots().add(yBeanSlot1);
+
+		// add a bean slot
+		YBeanSlot yBeanSlot2 = factory.createYBeanSlot();
+		yBeanSlot2.setName("myBar");
+		yBeanSlot2.setValueType(Bean.class);
+		yView.getBeanSlots().add(yBeanSlot2);
+
+		// activate the bindingSet editpart
+		//
+		IBindingSetEditpart bsEditpart = editpartManager.getEditpart(context,
+				bs);
+		bsEditpart.setBindingManager(new DefaultBindingManager());
+		bsEditpart.activate();
+
+		// slot1 endpoint
+		//
+		YBeanSlotListBindingEndpoint yEndpoint1 = factory
+				.createYBeanSlotListBindingEndpoint();
+		yEndpoint1.setBeanSlot(yBeanSlot1);
+		yEndpoint1.setAttributePath("value.values");
+
+		// slot2 endpoint
+		//
+		YBeanSlotListBindingEndpoint yEndpoint2 = factory
+				.createYBeanSlotListBindingEndpoint();
+		yEndpoint2.setBeanSlot(yBeanSlot2);
+		yEndpoint2.setAttributePath("value.values");
+
+		bs.addBinding(yEndpoint1, yEndpoint2);
+
+		// write to bean
+		BeanScope fooScope = URIHelper
+				.toScope("view://bean/myFoo#value.values").getBeanScope();
+		BeanScope barScope = URIHelper
+				.toScope("view://bean/myBar#value.values").getBeanScope();
+
+		Bean newBean = new Bean(null);
+		newBean.getValues().add("hihi");
+		newBean.getValues().add("huhu");
+		newBean.getValues().add("haha");
+
+		Bean bean2 = new Bean(null);
+		context.setBean("myBar", bean2);
+		context.setBean("myFoo", newBean);
+
+		int fooSize = ((List<Bean>) fooScope.access(context)).size();
+		int barSize = ((List<Bean>) barScope.access(context)).size();
+		assertEquals(fooSize, barSize);
+		assertEquals(3, barSize);
+
+		newBean = new Bean(null);
+		newBean.getValues().add("hihi");
+		newBean.getValues().add("huhu");
+
+		context.setBean("myBar", newBean);
+		fooSize = ((List<Bean>) fooScope.access(context)).size();
+		barSize = ((List<Bean>) barScope.access(context)).size();
+		assertEquals(fooSize, barSize);
+		assertEquals(2, barSize);
+	}
+
+	/**
+	 * Tests the disposal.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+
+		YBeanSlotListBindingEndpoint yEndpoint = factory
+				.createYBeanSlotListBindingEndpoint();
+		IBeanSlotListBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(new ViewContext(), yEndpoint);
+
+		assertFalse(editpart.isDisposed());
+		editpart.dispose();
+		assertTrue(editpart.isDisposed());
+
+		// call twice
+		editpart.isDisposed();
+		editpart.dispose();
+
+		try {
+			editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getObservable();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			editpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			editpart.getId();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.removeDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+
+	public class Bean extends AbstractBean {
+
+		private String value;
+		private List<String> values = new ArrayList<String>();
+
+		public Bean(String value) {
+			super();
+			this.value = value;
+		}
+
+		/**
+		 * @return the value
+		 */
+		public String getValue() {
+			return value;
+		}
+
+		/**
+		 * @param value
+		 *            the value to set
+		 */
+		public void setValue(String value) {
+			firePropertyChanged("value", this.value, this.value = value);
+		}
+
+		public List<String> getValues() {
+			return values;
+		}
+
+		public void setValues(List<String> values) {
+			this.values = values;
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BeanSlotValueBindingEndpointEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BeanSlotValueBindingEndpointEditpartTest.java
new file mode 100644
index 0000000..98e377f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BeanSlotValueBindingEndpointEditpartTest.java
@@ -0,0 +1,364 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.binding;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IBeanSlotValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.uri.BeanScope;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the {@link ViewEditpart}.
+ */
+@SuppressWarnings("restriction")
+public class BeanSlotValueBindingEndpointEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private BindingFactory bindingFactory = BindingFactory.eINSTANCE;
+	private CoreModelFactory factory = CoreModelFactory.eINSTANCE;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+
+		// initialize default realm
+		new DefaultBindingManager.DefaultRealm();
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getObservable_NPE() {
+		// END SUPRESS CATCH EXCEPTION
+		YBeanSlotValueBindingEndpoint yEndpoint = factory
+				.createYBeanSlotValueBindingEndpoint();
+		yEndpoint.setAttributePath("Huhu");
+		yEndpoint.setBeanSlot(factory.createYBeanSlot());
+		IBeanSlotValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(new ViewContext(), yEndpoint);
+
+		try {
+			editpart.getObservable();
+			fail();
+		} catch (RuntimeException e) {
+			// expected
+			assertEquals("null is not a valid super type!", e.getMessage());
+		}
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getObservable_For_ViewContext() {
+		// END SUPRESS CATCH EXCEPTION
+		YView yView = factory.createYView();
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+		context.setBean("bean1", new Bean("Test"));
+
+		// add a bean slot
+		YBeanSlot yBeanSlot = factory.createYBeanSlot();
+		yBeanSlot.setName("myFoo");
+		yBeanSlot.setValueType(Bean.class);
+		yView.getBeanSlots().add(yBeanSlot);
+
+		// create the model endpoint and register
+		YBeanSlotValueBindingEndpoint yEndpoint = factory
+				.createYBeanSlotValueBindingEndpoint();
+		yEndpoint.setBeanSlot(yBeanSlot);
+		yEndpoint.setAttributePath("value");
+
+		IBeanSlotValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(context, yEndpoint);
+		IObservableValue value = editpart.getObservable();
+
+		final int[] counter = new int[1];
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+		assertEquals(0, counter[0]);
+
+		context.setBean("myFoo", new Bean("Test2"));
+		assertEquals(1, counter[0]);
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_bind() {
+		// END SUPRESS CATCH EXCEPTION
+
+		YView yView = factory.createYView();
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+		context.createBeanSlot("slo1", String.class);
+		YBindingSet bs = bindingFactory.createYBindingSet();
+		yView.setBindingSet(bs);
+
+		// add a bean slot
+		YBeanSlot yBeanSlot = factory.createYBeanSlot();
+		yBeanSlot.setName("myFoo");
+		yBeanSlot.setValueType(Bean.class);
+		yView.getBeanSlots().add(yBeanSlot);
+
+		// activate the bindingSet editpart
+		//
+		IBindingSetEditpart bsEditpart = editpartManager.getEditpart(context, bs);
+		bsEditpart.setBindingManager(new DefaultBindingManager());
+		bsEditpart.activate();
+
+		// context endpoint
+		//
+		YBeanSlotValueBindingEndpoint yTargetEndpoint = factory
+				.createYBeanSlotValueBindingEndpoint();
+		yTargetEndpoint.setBeanSlot(yBeanSlot);
+		yTargetEndpoint.setAttributePath("value");
+
+		// bean endpoint
+		//
+		Bean bean = new Bean("Test");
+		YBeanValueBindingEndpoint yModelEndpoint = BindingFactory.eINSTANCE
+				.createYBeanValueBindingEndpoint();
+		yModelEndpoint.setBean(bean);
+		yModelEndpoint.setPropertyPath("value");
+
+		bs.addBinding(yTargetEndpoint, yModelEndpoint);
+
+		// write to bean
+		BeanScope scope = URIHelper.toScope("view://bean/myFoo#value")
+				.getBeanScope();
+		assertEquals(bean.getValue(), (String) scope.access(context));
+
+		bean.setValue("Othervalue");
+		assertEquals(bean.getValue(), (String) scope.access(context));
+
+		// write to context
+		scope.accessBeanSlot(context).setValue("FromContext");
+		assertEquals(bean.getValue(), "FromContext");
+
+	}
+
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_bind_WithList() {
+		// END SUPRESS CATCH EXCEPTION
+
+		YView yView = factory.createYView();
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+		YBindingSet bs = bindingFactory.createYBindingSet();
+		yView.setBindingSet(bs);
+
+		// add a bean slot
+		YBeanSlot yBeanSlot = factory.createYBeanSlot();
+		yBeanSlot.setName("myFoo");
+		yBeanSlot.setValueType(Bean.class);
+		yView.getBeanSlots().add(yBeanSlot);
+
+		// activate the bindingSet editpart
+		//
+		IBindingSetEditpart bsEditpart = editpartManager.getEditpart(context, bs);
+		bsEditpart.setBindingManager(new DefaultBindingManager());
+		bsEditpart.activate();
+
+		// context endpoint
+		//
+		YBeanSlotValueBindingEndpoint yTargetEndpoint = factory
+				.createYBeanSlotValueBindingEndpoint();
+		yTargetEndpoint.setBeanSlot(yBeanSlot);
+		yTargetEndpoint.setAttributePath("value");
+
+		// bean endpoint
+		//
+		Bean bean = new Bean("Test");
+		YBeanValueBindingEndpoint yModelEndpoint = BindingFactory.eINSTANCE
+				.createYBeanValueBindingEndpoint();
+		yModelEndpoint.setBean(bean);
+		yModelEndpoint.setPropertyPath("value");
+
+		bs.addBinding(yTargetEndpoint, yModelEndpoint);
+
+		// write to bean
+		BeanScope scope = URIHelper.toScope("view://bean/myFoo#value")
+				.getBeanScope();
+		assertEquals(bean.getValue(), (String) scope.access(context));
+
+		bean.setValue("Othervalue");
+		assertEquals(bean.getValue(), (String) scope.access(context));
+
+		// write to context
+		scope.accessBeanSlot(context).setValue("FromContext");
+		assertEquals(bean.getValue(), "FromContext");
+
+	}
+
+	/**
+	 * Tests the disposal.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+
+		YBeanSlotValueBindingEndpoint yEndpoint = factory
+				.createYBeanSlotValueBindingEndpoint();
+		IBeanSlotValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(new ViewContext(), yEndpoint);
+
+		assertFalse(editpart.isDisposed());
+		editpart.dispose();
+		assertTrue(editpart.isDisposed());
+
+		// call twice
+		editpart.isDisposed();
+		editpart.dispose();
+
+		try {
+			editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getObservable();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			editpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			editpart.getId();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.removeDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+
+	public class Bean extends AbstractBean {
+
+		private String value;
+		private List<String> values = new ArrayList<String>();
+
+		public Bean(String value) {
+			super();
+			this.value = value;
+		}
+
+		/**
+		 * @return the value
+		 */
+		public String getValue() {
+			return value;
+		}
+
+		/**
+		 * @param value
+		 *            the value to set
+		 */
+		public void setValue(String value) {
+			firePropertyChanged("value", this.value, this.value = value);
+		}
+
+		public List<String> getValues() {
+			return values;
+		}
+
+		public void setValues(List<String> values) {
+			this.values = values;
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BeanValueBindingEndpointEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BeanValueBindingEndpointEditpartTest.java
new file mode 100644
index 0000000..25f5056
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BeanValueBindingEndpointEditpartTest.java
@@ -0,0 +1,275 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.binding;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBeanValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the {@link ViewEditpart}.
+ */
+@SuppressWarnings("restriction")
+public class BeanValueBindingEndpointEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private BindingFactory bindingFactory = BindingFactory.eINSTANCE;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+
+		// initialize default realm
+		new DefaultBindingManager.DefaultRealm();
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getObservable_Null() {
+		// END SUPRESS CATCH EXCEPTION
+		YBeanValueBindingEndpoint yEndpoint = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		IBeanValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(new ViewContext(), yEndpoint);
+		assertNull(editpart.getObservable());
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getObservable() {
+		// END SUPRESS CATCH EXCEPTION
+		YBindingSet bs = bindingFactory.createYBindingSet();
+		YValueBinding binding = bindingFactory.createYValueBinding();
+
+		Bean bean = new Bean("Test");
+		YBeanValueBindingEndpoint yEndpoint = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		yEndpoint.setBean(bean);
+		yEndpoint.setPropertyPath("value");
+		binding.setModelEndpoint(yEndpoint);
+		bs.addBinding(binding);
+
+		IBeanValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(new ViewContext(), yEndpoint);
+		IObservableValue value = editpart.getObservable();
+
+		final int[] counter = new int[1];
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+		assertEquals(0, counter[0]);
+
+		bean.setValue("Other");
+
+		assertEquals(1, counter[0]);
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getObservable_Nested() {
+		// END SUPRESS CATCH EXCEPTION
+		YBindingSet bs = bindingFactory.createYBindingSet();
+		YValueBinding binding = bindingFactory.createYValueBinding();
+
+		Bean inner = new Bean("InnerTest");
+		Bean outer = new Bean(inner);
+		YBeanValueBindingEndpoint yEndpoint = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		yEndpoint.setBean(outer);
+		yEndpoint.setPropertyPath("inner.value");
+		binding.setModelEndpoint(yEndpoint);
+		bs.addBinding(binding);
+
+		IBeanValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(new ViewContext(), yEndpoint);
+		IObservableValue value = editpart.getObservable();
+
+		final int[] counter = new int[1];
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+		assertEquals(0, counter[0]);
+
+		inner.setValue("OtherInner");
+		assertEquals(1, counter[0]);
+
+		outer.setInner(new Bean("newInner"));
+		assertEquals(2, counter[0]);
+	}
+
+	/**
+	 * Tests the disposal.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+		YBeanValueBindingEndpoint yEndpoint = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		IBeanValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(new ViewContext(), yEndpoint);
+
+		assertFalse(editpart.isDisposed());
+		editpart.dispose();
+		assertTrue(editpart.isDisposed());
+
+		// call twice
+		editpart.isDisposed();
+		editpart.dispose();
+
+		try {
+			editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getObservable();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			editpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			editpart.getId();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.removeDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+
+	public class Bean extends AbstractBean {
+
+		private String value;
+		private Bean inner;
+
+		public Bean(String value) {
+			super();
+			this.value = value;
+		}
+
+		public Bean(Bean inner) {
+			super();
+			this.inner = inner;
+		}
+
+		/**
+		 * @return the value
+		 */
+		public String getValue() {
+			return value;
+		}
+
+		/**
+		 * @param value
+		 *            the value to set
+		 */
+		public void setValue(String value) {
+			firePropertyChanged("value", this.value, this.value = value);
+		}
+
+		/**
+		 * @return the inner
+		 */
+		public Bean getInner() {
+			return inner;
+		}
+
+		/**
+		 * @param inner
+		 *            the inner to set
+		 */
+		public void setInner(Bean inner) {
+			firePropertyChanged("inner", this.inner, this.inner = inner);
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BindingEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BindingEditpartTest.java
new file mode 100644
index 0000000..1f521cc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BindingEditpartTest.java
@@ -0,0 +1,391 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.binding;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IValueBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the {@link ViewEditpart}.
+ */
+@SuppressWarnings("restriction")
+public class BindingEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private BindingFactory bindingFactory = BindingFactory.eINSTANCE;
+	private CoreModelFactory factory = CoreModelFactory.eINSTANCE;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+	}
+
+	/**
+	 * Tests the bind method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_bind_withoutBindingSet() {
+		// END SUPRESS CATCH EXCEPTION
+		YBinding yBinding = bindingFactory.createYValueBinding();
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), yBinding);
+
+		assertFalse(bindingEditpart.isBound());
+		bindingEditpart.bind();
+		assertFalse(bindingEditpart.isBound());
+
+		bindingEditpart.dispose();
+	}
+
+	/**
+	 * Tests the bind method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_bind_exception() {
+		// END SUPRESS CATCH EXCEPTION
+		YValueBinding yBinding = bindingFactory.createYValueBinding();
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), yBinding);
+
+		Bean bean1 = new Bean("value");
+		Bean bean2 = new Bean("value");
+		YBeanValueBindingEndpoint ep1 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		YBeanValueBindingEndpoint ep2 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		ep1.setBean(bean1);
+		ep2.setBean(bean2);
+		yBinding.setModelEndpoint(ep1);
+		yBinding.setTargetEndpoint(ep2);
+
+		bindingEditpart.bind();
+
+		bindingEditpart.dispose();
+	}
+
+	/**
+	 * Tests the activation.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_bind_unbind() {
+		// END SUPRESS CATCH EXCEPTION
+		YBindingSet yBindingSet = bindingFactory.createYBindingSet();
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), yBindingSet);
+		bindingSetEditpart.setBindingManager(new DefaultBindingManager());
+
+		YValueBinding yBinding = bindingFactory.createYValueBinding();
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), yBinding);
+
+		Bean bean1 = new Bean("value");
+		Bean bean2 = new Bean("value");
+		YBeanValueBindingEndpoint ep1 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		YBeanValueBindingEndpoint ep2 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		ep1.setBean(bean1);
+		ep1.setPropertyPath("value");
+		ep2.setBean(bean2);
+		ep2.setPropertyPath("value");
+		yBinding.setModelEndpoint(ep1);
+		yBinding.setTargetEndpoint(ep2);
+
+		assertFalse(bindingEditpart.isBound());
+		bindingSetEditpart.addBinding(bindingEditpart);
+		assertTrue(bindingEditpart.isBound());
+
+		bean1.setValue("test1");
+		assertEquals("test1", bean1.getValue());
+		assertEquals("test1", bean2.getValue());
+
+		bean2.setValue("test2");
+		assertEquals("test2", bean1.getValue());
+		assertEquals("test2", bean2.getValue());
+
+		bindingEditpart.unbind();
+		assertFalse(bindingEditpart.isBound());
+		bean1.setValue("test3");
+		assertEquals("test3", bean1.getValue());
+		assertEquals("test2", bean2.getValue());
+		bean2.setValue("test4");
+		assertEquals("test4", bean2.getValue());
+		assertEquals("test3", bean1.getValue());
+
+		bindingEditpart.bind();
+		assertTrue(bindingEditpart.isBound());
+		assertEquals("test3", bean1.getValue());
+		assertEquals("test3", bean2.getValue());
+
+		bindingSetEditpart.removeBinding(bindingEditpart);
+		assertTrue(bindingEditpart.isDisposed());
+
+		bean1.setValue("test5");
+		assertEquals("test5", bean1.getValue());
+		assertEquals("test3", bean2.getValue());
+	}
+
+	/**
+	 * Tests the disposal.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+		YBinding yBinding = bindingFactory.createYValueBinding();
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), yBinding);
+
+		assertFalse(bindingEditpart.isDisposed());
+		bindingEditpart.dispose();
+		assertTrue(bindingEditpart.isDisposed());
+
+		bindingEditpart.isDisposed();
+		bindingEditpart.dispose();
+
+		try {
+			bindingEditpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			bindingEditpart.bind();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			bindingEditpart.unbind();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			bindingEditpart.getModelEndpoint();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			bindingEditpart.getTargetEndpoint();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			bindingEditpart.setModelEndpoint(null);
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			bindingEditpart.setTargetEndpoint(null);
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			bindingEditpart.getId();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			bindingEditpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			bindingEditpart.removeDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+
+	/**
+	 * Tests setEndpoint by model.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_setEndpoint_byModel() {
+		// END SUPRESS CATCH EXCEPTION
+		// ...> view1
+		YValueBinding binding = bindingFactory.createYValueBinding();
+		YValueBindingEndpoint targetEndpoint = factory
+				.createYContextValueBindingEndpoint();
+		YValueBindingEndpoint modelEndpoint = factory
+				.createYContextValueBindingEndpoint();
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), binding);
+		IBindableValueEndpointEditpart targetEndpointEditpart = editpartManager
+				.getEditpart(new ViewContext(), targetEndpoint);
+		IBindableValueEndpointEditpart modelEndpointEditpart = editpartManager
+				.getEditpart(new ViewContext(), modelEndpoint);
+
+		// set the value
+		//
+		binding.setTargetEndpoint(targetEndpoint);
+		assertSame(targetEndpointEditpart, bindingEditpart.getTargetEndpoint());
+		assertFalse(targetEndpointEditpart.isDisposed());
+		assertNull(bindingEditpart.getModelEndpoint());
+
+		binding.setModelEndpoint(modelEndpoint);
+		assertSame(modelEndpointEditpart, bindingEditpart.getModelEndpoint());
+		assertFalse(modelEndpointEditpart.isDisposed());
+
+		binding.setTargetEndpoint(null);
+		assertNull(bindingEditpart.getTargetEndpoint());
+		assertSame(modelEndpointEditpart, bindingEditpart.getModelEndpoint());
+		assertFalse(targetEndpointEditpart.isDisposed());
+
+		binding.setModelEndpoint(null);
+		assertNull(bindingEditpart.getTargetEndpoint());
+		assertNull(bindingEditpart.getModelEndpoint());
+		assertFalse(targetEndpointEditpart.isDisposed());
+
+	}
+
+	/**
+	 * Tests setEndpoint by editPart.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_setEndpoint_byEditPart() {
+		// END SUPRESS CATCH EXCEPTION
+		// ...> view1
+		YBinding binding = bindingFactory.createYValueBinding();
+		YBindingEndpoint targetEndpoint = factory
+				.createYContextValueBindingEndpoint();
+		YBindingEndpoint modelEndpoint = factory
+				.createYContextValueBindingEndpoint();
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), binding);
+		IBindableValueEndpointEditpart targetEndpointEditpart = editpartManager
+				.getEditpart(new ViewContext(), targetEndpoint);
+		IBindableValueEndpointEditpart modelEndpointEditpart = editpartManager
+				.getEditpart(new ViewContext(), modelEndpoint);
+
+		// set the value
+		//
+		bindingEditpart.setTargetEndpoint(targetEndpointEditpart);
+		assertSame(targetEndpoint, binding.getTargetEndpoint());
+		assertFalse(targetEndpointEditpart.isDisposed());
+		assertNull(binding.getModelEndpoint());
+
+		bindingEditpart.setModelEndpoint(modelEndpointEditpart);
+		assertSame(modelEndpoint, binding.getModelEndpoint());
+		assertFalse(modelEndpointEditpart.isDisposed());
+
+		bindingEditpart.setTargetEndpoint(null);
+		assertNull(binding.getTargetEndpoint());
+		assertSame(modelEndpoint, binding.getModelEndpoint());
+		assertFalse(targetEndpointEditpart.isDisposed());
+
+		bindingEditpart.setModelEndpoint(null);
+		assertNull(binding.getTargetEndpoint());
+		assertNull(binding.getModelEndpoint());
+		assertFalse(targetEndpointEditpart.isDisposed());
+
+	}
+
+	public class Bean extends AbstractBean {
+
+		private String value;
+
+		public Bean(String value) {
+			super();
+			this.value = value;
+		}
+
+		/**
+		 * @return the value
+		 */
+		public String getValue() {
+			return value;
+		}
+
+		/**
+		 * @param value
+		 *            the value to set
+		 */
+		public void setValue(String value) {
+			firePropertyChanged("value", this.value, this.value = value);
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BindingSetEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BindingSetEditpartTest.java
new file mode 100644
index 0000000..9a37cd0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/BindingSetEditpartTest.java
@@ -0,0 +1,522 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.binding;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IValueBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.util.SimpleExtensionModelFactory;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the {@link ViewEditpart}.
+ */
+@SuppressWarnings("restriction")
+public class BindingSetEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private BindingFactory bindingFactory = BindingFactory.eINSTANCE;
+	private SimpleExtensionModelFactory elementFactory = new SimpleExtensionModelFactory();
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+	}
+
+	/**
+	 * Tests the activation.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_bindAll() {
+		// END SUPRESS CATCH EXCEPTION
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), bindingSet);
+
+		assertFalse(bindingSetEditpart.isActive());
+		bindingSetEditpart.activate();
+		assertTrue(bindingSetEditpart.isActive());
+
+		bindingSetEditpart.dispose();
+	}
+
+	/**
+	 * Tests setContent by editPart.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getView() {
+		// END SUPRESS CATCH EXCEPTION
+		// ...> view1
+		YView view1 = CoreModelFactory.eINSTANCE.createYView();
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+		view1.setBindingSet(bindingSet);
+		IViewEditpart view1Editpart = editpartManager.getEditpart(
+				new ViewContext(), view1);
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), bindingSet);
+		assertEquals(view1Editpart, bindingSetEditpart.getView());
+	}
+
+	/**
+	 * Tests the disposal.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), bindingSet);
+
+		assertFalse(bindingSetEditpart.isDisposed());
+		bindingSetEditpart.dispose();
+		assertTrue(bindingSetEditpart.isDisposed());
+
+		bindingSetEditpart.isDisposed();
+		bindingSetEditpart.dispose();
+
+		try {
+			bindingSetEditpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			bindingSetEditpart.activate();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			bindingSetEditpart.isActive();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			bindingSetEditpart.getId();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			bindingSetEditpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			bindingSetEditpart
+					.removeDisposeListener(new IDisposable.Listener() {
+						@Override
+						public void notifyDisposed(IDisposable notifier) {
+						}
+					});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+
+	/**
+	 * Tests add and remove.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_addRemoveBinding_byModel() {
+		// END SUPRESS CATCH EXCEPTION
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), bindingSet);
+		bindingSetEditpart.setBindingManager(new DefaultBindingManager());
+
+		YValueBinding binding = bindingFactory.createYValueBinding();
+		Bean bean1 = new Bean("value");
+		Bean bean2 = new Bean("value");
+		YBeanValueBindingEndpoint ep1 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		YBeanValueBindingEndpoint ep2 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		ep1.setBean(bean1);
+		ep1.setPropertyPath("value");
+		ep2.setBean(bean2);
+		ep2.setPropertyPath("value");
+		binding.setModelEndpoint(ep1);
+		binding.setTargetEndpoint(ep2);
+		bindingSet.addBinding(binding);
+
+		// test binded
+		bean1.setValue("test1");
+		assertEquals("test1", bean1.getValue());
+		assertEquals("test1", bean2.getValue());
+
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), binding);
+		assertFalse(bindingSetEditpart.isActive());
+		assertEquals(1, bindingSetEditpart.getBindings().size());
+		assertSame(bindingEditpart, bindingSetEditpart.getBindings().get(0));
+		assertTrue(bindingEditpart.isBound());
+
+		// remove the binding
+		//
+		bindingSet.removeBinding(binding);
+		// test unbinded
+		bean1.setValue("test2");
+		assertEquals("test2", bean1.getValue());
+		assertEquals("test1", bean2.getValue());
+
+		assertEquals(0, bindingSetEditpart.getBindings().size());
+		assertTrue(bindingEditpart.isDisposed());
+		// ensure that editpart was detached
+		assertNull(editpartManager.findEditpart(binding));
+	}
+
+	/**
+	 * Tests add and remove.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_addRemoveBinding_byModel_II() {
+		// END SUPRESS CATCH EXCEPTION
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), bindingSet);
+		bindingSetEditpart.setBindingManager(new DefaultBindingManager());
+
+		Bean bean1 = new Bean("value");
+		Bean bean2 = new Bean("value");
+		YBeanValueBindingEndpoint ep1 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		YBeanValueBindingEndpoint ep2 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		ep1.setBean(bean1);
+		ep1.setPropertyPath("value");
+		ep2.setBean(bean2);
+		ep2.setPropertyPath("value");
+
+		// use helper method
+		YValueBinding binding = bindingSet.addBinding(ep1, ep2);
+
+		// test binded
+		bean1.setValue("test1");
+		assertEquals("test1", bean1.getValue());
+		assertEquals("test1", bean2.getValue());
+
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), binding);
+		assertFalse(bindingSetEditpart.isActive());
+		assertEquals(1, bindingSetEditpart.getBindings().size());
+		assertSame(bindingEditpart, bindingSetEditpart.getBindings().get(0));
+		assertTrue(bindingEditpart.isBound());
+
+		// remove the binding
+		//
+		bindingSet.removeBinding(binding);
+		// test unbinded
+		bean1.setValue("test2");
+		assertEquals("test2", bean1.getValue());
+		assertEquals("test1", bean2.getValue());
+
+		assertEquals(0, bindingSetEditpart.getBindings().size());
+		assertTrue(bindingEditpart.isDisposed());
+		// ensure that editpart was detached
+		assertNull(editpartManager.findEditpart(binding));
+	}
+
+	/**
+	 * Tests adding a binding. But the binding set is not initialized yet!
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_addRemoveBinding_byModel__but_BindingSet_NotInitialized() {
+		// END SUPRESS CATCH EXCEPTION
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+
+		YValueBinding binding = bindingFactory.createYValueBinding();
+		Bean bean1 = new Bean("value");
+		Bean bean2 = new Bean("value");
+		YBeanValueBindingEndpoint ep1 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		YBeanValueBindingEndpoint ep2 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		ep1.setBean(bean1);
+		ep1.setPropertyPath("value");
+		ep2.setBean(bean2);
+		ep2.setPropertyPath("value");
+		binding.setModelEndpoint(ep1);
+		binding.setTargetEndpoint(ep2);
+		bindingSet.addBinding(binding);
+
+		//
+		// initialize the binding set late
+		//
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), bindingSet);
+		bindingSetEditpart.setBindingManager(new DefaultBindingManager());
+
+		// test binded
+		bean1.setValue("test1");
+		assertEquals("test1", bean1.getValue());
+		assertEquals("value", bean2.getValue());
+
+		// activate binding set
+		bindingSetEditpart.activate();
+		bean1.setValue("test2");
+		assertEquals("test2", bean1.getValue());
+		assertEquals("test2", bean2.getValue());
+
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), binding);
+		assertEquals(1, bindingSetEditpart.getBindings().size());
+		assertSame(bindingEditpart, bindingSetEditpart.getBindings().get(0));
+		assertTrue(bindingEditpart.isBound());
+
+		// remove the binding
+		//
+		bindingSet.removeBinding(binding);
+		// test unbinded
+		bean1.setValue("test3");
+		assertEquals("test3", bean1.getValue());
+		assertEquals("test2", bean2.getValue());
+
+		assertEquals(0, bindingSetEditpart.getBindings().size());
+		assertTrue(bindingEditpart.isDisposed());
+		// ensure that editpart was detached
+		assertNull(editpartManager.findEditpart(binding));
+	}
+
+	/**
+	 * Tests add and remove.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_addRemoveBinding_byEditPart() {
+		// END SUPRESS CATCH EXCEPTION
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), bindingSet);
+		bindingSetEditpart.setBindingManager(new DefaultBindingManager());
+
+		// create binding
+		YValueBinding binding = bindingFactory.createYValueBinding();
+		Bean bean1 = new Bean("value");
+		Bean bean2 = new Bean("value");
+		YBeanValueBindingEndpoint ep1 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		YBeanValueBindingEndpoint ep2 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		ep1.setBean(bean1);
+		ep1.setPropertyPath("value");
+		ep2.setBean(bean2);
+		ep2.setPropertyPath("value");
+		binding.setModelEndpoint(ep1);
+		binding.setTargetEndpoint(ep2);
+
+		IValueBindingEditpart bindingEditpart = editpartManager.getEditpart(
+				new ViewContext(), binding);
+		assertFalse(bindingSetEditpart.isActive());
+
+		bindingSetEditpart.addBinding(bindingEditpart);
+		// test binded
+		bean1.setValue("test1");
+		assertEquals("test1", bean1.getValue());
+		assertEquals("test1", bean2.getValue());
+
+		assertFalse(bindingSetEditpart.isActive());
+		assertEquals(1, bindingSetEditpart.getBindings().size());
+		assertSame(bindingEditpart, bindingSetEditpart.getBindings().get(0));
+		assertTrue(bindingEditpart.isBound());
+
+		// unset the layout
+		//
+		bindingSet.removeBinding(binding);
+		// test unbinded
+		bean1.setValue("test2");
+		assertEquals("test2", bean1.getValue());
+		assertEquals("test1", bean2.getValue());
+
+		assertEquals(0, bindingSetEditpart.getBindings().size());
+		assertTrue(bindingEditpart.isDisposed());
+		// ensure that editpart was detached
+		assertNull(editpartManager.findEditpart(binding));
+	}
+
+	/**
+	 * Tests getBindings method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getBindings() {
+		// END SUPRESS CATCH EXCEPTION
+		// ...> view1
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), bindingSet);
+		bindingSetEditpart.setBindingManager(new DefaultBindingManager());
+
+		// add binding 1
+		YValueBinding binding = bindingFactory.createYValueBinding();
+		Bean bean1 = new Bean("value");
+		Bean bean2 = new Bean("value");
+		YBeanValueBindingEndpoint ep1 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		YBeanValueBindingEndpoint ep2 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		ep1.setBean(bean1);
+		ep1.setPropertyPath("value");
+		ep2.setBean(bean2);
+		ep2.setPropertyPath("value");
+		binding.setModelEndpoint(ep1);
+		binding.setTargetEndpoint(ep2);
+		bindingSet.addBinding(binding);
+
+		// add binding 2
+		YValueBinding binding2 = bindingFactory.createYValueBinding();
+		Bean bean2_1 = new Bean("value");
+		Bean bean2_2 = new Bean("value");
+		YBeanValueBindingEndpoint ep2_1 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		YBeanValueBindingEndpoint ep2_2 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		ep2_1.setBean(bean2_1);
+		ep2_1.setPropertyPath("value");
+		ep2_2.setBean(bean2_2);
+		ep2_2.setPropertyPath("value");
+		binding2.setModelEndpoint(ep2_1);
+		binding2.setTargetEndpoint(ep2_2);
+		bindingSet.addBinding(binding2);
+
+		List<IBindingEditpart<?>> bindings = bindingSetEditpart.getBindings();
+		assertSame(binding, bindings.get(0).getModel());
+		assertSame(binding2, bindings.get(1).getModel());
+
+		// remove the binding
+		//
+		bindingSet.removeBinding(binding);
+		bindings = bindingSetEditpart.getBindings();
+		assertEquals(1, bindings.size());
+		assertSame(binding2, bindings.get(0).getModel());
+	}
+
+	@Test
+	public void test_findBindingsFor() {
+
+		// END SUPRESS CATCH EXCEPTION
+		// ...> view1
+		YBindingSet bindingSet = bindingFactory.createYBindingSet();
+		IBindingSetEditpart bindingSetEditpart = editpartManager.getEditpart(
+				new ViewContext(), bindingSet);
+		bindingSetEditpart.setBindingManager(new DefaultBindingManager());
+
+		YTextField text1 = elementFactory.createTextField();
+
+		// add binding 1
+		YValueBinding binding = bindingFactory.createYValueBinding();
+		Bean bean1 = new Bean("value");
+		YBeanValueBindingEndpoint ep1 = bindingFactory
+				.createYBeanValueBindingEndpoint();
+		YEmbeddableValueEndpoint ep2 = text1.createValueEndpoint();
+		ep1.setBean(bean1);
+		ep1.setPropertyPath("value");
+		binding.setModelEndpoint(ep1);
+		binding.setTargetEndpoint(ep2);
+		bindingSet.addBinding(binding);
+
+		List<IBindingEditpart<?>> result = bindingSetEditpart
+				.findBindings(text1);
+		Assert.assertEquals(1, result.size());
+		IBindingEditpart<?> bindingResult = result.get(0);
+		Assert.assertSame(bindingResult.getModelEndpoint().getModel(), ep1);
+		Assert.assertSame(bindingResult.getTargetEndpoint().getModel(), ep2);
+		Assert.assertSame(binding, bindingResult.getModel());
+
+	}
+
+	public class Bean extends AbstractBean {
+
+		private String value;
+
+		public Bean(String value) {
+			super();
+			this.value = value;
+		}
+
+		/**
+		 * @return the value
+		 */
+		public String getValue() {
+			return value;
+		}
+
+		/**
+		 * @param value
+		 *            the value to set
+		 */
+		public void setValue(String value) {
+			firePropertyChanged("value", this.value, this.value = value);
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/ContextValueBindingEndpointEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/ContextValueBindingEndpointEditpartTest.java
new file mode 100644
index 0000000..9cadd6b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/ContextValueBindingEndpointEditpartTest.java
@@ -0,0 +1,288 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.binding;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IContextValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ViewEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.uri.BeanScope;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the {@link ViewEditpart}.
+ */
+@SuppressWarnings("restriction")
+public class ContextValueBindingEndpointEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private BindingFactory bindingFactory = BindingFactory.eINSTANCE;
+	private CoreModelFactory factory = CoreModelFactory.eINSTANCE;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+
+		// initialize default realm
+		new DefaultBindingManager.DefaultRealm();
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getObservable_NPE() {
+		// END SUPRESS CATCH EXCEPTION
+		YContextValueBindingEndpoint yEndpoint = factory
+				.createYContextValueBindingEndpoint();
+		ViewContext context = new ViewContext();
+		IContextValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(context, yEndpoint);
+
+		try {
+			editpart.getObservable();
+			fail();
+		} catch (RuntimeException e) {
+			// expected
+			assertEquals("View must not be null!", e.getMessage());
+		}
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getObservable() {
+		// END SUPRESS CATCH EXCEPTION
+		YView view = factory.createYView();
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, view);
+		context.setBean("bean1", new Bean("Test"));
+		YBindingSet bs = bindingFactory.createYBindingSet();
+		view.setBindingSet(bs);
+		YValueBinding binding = bindingFactory.createYValueBinding();
+
+		YContextValueBindingEndpoint yEndpoint = factory
+				.createYContextValueBindingEndpoint();
+		yEndpoint.setUrlString("view://bean/bean1#value");
+		binding.setModelEndpoint(yEndpoint);
+		bs.addBinding(binding);
+
+		IContextValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(context, yEndpoint);
+		IObservableValue value = editpart.getObservable();
+
+		final int[] counter = new int[1];
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+		assertEquals(0, counter[0]);
+
+		context.setBean("bean1", new Bean("Test2"));
+		assertEquals(1, counter[0]);
+	}
+
+	/**
+	 * Tests the getObservable method without a valid view.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_bind() {
+		// END SUPRESS CATCH EXCEPTION
+
+		YView view = factory.createYView();
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, view);
+		context.createBeanSlot("slo1", String.class);
+		YBindingSet bs = bindingFactory.createYBindingSet();
+		view.setBindingSet(bs);
+
+		// activate the bindingSet editpart
+		//
+		IBindingSetEditpart bsEditpart = editpartManager.getEditpart(
+				context, bs);
+		bsEditpart.setBindingManager(new DefaultBindingManager());
+		bsEditpart.activate();
+
+		// context endpoint
+		//
+		YContextValueBindingEndpoint yTargetEndpoint = factory
+				.createYContextValueBindingEndpoint();
+		yTargetEndpoint.setUrlString("view://bean/slo1#value");
+
+		// bean endpoint
+		//
+		Bean bean = new Bean("Test");
+		YBeanValueBindingEndpoint yModelEndpoint = BindingFactory.eINSTANCE
+				.createYBeanValueBindingEndpoint();
+		yModelEndpoint.setBean(bean);
+		yModelEndpoint.setPropertyPath("value");
+
+		bs.addBinding(yTargetEndpoint, yModelEndpoint);
+
+		// write to bean
+		BeanScope scope = URIHelper.toScope("view://bean/slo1#value")
+				.getBeanScope();
+		assertEquals(bean.getValue(), (String) scope.access(context));
+
+		bean.setValue("Othervalue");
+		assertEquals(bean.getValue(), (String) scope.access(context));
+
+		// write to context
+		scope.accessBeanSlot(context).setValue("FromContext");
+		assertEquals(bean.getValue(), "FromContext");
+
+	}
+
+	/**
+	 * Tests the disposal.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+		YContextValueBindingEndpoint yEndpoint = factory
+				.createYContextValueBindingEndpoint();
+		ViewContext context = new ViewContext();
+		IContextValueBindingEndpointEditpart editpart = editpartManager
+				.getEditpart(context, yEndpoint);
+
+		assertFalse(editpart.isDisposed());
+		editpart.dispose();
+		assertTrue(editpart.isDisposed());
+
+		// call twice
+		editpart.isDisposed();
+		editpart.dispose();
+
+		try {
+			editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getObservable();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			editpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+		try {
+			editpart.getId();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getModel();
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.removeDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+
+	public class Bean extends AbstractBean {
+
+		private String value;
+
+		public Bean(String value) {
+			super();
+			this.value = value;
+		}
+
+		/**
+		 * @return the value
+		 */
+		public String getValue() {
+			return value;
+		}
+
+		/**
+		 * @param value
+		 *            the value to set
+		 */
+		public void setValue(String value) {
+			firePropertyChanged("value", this.value, this.value = value);
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/DefaultBindingManager.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/DefaultBindingManager.java
new file mode 100644
index 0000000..f02a3a4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/binding/DefaultBindingManager.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.binding;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.osbp.ecview.core.common.binding.AbstractBindingManager;
+
+public class DefaultBindingManager extends AbstractBindingManager {
+
+	public DefaultBindingManager() {
+		super(new DefaultRealm());
+	}
+
+	public static class DefaultRealm extends Realm {
+
+		public DefaultRealm() {
+			setDefault(this);
+		}
+
+		@Override
+		public boolean isCurrent() {
+			return true;
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/common/ResourceManagerTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/common/ResourceManagerTest.java
new file mode 100644
index 0000000..0d44498
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/common/ResourceManagerTest.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.common;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.junit.Assert;
+import org.junit.Test;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.common.IResourceManager;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.common.ResourceManager;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.internal.OrphanViewsResource;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * Tests the {@link ResourceManager}.
+ */
+@SuppressWarnings("restriction")
+public class ResourceManagerTest {
+
+	/**
+	 * Tests the getResource method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getResource() {
+		Resource r1_1 = ResourceManager.getInstance().getResource(
+				CoreModelPackage.eNS_URI);
+		Resource r1_2 = ResourceManager.getInstance().getResource(
+				CoreModelPackage.eNS_URI);
+		Assert.assertSame(r1_1, r1_2);
+
+		Resource r2_1 = ResourceManager.getInstance().getResource(
+				URI.createURI(CoreModelPackage.eNS_URI));
+		Resource r2_2 = ResourceManager.getInstance().getResource(
+				URI.createURI(CoreModelPackage.eNS_URI));
+		Assert.assertSame(r2_1, r2_2);
+
+		Resource r3_1 = ResourceManager.getInstance().getResource(
+				IResourceManager.ORPHAN_VIEW_RESOURCE_URI_STRING);
+		Resource r3_2 = ResourceManager.getInstance().getResource(
+				IResourceManager.ORPHAN_VIEW_RESOURCE_URI_STRING);
+		Assert.assertSame(r3_1, r3_2);
+		Assert.assertTrue(r3_1 instanceof OrphanViewsResource);
+
+		Resource r4_1 = ResourceManager.getInstance().getResource(
+				IResourceManager.ORPHAN_VIEW_RESOURCE_URI);
+		Resource r4_2 = ResourceManager.getInstance().getResource(
+				IResourceManager.ORPHAN_VIEW_RESOURCE_URI);
+		Assert.assertSame(r4_1, r4_2);
+		Assert.assertTrue(r4_1 instanceof OrphanViewsResource);
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the get resourceSet method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getResourceSet() {
+		// END SUPRESS CATCH EXCEPTION
+		Assert.assertNotNull(ResourceManager.getInstance().getResourceSet());
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/context/ViewContextTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/context/ViewContextTest.java
new file mode 100644
index 0000000..03a7e54
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/context/ViewContextTest.java
@@ -0,0 +1,780 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.context;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Future;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.concurrent.IExecutorService;
+import org.eclipse.osbp.ecview.core.common.context.ContextException;
+import org.eclipse.osbp.ecview.core.common.context.IContext;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeChangeEvent;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.notification.ILifecycleService;
+import org.eclipse.osbp.ecview.core.common.notification.LifecycleService;
+import org.eclipse.osbp.ecview.core.common.presentation.DelegatingPresenterFactory;
+import org.eclipse.osbp.ecview.core.common.presentation.IPresentationFactory;
+import org.eclipse.osbp.ecview.core.common.presentation.IViewPresentation;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.common.services.DelegatingServiceProviderManager;
+import org.eclipse.osbp.ecview.core.common.services.IServiceProvider;
+import org.eclipse.osbp.ecview.core.common.services.IUiKitBasedService;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the view context.
+ */
+public class ViewContextTest {
+
+	private EditpartManager editpartManager = new EditpartManager();
+	private DelegatingPresenterFactory presenterFactory = DelegatingPresenterFactory
+			.getInstance();
+	private ResourceSetImpl resourceSet;
+	private CoreModelFactory modelFactory = CoreModelFactory.eINSTANCE;
+	private ViewContext context;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		resourceSet = new ResourceSetImpl();
+		resourceSet
+				.getResourceFactoryRegistry()
+				.getExtensionToFactoryMap()
+				.put(Resource.Factory.Registry.DEFAULT_EXTENSION,
+						new XMIResourceFactoryImpl());
+		resourceSet.getPackageRegistry().put(CoreModelPackage.eNS_URI,
+				CoreModelPackage.eINSTANCE);
+
+		DelegatingEditPartManager manager = DelegatingEditPartManager
+				.getInstance();
+		manager.clear();
+		manager.addDelegate(new EditpartManager());
+
+		context = new ViewContext();
+		
+		YView yView = CoreModelFactory.eINSTANCE.createYView();
+		IViewEditpart viewEditPart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+		DelegatingServiceProviderManager.getInstance().clear();
+		context.registerService(ILifecycleService.class.getName(),
+				new LifecycleService(null));
+	}
+
+	/**
+	 * Tests {@link IViewContext#getBean(String)} and
+	 * {@link IViewContext#setBean(String, Object)}.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_valueBeans() {
+		// END SUPRESS CATCH EXCEPTION
+		Object bean1 = new Object();
+		Object bean2 = new Object();
+
+		// tests root bean
+		//
+		// test internal create bean
+		//
+		Assert.assertNull(context.getBean("bean1"));
+
+		// tests registering bean
+		//
+		context.setBean("bean1", bean1);
+		Assert.assertSame(bean1, context.getBean("bean1"));
+
+		context.setBean("bean1", bean2);
+		Assert.assertSame(bean2, context.getBean("bean1"));
+	}
+
+	/**
+	 * Tests {@link IViewContext#getBeanSlot(String)} and
+	 * {@link IViewContext#setBean(String, Object)}.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_slot() {
+		// END SUPRESS CATCH EXCEPTION
+		Object bean1 = new Object();
+		Object bean2 = new Object();
+
+		// test internal create bean
+		//
+		Assert.assertNull(context.getBeanSlot("bean1"));
+		ISlot slot = context.createBeanSlot("bean1", Object.class);
+		Assert.assertNull(slot.getValue());
+
+		// tests registering bean
+		//
+		context.setBean("bean1", bean1);
+		Assert.assertSame(bean1, context.getBeanSlot("bean1").getValue());
+		Assert.assertSame(bean1, slot.getValue());
+		Assert.assertSame(slot, context.getBeanSlot("bean1"));
+
+		context.setBean("bean1", bean2);
+		Assert.assertSame(bean2, context.getBeanSlot("bean1").getValue());
+		Assert.assertSame(bean2, slot.getValue());
+		Assert.assertSame(slot, context.getBeanSlot("bean1"));
+	}
+
+	/**
+	 * Tests {@link IViewContext#createBeanSlot(String, Class)}.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_createSlot() {
+		// END SUPRESS CATCH EXCEPTION
+		Person person1 = new Person();
+		Person person2 = new Person();
+
+		Assert.assertNull(context.getBeanSlot("person"));
+
+		ISlot slot = context.createBeanSlot("person", Person.class);
+		Assert.assertSame(Person.class, slot.getValueType());
+
+		Assert.assertNull(slot.getValue());
+
+		// tests registering bean
+		//
+		context.setBean("person", person1);
+		Assert.assertSame(person1, slot.getValue());
+
+		context.setBean("person", person2);
+		Assert.assertSame(person2, slot.getValue());
+	}
+
+	/**
+	 * Tests {@link IViewContext#createBeanSlot(String, Class)}.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_setBean() {
+		// END SUPRESS CATCH EXCEPTION
+		Person person = new Person();
+
+		Assert.assertNull(context.getBeanSlot("person"));
+
+		context.setBean("person", person);
+		ISlot slot = context.getBeanSlot("person");
+		Assert.assertSame(Person.class, slot.getValueType());
+		Assert.assertSame(person, slot.getValue());
+
+	}
+
+	/**
+	 * Tests {@link IViewContext#setBean(String, Object)}.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_setBean_Null_NoSlot() {
+		// END SUPRESS CATCH EXCEPTION
+
+		try {
+			context.setBean("person", null);
+			Assert.fail("not allowed to set null values if no slot exists!");
+		} catch (IllegalArgumentException e) {
+		}
+	}
+
+	/**
+	 * Tests {@link IViewContext#setBean(String, Object)}.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_setBean_Null() {
+		// END SUPRESS CATCH EXCEPTION
+		context.createBeanSlot("person", Person.class);
+
+		// is valid to set null value
+		context.setBean("person", null);
+	}
+
+	/**
+	 * Tests {@link IViewContext#setBean(String, Object)}.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_setBean_MatchingTypes() {
+
+		Person person = new Person();
+
+		// END SUPRESS CATCH EXCEPTION
+		context.createBeanSlot("person", Person.class);
+
+		// is valid to set null value
+		context.setBean("person", person);
+		context.setBean("person", null);
+		context.setBean("person", new PersonExtended());
+		try {
+			context.setBean("person", new Object());
+			Assert.fail("Type can not be set. Does not match contained type!");
+		} catch (Exception e) {
+		}
+	}
+
+	/**
+	 * Tests {@link IViewContext#getService(String)} and
+	 * {@link IViewContext#registerService(String, ISlot)} and
+	 * {@link IViewContext#unregisterService(String)}.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_services() {
+		// END SUPRESS CATCH EXCEPTION
+		Object service1 = new Object();
+		Object service2 = new Object();
+
+		// test null
+		//
+		Assert.assertNull(context.getService("service1"));
+
+		// tests registering bean
+		//
+		context.registerService("service1", service1);
+		Assert.assertSame(service1, context.getService("service1"));
+		context.registerService("service2", service2);
+		Assert.assertSame(service2, context.getService("service2"));
+
+		context.unregisterService("service1");
+		Assert.assertNull(context.getService("service1"));
+		Assert.assertSame(service2, context.getService("service2"));
+
+		context.unregisterService("service2");
+		Assert.assertNull(context.getService("service2"));
+	}
+
+	/**
+	 * Tests dispose.
+	 */
+	// BEGIN SUPRESS CATCH EXCEPTION
+	@Test
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+		Assert.assertFalse(context.isDisposed());
+		context.dispose();
+		Assert.assertTrue(context.isDisposed());
+
+		try {
+			context.addDisposeListener(null);
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.getPresentationURI();
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.getRootLayout();
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.getBean("test");
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.getViewEditpart();
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.isRendered();
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.setBean("test", new Object());
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.getService("test");
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.registerService("test", new Object());
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.unregisterService("test");
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.removeDisposeListener(null);
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.render("test", null, null);
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			context.setPresentationURI("test");
+			Assert.fail("must throw exception");
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+	}
+
+	/**
+	 * Test the dipose listeners.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose_listener() {
+		// END SUPRESS CATCH EXCEPTION
+		final int[] counter = new int[1];
+		IDisposable.Listener listener = new IDisposable.Listener() {
+			@Override
+			public void notifyDisposed(IDisposable notifier) {
+				counter[0]++;
+			}
+		};
+		context.addDisposeListener(listener);
+		Assert.assertEquals(0, counter[0]);
+		context.dispose();
+		Assert.assertEquals(1, counter[0]);
+	}
+
+	/**
+	 * Tests, that disposal will also dispose the containment childs.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose_delegateToContentEditpart() {
+		// END SUPRESS CATCH EXCEPTION
+		// ...> view1
+		// ......> layout1
+		// ...........> field1
+		// ...> view2
+		// ......> layout2
+		// ...........> field2
+		YView view1 = modelFactory.createYView();
+		YLayout layout1 = modelFactory.createYLayout();
+		view1.setContent(layout1);
+		YField field1 = modelFactory.createYField();
+		layout1.getElements().add(field1);
+
+		
+		ViewContext context1 = new ViewContext();
+		
+		// access the editparts from their parents
+		//
+		// view1
+		IViewEditpart view1Editpart = editpartManager.getEditpart(context1, view1);
+		// layout1
+		ILayoutEditpart layout1Editpart = editpartManager.getEditpart(context1, layout1);
+		// field1
+		IFieldEditpart field1Editpart = editpartManager.getEditpart(context1, field1);
+
+		// create view parts
+		//
+		context1.dispose();
+		Assert.assertTrue(context1.isDisposed());
+		Assert.assertTrue(layout1Editpart.isDisposed());
+		Assert.assertTrue(field1Editpart.isDisposed());
+	}
+
+	/**
+	 * Tests the getViewEditpart method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getViewEditpart() {
+		YView yView = CoreModelFactory.eINSTANCE.createYView();
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+		Assert.assertSame(viewEditpart, context.getViewEditpart());
+	}
+
+	/**
+	 * Tests the render method.
+	 * 
+	 * @throws ContextException
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_render() throws ContextException {
+		// END SUPRESS CATCH EXCEPTION
+		presenterFactory.clear();
+		presenterFactory.addDelegate(new PresenterFactory());
+		Assert.assertFalse(context.isRendered());
+
+		try {
+			context.render("test", new Object(), null);
+		} catch (ContextException e) {
+			throw e;
+		}
+
+		Assert.assertTrue(context.isRendered());
+		try {
+			context.render("test", new Object(), null);
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			Assert.assertEquals("Has already been rendered!", e.getMessage());
+		}
+	}
+
+	/**
+	 * Tests the rendering with a presenter of null.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_render_PresenterNull() {
+		// END SUPRESS CATCH EXCEPTION
+		presenterFactory.clear();
+		try {
+			context.render(null, new Object(), null);
+		} catch (ContextException e) {
+			Assert.assertEquals("Presenter must not be null!", e.getMessage());
+		}
+	}
+
+	/**
+	 * Tests the rendering with a layout of null.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_render_layoutNull() {
+		// END SUPRESS CATCH EXCEPTION
+		presenterFactory.clear();
+		try {
+			context.render("test", null, null);
+			Assert.fail();
+		} catch (ContextException e) {
+			Assert.assertEquals("RootLayout must not be null!", e.getMessage());
+		}
+	}
+
+	/**
+	 * Tests the rendering with a presentation URI of null.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_render_presentationURINull() {
+		// END SUPRESS CATCH EXCEPTION
+		presenterFactory.clear();
+		presenterFactory.addDelegate(new PresenterFactory());
+		try {
+			context.render(null, new Object(), null);
+		} catch (ContextException e) {
+			Assert.fail();
+		}
+	}
+
+	/**
+	 * Tests the getService method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getService() {
+		DelegatingServiceProviderManager manager = DelegatingServiceProviderManager
+				.getInstance();
+		manager.addDelegate(new ServiceProvider1(), null);
+		// getting service with the same selector have to be equal
+		Assert.assertNotNull(context.getService("Provider1"));
+		Assert.assertEquals(context.getService("Provider1"),
+				context.getService("Provider1"));
+	}
+
+	/**
+	 * Tests the getService method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_getOSGiService() {
+		Assert.assertNotNull(context.getService(IExecutorService.class
+				.getName()));
+	}
+
+	/**
+	 * A helper presenter factory.
+	 */
+	private static class PresenterFactory implements IPresentationFactory {
+
+		@Override
+		public boolean isFor(IViewContext uiContext, IElementEditpart editpart) {
+			return true;
+		}
+
+		@SuppressWarnings("unchecked")
+		@Override
+		public <A extends IWidgetPresentation<?>> A createPresentation(
+				IViewContext uiContext, IElementEditpart editpart) {
+			return (A) new Presentation();
+		}
+	}
+
+	/**
+	 * A helper presentation.
+	 */
+	@SuppressWarnings("rawtypes")
+	private static class Presentation implements IViewPresentation {
+
+		@Override
+		public boolean isDisposed() {
+			return false;
+		}
+
+		@Override
+		public void dispose() {
+
+		}
+
+		@Override
+		public void addDisposeListener(Listener listener) {
+
+		}
+
+		@Override
+		public void removeDisposeListener(Listener listener) {
+
+		}
+
+		@Override
+		public void unrender() {
+
+		}
+
+		@Override
+		public Object createWidget(Object parent) {
+			return null;
+		}
+
+		@Override
+		public Object getWidget() {
+			return null;
+		}
+
+		@Override
+		public boolean isRendered() {
+			return false;
+		}
+
+		@Override
+		public void render(Map options) {
+
+		}
+
+		@Override
+		public Object getModel() {
+			return null;
+		}
+
+		@Override
+		public IViewContext getViewContext() {
+			return null;
+		}
+
+		@Override
+		public IObservable getObservableValue(Object model) {
+			return null;
+		}
+
+		@Override
+		public Future execAsync(Runnable runnable) {
+			return null;
+		}
+
+		@Override
+		public void exec(Runnable runnable) {
+
+		}
+
+		@Override
+		public Set getUIBindings() {
+			return null;
+		}
+
+		@Override
+		public void resetVisibilityProperties() {
+			
+		}
+
+		@Override
+		public void notifyDatatypeChanged(DatatypeChangeEvent event) {
+			
+			
+		}
+
+		@Override
+		public boolean isDisposing() {
+			
+			return false;
+		}
+
+		@Override
+		public void apply(IVisibilityHandler handler) {
+			
+			
+		}
+
+		@Override
+		public void setContent(IEmbeddableEditpart editpart) {
+			
+			
+		}
+
+		@Override
+		public IEmbeddableEditpart getContent() {
+			
+			return null;
+		}
+
+		@Override
+		public IUiKitBasedService createService(Class serviceClass) {
+			
+			return null;
+		}
+
+		@Override
+		public void openDialog(IDialogEditpart dialogEditpart,
+				IBindableEndpointEditpart inputData) {
+			
+			
+		}
+
+		@Override
+		public void closeDialog(IDialogEditpart dialogEditpart) {
+			
+			
+		}
+
+		@Override
+		public void requestFocus(IElementEditpart toFocus) {
+			
+			
+		}
+
+		@Override
+		public void updateContentAlignment() {
+			
+		}
+
+		@Override
+		public void updateSpacings() {
+			
+		}
+
+	}
+
+	public static class Person {
+		private String name;
+
+		/**
+		 * @return the name
+		 */
+		public String getName() {
+			return name;
+		}
+
+		/**
+		 * @param name
+		 *            the name to set
+		 */
+		public void setName(String name) {
+			this.name = name;
+		}
+
+	}
+
+	private static class PersonExtended extends Person {
+
+	}
+
+	private class ServiceProvider1 implements IServiceProvider {
+
+		@Override
+		public boolean isFor(String selector, IContext context) {
+			return "Provider1".equals(selector);
+		}
+
+		@SuppressWarnings("unchecked")
+		@Override
+		public <A> A createService(String selector, IContext context) {
+			return (A) new Object();
+		}
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/datatypes/DatatypeEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/datatypes/DatatypeEditpartTest.java
new file mode 100644
index 0000000..64cf2db
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/datatypes/DatatypeEditpartTest.java
@@ -0,0 +1,88 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.datatypes;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class DatatypeEditpartTest {
+
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+	}
+
+	public void test_getCurrentState() {
+		Assert.fail();
+	}
+
+	public void test_internalGetValidatorsDelta() {
+		Assert.fail();
+	}
+
+	public void test_internalGetAllValidators() {
+		Assert.fail();
+	}
+
+	public void test_addRemoveBridge() {
+		Assert.fail();
+	}
+
+	public void test_getValidatorsForBridge() {
+		Assert.fail();
+	}
+
+	public void test_datatypeChangeEvent() {
+		Assert.fail();
+	}
+
+	public void test_datatypeChangeEvent_ByChangingValiationConfigAttribute() {
+		// for instance change the minLength property in datatype
+		Assert.fail();
+	}
+
+	public void test_notifyDatatypeChanged() {
+		Assert.fail();
+	}
+
+	public void test_internalGetValidationSettings() {
+		Assert.fail();
+	}
+
+	public void test_findToRemoveValidators() {
+		Assert.fail();
+	}
+
+	public void test_ClassValidatorDelta() {
+		Assert.fail();
+	}
+
+	public void test_MemoryLeaks() {
+		Assert.fail();
+	}
+
+	public void test_ConcurrentAccess() {
+		Assert.fail();
+	}
+
+	public void test_validatorDelta_ForDifferentNotifications() {
+		// ValidatorDelta should be tested:
+		// addValidators
+		// removeValidators
+		// and different cases between
+		Assert.fail();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/datatypes/ValidatorByConfigFactoryTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/datatypes/ValidatorByConfigFactoryTest.java
new file mode 100644
index 0000000..4c3b8ae
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/datatypes/ValidatorByConfigFactoryTest.java
@@ -0,0 +1,79 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.datatypes;
+
+import org.junit.Assert;
+
+public class ValidatorByConfigFactoryTest {
+
+	public void test_createMinLengthValidator() {
+		Assert.fail();
+	}
+
+	public void test_createMaxLengthValidator() {
+		Assert.fail();
+	}
+
+	public void test_createRegExpressionValidator() {
+		Assert.fail();
+	}
+
+	public void test_internalGetValidatorsDelta() {
+		Assert.fail();
+	}
+
+	public void test_findToRemoveValidators() {
+		Assert.fail();
+	}
+
+	public void test_getAllValidators() {
+		Assert.fail();
+	}
+
+	public void test_createMaxLengthValidator_ChangingProperty_FromNoValidatorToValidator() {
+		Assert.fail();
+	}
+
+	public void test_createMinLengthValidator_ChangingProperty_FromNoValidatorToValidator() {
+		Assert.fail();
+	}
+
+	public void test_createRegexpValidator_ChangingProperty_FromNoValidatorToValidator() {
+		Assert.fail();
+	}
+
+	public void test_createMaxLengthValidator_ChangingProperty_FromValidatorToNoValidator() {
+		Assert.fail();
+	}
+
+	public void test_createMinLengthValidator_ChangingProperty_FromValidatorToNoValidator() {
+		Assert.fail();
+	}
+
+	public void test_createRegexpValidator_ChangingProperty_FromValidatorToNoValidator() {
+		Assert.fail();
+	}
+
+	public void test_createMaxLengthValidator_ChangingProperty_FromValidatorToValidator() {
+		Assert.fail();
+	}
+
+	public void test_createMinLengthValidator_ChangingProperty_FromValidatorToValidator() {
+		Assert.fail();
+	}
+
+	public void test_createRegexpValidator_ChangingProperty_FromValidatorToValidator() {
+		Assert.fail();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/disposal/AbstractDisposalTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/disposal/AbstractDisposalTest.java
new file mode 100644
index 0000000..3e1217a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/disposal/AbstractDisposalTest.java
@@ -0,0 +1,139 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.disposal;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+
+/**
+ * Tests the {@link AbstractDisposable}.
+ */
+public class AbstractDisposalTest {
+
+	/**
+	 * Tests dispose.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+		AbstractDisposable disposable = new AbstractDisposable() {
+			@Override
+			protected void internalDispose() {
+			}
+		};
+
+		Listener listener = new Listener();
+		disposable.addDisposeListener(listener);
+		disposable.removeDisposeListener(listener);
+
+		Assert.assertFalse(disposable.isDisposed());
+		disposable.dispose();
+		Assert.assertTrue(disposable.isDisposed());
+
+		try {
+			disposable.addDisposeListener(listener);
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+
+		try {
+			disposable.removeDisposeListener(listener);
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+		}
+	}
+
+	/**
+	 * Tests that the internalDispose method is called.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_callInternalDispose() {
+		// END SUPRESS CATCH EXCEPTION
+		final boolean[] called = new boolean[] { false };
+		AbstractDisposable disposable = new AbstractDisposable() {
+			@Override
+			protected void internalDispose() {
+				called[0] = true;
+			}
+		};
+
+		Assert.assertFalse(called[0]);
+		disposable.dispose();
+		Assert.assertTrue(called[0]);
+	}
+
+	/**
+	 * Tests that the internalDispose method is called.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_callInternalDispose_BeforeSetDisposed() {
+		// END SUPRESS CATCH EXCEPTION
+		AbstractDisposable disposable = new AbstractDisposable() {
+			@Override
+			protected void internalDispose() {
+				Assert.assertFalse(isDisposed());
+			}
+		};
+		disposable.dispose();
+	}
+
+	/**
+	 * Tests that the internalDispose method is called.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_callListener() {
+		// END SUPRESS CATCH EXCEPTION
+		AbstractDisposable disposable = new AbstractDisposable() {
+			@Override
+			protected void internalDispose() {
+			}
+		};
+
+		Listener listener1 = new Listener();
+		Listener listener2 = new Listener();
+		Listener listener3 = new Listener();
+
+		disposable.addDisposeListener(listener1);
+		disposable.addDisposeListener(listener2);
+
+		// add and remove listener3
+		disposable.addDisposeListener(listener3);
+		disposable.removeDisposeListener(listener3);
+
+		disposable.dispose();
+
+		Assert.assertEquals(1, listener1.callCounter);
+		Assert.assertEquals(1, listener2.callCounter);
+		Assert.assertEquals(0, listener3.callCounter);
+	}
+
+	/**
+	 * A helper class.
+	 */
+	private static class Listener implements IDisposable.Listener {
+		private int callCounter;
+
+		@Override
+		public void notifyDisposed(IDisposable notifier) {
+			callCounter++;
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/validation/ValidationEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/validation/ValidationEditpartTest.java
new file mode 100644
index 0000000..a81c795
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/editparts/emf/validation/ValidationEditpartTest.java
@@ -0,0 +1,106 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.editparts.emf.validation;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+
+public class ValidationEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+
+	/**
+	 * Tests the disposal.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_dispose() {
+		// END SUPRESS CATCH EXCEPTION
+		// ...> yLayout1
+		// ......> yField1
+		YValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMaxLengthValidator();
+		IValidatorEditpart validatorEditpart = editpartManager
+				.getEditpart(new ViewContext(), yValidator);
+
+		Assert.assertFalse(validatorEditpart.isDisposed());
+		validatorEditpart.dispose();
+		Assert.assertTrue(validatorEditpart.isDisposed());
+
+		validatorEditpart.isDisposed();
+		validatorEditpart.dispose();
+
+		try {
+			validatorEditpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			validatorEditpart.getId();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			validatorEditpart.getModel();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			validatorEditpart.getValidator();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			validatorEditpart.removeDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/serviceprovider/ServiceProviderManagerTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/serviceprovider/ServiceProviderManagerTest.java
new file mode 100644
index 0000000..cef0f13
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/serviceprovider/ServiceProviderManagerTest.java
@@ -0,0 +1,324 @@
+/**
+ * Copyright (c) 2013 Loetz GmbH&Co.KG(Heidelberg). 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: Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.serviceprovider;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Future;
+
+import org.eclipse.osbp.ecview.core.common.context.ContextException;
+import org.eclipse.osbp.ecview.core.common.context.IConfiguration;
+import org.eclipse.osbp.ecview.core.common.context.IContext;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.ICommandSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IExposedActionEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.presentation.IViewPresentation;
+import org.eclipse.osbp.ecview.core.common.services.DelegatingServiceProviderManager;
+import org.eclipse.osbp.ecview.core.common.services.IServiceProvider;
+import org.eclipse.osbp.ecview.core.common.services.IUiKitBasedService;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the {@link DelegatingServiceProviderManager}.
+ */
+public class ServiceProviderManagerTest {
+
+	DelegatingServiceProviderManager manager = DelegatingServiceProviderManager
+			.getInstance();
+	String selector;
+	InternalContext context;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		manager.clear();
+		context = new InternalContext();
+		DummyViewEditpart viewEditpart = new DummyViewEditpart();
+		context.setViewEditpart(viewEditpart);
+	}
+
+	/**
+	 * Tests the add and remove delegating methods.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_serviceProvider() {
+		// END SUPRESS CATCH EXCEPTION
+		ServiceProvider1 serviceProvider1 = new ServiceProvider1();
+		manager.addDelegate(serviceProvider1, null);
+		Assert.assertTrue(manager.isFor("Provider1", context));
+		Assert.assertFalse(manager.isFor("Provider2", context));
+		Assert.assertEquals("Provider1",
+				manager.createService("Provider1", context));
+		Assert.assertNull(manager.createService("Provider2", context));
+		ServiceProvider2 serviceProvider2 = new ServiceProvider2();
+		manager.addDelegate(serviceProvider2, null);
+		Assert.assertTrue(manager.isFor("Provider2", context));
+		Assert.assertTrue(manager.isFor("Provider1", context));
+		Assert.assertEquals("Provider2",
+				manager.createService("Provider2", context));
+		Assert.assertEquals("Provider1",
+				manager.createService("Provider1", context));
+
+		manager.removeDelegate(serviceProvider1, null);
+		Assert.assertFalse(manager.isFor("Provider1", context));
+		Assert.assertTrue(manager.isFor("Provider2", context));
+		Assert.assertNull(manager.createService("Provider1", context));
+		Assert.assertEquals("Provider2",
+				manager.createService("Provider2", context));
+		manager.removeDelegate(serviceProvider2, null);
+		Assert.assertFalse(manager.isFor("Provider2", context));
+		Assert.assertFalse(manager.isFor("Provider1", context));
+		Assert.assertNull(manager.createService("Provider2", context));
+		Assert.assertNull(manager.createService("Provider1", context));
+	}
+
+	/**
+	 * Tests the add and remove delegating methods.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_serviceProvider_Properties() {
+		// END SUPRESS CATCH EXCEPTION
+		manager.clear();
+
+		ServiceProvider1 viewProvider = new ServiceProvider1();
+		ServiceProvider2 viewProvider_NoProperty = new ServiceProvider2();
+		ServiceProvider3 viewSetProvider = new ServiceProvider3();
+
+		// register for view
+		manager.addDelegate(viewProvider, IServiceProvider.VIEW_PROPERTIES);
+		manager.addDelegate(viewProvider_NoProperty, null);
+		manager.addDelegate(viewSetProvider,
+				IServiceProvider.VIEW_SET_PROPERTIES);
+
+		Assert.assertTrue(manager.isFor("Provider1", context));
+
+		Assert.assertTrue(manager.isFor("Provider2", context));
+
+		Assert.assertFalse(manager.isFor("Provider3", context));
+	}
+
+	private static class InternalContext extends ViewContext {
+		public InternalContext() {
+			super();
+		}
+
+	}
+
+	private class ServiceProvider1 implements IServiceProvider {
+
+		@Override
+		public boolean isFor(String selector, IContext context) {
+			return "Provider1".equals(selector);
+		}
+
+		@SuppressWarnings("unchecked")
+		@Override
+		public <A> A createService(String selector, IContext context) {
+			return (A) "Provider1";
+		}
+
+	}
+
+	private class ServiceProvider2 implements IServiceProvider {
+
+		@Override
+		public boolean isFor(String selector, IContext context) {
+			return "Provider2".equals(selector);
+		}
+
+		@SuppressWarnings("unchecked")
+		@Override
+		public <A> A createService(String selector, IContext context) {
+			return (A) "Provider2";
+		}
+
+	}
+
+	private class ServiceProvider3 implements IServiceProvider {
+
+		@Override
+		public boolean isFor(String selector, IContext context) {
+			return "Provider3".equals(selector);
+		}
+
+		@SuppressWarnings("unchecked")
+		@Override
+		public <A> A createService(String selector, IContext context) {
+			return (A) "Provider3";
+		}
+	}
+
+	private static class DummyViewEditpart implements IViewEditpart {
+
+		private IViewContext context;
+
+		@Override
+		public String getId() {
+			return null;
+		}
+
+		@Override
+		public Object getModel() {
+			return null;
+		}
+
+		@Override
+		public boolean isDisposed() {
+			return false;
+		}
+
+		@Override
+		public void dispose() {
+
+		}
+
+		@Override
+		public void addDisposeListener(Listener listener) {
+
+		}
+
+		@Override
+		public void removeDisposeListener(Listener listener) {
+
+		}
+
+		@Override
+		public IViewContext getContext() {
+			return context;
+		}
+
+		@Override
+		public String getName() {
+			return null;
+		}
+
+		@Override
+		public void setContent(IEmbeddableEditpart content) {
+
+		}
+
+		@Override
+		public void setConfiguration(IConfiguration configuration) {
+
+		}
+
+		@Override
+		public void setBindingSet(IBindingSetEditpart bindingSet) {
+		}
+
+		@Override
+		public IEmbeddableEditpart getContent() {
+			return null;
+		}
+
+		@Override
+		public <A extends IViewPresentation<?>> A getPresentation() {
+			return null;
+		}
+
+		@Override
+		public IBindingSetEditpart getBindingSet() {
+			return null;
+		}
+
+		@Override
+		public void render(Map<String, Object> options) throws ContextException {
+
+		}
+
+		@Override
+		public void exec(Runnable runnable) {
+
+		}
+
+		@Override
+		public Future<?> execAsync(Runnable runnable) {
+			return null;
+		}
+
+		@Override
+		public boolean isDisposing() {
+			return false;
+		}
+
+		@Override
+		public void renderChild(IEmbeddableEditpart child) {
+
+		}
+
+		@Override
+		public void unrenderChild(IEmbeddableEditpart child) {
+
+		}
+
+		@Override
+		public void disposeChild(IEmbeddableEditpart child) {
+
+		}
+
+		@Override
+		public List<IExposedActionEditpart> getExposedActions() {
+			return null;
+		}
+
+		@Override
+		public ICommandSetEditpart getCommandSet() {
+			return null;
+		}
+
+		@Override
+		public void setCommandSet(ICommandSetEditpart commandSet) {
+
+		}
+
+		@Override
+		public <A extends IUiKitBasedService> A createService(
+				Class<A> serviceClass) {
+			return null;
+		}
+
+		@Override
+		public void openDialog(IDialogEditpart dialogEditpart,
+				IBindableEndpointEditpart inputData) {
+
+		}
+
+		@Override
+		public void closeDialog(IDialogEditpart dialogEditpart) {
+
+		}
+
+		@Override
+		public Object findModelElement(String id) {
+			return null;
+		}
+
+		public Object findBoundField(String bindingURI) {
+			return null;
+		}
+
+		@Override
+		public void requestDispose() {
+
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/uri/URIMapperTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/uri/URIMapperTest.java
new file mode 100644
index 0000000..38f6210
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/uri/URIMapperTest.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2013 Loetz GmbH&Co.KG(Heidelberg). 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: Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+ */
+
+package org.eclipse.osbp.ecview.core.ui.common.tests.uri;
+
+import java.net.URI;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.eclipse.osbp.ecview.core.common.uri.URIMapper;
+import org.eclipse.osbp.ecview.core.common.uri.URIMapper.Mapping;
+
+public class URIMapperTest {
+
+	@Test
+	public void testURI() {
+		String uriStr = "view://bean/root/invoiceInfo#value.customer.address.country";
+		URI uri = URI.create(uriStr);
+		URIMapper uriMapper = new URIMapper();
+		Mapping mapping = uriMapper.addURI(uri);
+		Assert.assertEquals(
+				URI.create("view://bean/root#value.invoiceInfo.customer.address.country"),
+				mapping.getFragmentedURI());
+		Assert.assertEquals(
+				URI.create("view://bean/root/invoiceInfo/customer/address#value.country"),
+				mapping.getPathedURI());
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/uri/URITest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/uri/URITest.java
new file mode 100644
index 0000000..6c92eb5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/uri/URITest.java
@@ -0,0 +1,448 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.uri;
+
+import java.net.URI;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.common.ResourceManager;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+import org.eclipse.osbp.ecview.core.common.uri.ViewScope;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the {@link ResourceManager}.
+ */
+public class URITest {
+
+	private EditpartManager editpartManager = new EditpartManager();
+	private ResourceSetImpl resourceSet;
+	private ViewContext context;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		resourceSet = new ResourceSetImpl();
+		resourceSet
+				.getResourceFactoryRegistry()
+				.getExtensionToFactoryMap()
+				.put(Resource.Factory.Registry.DEFAULT_EXTENSION,
+						new XMIResourceFactoryImpl());
+		resourceSet.getPackageRegistry().put(CoreModelPackage.eNS_URI,
+				CoreModelPackage.eINSTANCE);
+
+		DelegatingEditPartManager manager = DelegatingEditPartManager
+				.getInstance();
+		manager.clear();
+		manager.addDelegate(new EditpartManager());
+
+		context = new ViewContext();
+		YView yView = CoreModelFactory.eINSTANCE.createYView();
+		IViewEditpart viewEditPart = (IViewEditpart) editpartManager
+				.getEditpart(context, yView);
+	}
+
+	/**
+	 * Tests parsing.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_bean_parse() {
+		URI uri = URI.create("view://bean/org.my.bean#aaa.bbb.ccc");
+		Assert.assertEquals("view", uri.getScheme());
+		Assert.assertEquals("bean", uri.getAuthority());
+		Assert.assertEquals("/org.my.bean", uri.getPath());
+		Assert.assertEquals("aaa.bbb.ccc", uri.getFragment());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests parsing.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_service_parse() {
+		URI uri = URI.create("view://service/org.my.service");
+		Assert.assertEquals("view", uri.getScheme());
+		Assert.assertEquals("service", uri.getAuthority());
+		Assert.assertEquals("/org.my.service", uri.getPath());
+		Assert.assertNull(uri.getFragment());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests building and parsing.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_bean_build_and_parse() {
+
+		ViewScope scope1_1 = URIHelper.toScope("view://bean/org.my.bean");
+		ViewScope scope1_2 = URIHelper.view().bean("org.my.bean").root();
+		Assert.assertEquals(scope1_1.toFullURI(), scope1_2.toFullURI());
+
+		ViewScope scope2_1 = URIHelper
+				.toScope("view://bean/org.my.bean#person.name");
+		ViewScope scope2_2 = URIHelper.view().bean("org.my.bean")
+				.fragment("person.name").root();
+		Assert.assertEquals(scope2_1.toFullURI(), scope2_2.toFullURI());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests building and parsing.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_service_build_and_parse() {
+		ViewScope scope1_1 = URIHelper.toScope("view://service/org.my.service");
+		ViewScope scope1_2 = URIHelper.view().service("org.my.service").root();
+		Assert.assertEquals(scope1_1.toFullURI(), scope1_2.toFullURI());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the access of the segments.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_bean_segments() {
+		ViewScope viewScope = URIHelper
+				.toScope("view://bean/org.my.bean#value.name");
+
+		// test segments
+		//
+		Assert.assertEquals("view://", viewScope.getURISegment());
+		Assert.assertEquals("bean/org.my.bean", viewScope.getBeanScope()
+				.getURISegment());
+		Assert.assertEquals("#value.name", viewScope.getBeanScope()
+				.getFragmentScope().getURISegment());
+
+		Assert.assertNull(viewScope.getServiceScope());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the service segments.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_service_segments() {
+		ViewScope viewScope = URIHelper
+				.toScope("view://service/org.my.service");
+
+		// test segments
+		//
+		Assert.assertEquals("view://", viewScope.getURISegment());
+		Assert.assertEquals("service/org.my.service", viewScope
+				.getServiceScope().getURISegment());
+
+		Assert.assertNull(viewScope.getBeanScope());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the toString and toURIString methods.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_bean_toString_toURIString() {
+		ViewScope viewScope = URIHelper
+				.toScope("view://bean/org.my.bean#value.name");
+
+		// test segments
+		//
+		Assert.assertEquals("view://bean/org.my.bean#value.name",
+				viewScope.toString());
+
+		// bean
+		Assert.assertEquals("view://bean/org.my.bean", viewScope.getBeanScope()
+				.toString());
+		Assert.assertEquals("view://bean/org.my.bean", viewScope.getBeanScope()
+				.toURIString());
+
+		// fragment
+		Assert.assertEquals("view://bean/org.my.bean#value.name", viewScope
+				.getBeanScope().getFragmentScope().toString());
+		Assert.assertEquals("view://bean/org.my.bean#value.name", viewScope
+				.getBeanScope().getFragmentScope().toURIString());
+
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the service segments.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_service_toString_toURIString() {
+		ViewScope viewScope = URIHelper
+				.toScope("view://service/org.my.service");
+
+		// test segments
+		//
+		Assert.assertEquals("view://service/org.my.service",
+				viewScope.toString());
+
+		Assert.assertEquals("view://service/org.my.service", viewScope
+				.getServiceScope().toString());
+		Assert.assertEquals("view://service/org.my.service", viewScope
+				.getServiceScope().toURIString());
+	}
+
+	/**
+	 * Tests the access of the root.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_bean_root() {
+		ViewScope viewScope = URIHelper
+				.toScope("view://bean/org.my.bean#value.name");
+
+		// tests the generics in root()
+		@SuppressWarnings("unused")
+		ViewScope scope = viewScope.getBeanScope().root();
+
+		Assert.assertSame(viewScope, viewScope.root());
+		Assert.assertSame(viewScope, viewScope.getBeanScope().root());
+		Assert.assertSame(viewScope, viewScope.getBeanScope()
+				.getFragmentScope().root());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the view scope.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_service_getViewScope() {
+		ViewScope viewScope = URIHelper
+				.toScope("view://service/org.my.service");
+
+		Assert.assertSame(viewScope, viewScope.root());
+		Assert.assertSame(viewScope, viewScope.getServiceScope().root());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the toURI method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_bean_toURI() {
+		ViewScope viewScope = URIHelper
+				.toScope("view://bean/org.my.bean#value.name");
+
+		Assert.assertEquals("view://bean/org.my.bean#value.name", viewScope
+				.toFullURI().toString());
+		Assert.assertEquals("view://bean/org.my.bean", viewScope.getBeanScope()
+				.toURI().toString());
+		Assert.assertEquals("view://bean/org.my.bean#value.name", viewScope
+				.getBeanScope().getFragmentScope().toURI().toString());
+
+		// test uri.toString == toURIString
+		Assert.assertEquals(viewScope.getBeanScope().toURIString(), viewScope
+				.getBeanScope().toURI().toString());
+		Assert.assertEquals(viewScope.getBeanScope().getFragmentScope()
+				.toURIString(), viewScope.getBeanScope().getFragmentScope()
+				.toURI().toString());
+	}
+
+	/**
+	 * Tests the toURI method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_bean_toURI_WithoutFragment() {
+		ViewScope viewScope = URIHelper.toScope("view://bean/org.my.bean");
+
+		Assert.assertEquals("view://bean/org.my.bean", viewScope.toFullURI()
+				.toString());
+		Assert.assertEquals("view://bean/org.my.bean", viewScope.getBeanScope()
+				.toURI().toString());
+		Assert.assertNull(viewScope.getBeanScope().getFragmentScope());
+
+		// test uri.toString == toURIString
+		Assert.assertEquals(viewScope.getBeanScope().toURIString(), viewScope
+				.getBeanScope().toURI().toString());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the toURI method.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_service_toURI() {
+		ViewScope viewScope = URIHelper
+				.toScope("view://service/org.my.service");
+
+		Assert.assertEquals("view://service/org.my.service", viewScope
+				.toFullURI().toString());
+		Assert.assertEquals("view://service/org.my.service", viewScope
+				.getServiceScope().toURI().toString());
+
+		// test uri.toString == toURIString
+		Assert.assertEquals(viewScope.getServiceScope().toURIString(),
+				viewScope.getServiceScope().toURI().toString());
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the access of beans.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_accessBean() {
+		String name = "Name";
+		Person person = new Person(name);
+		context.setBean("org.my.bean", person);
+
+		Assert.assertSame(context.getBeanSlot("org.my.bean"), URIHelper
+				.toScope("view://bean/org.my.bean").access(context));
+		Assert.assertSame(
+				person,
+				URIHelper.toScope("view://bean/org.my.bean#value").access(
+						context));
+		Assert.assertEquals(
+				"Name",
+				URIHelper.toScope("view://bean/org.my.bean#value.name").access(
+						context));
+	}
+
+	/**
+	 * Tests the access of beans by the bean scope.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_beanScope() {
+		String name = "Name";
+		Person person = new Person(name);
+		context.setBean("org.my.bean", person);
+		ISlot slot = context.getBeanSlot("org.my.bean");
+
+		Assert.assertSame(slot, URIHelper.toScope("view://bean/org.my.bean")
+				.getBeanScope().access(context));
+		Assert.assertSame(person,
+				URIHelper.toScope("view://bean/org.my.bean#value")
+						.getBeanScope().access(context));
+		Assert.assertEquals("Name",
+				URIHelper.toScope("view://bean/org.my.bean#value.name")
+						.getBeanScope().access(context));
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the access of beans by the bean scope.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_beanScope_accessBean() {
+		String name = "Name";
+		Person person = new Person(name);
+		context.setBean("org.my.bean", person);
+
+		Assert.assertSame(person, URIHelper.toScope("view://bean/org.my.bean")
+				.getBeanScope().accessBean(context));
+		Assert.assertSame(person,
+				URIHelper.toScope("view://bean/org.my.bean#value")
+						.getBeanScope().accessBean(context));
+		Assert.assertEquals(person,
+				URIHelper.toScope("view://bean/org.my.bean#value.name")
+						.getBeanScope().accessBean(context));
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the access of beans by the bean scope.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_beanScope_accessBeanSlot() {
+		String name = "Name";
+		Person person = new Person(name);
+		context.setBean("org.my.bean", person);
+		ISlot slot = context.getBeanSlot("org.my.bean");
+
+		Assert.assertSame(slot, URIHelper.toScope("view://bean/org.my.bean")
+				.getBeanScope().accessBeanSlot(context));
+		Assert.assertSame(slot,
+				URIHelper.toScope("view://bean/org.my.bean#value")
+						.getBeanScope().accessBeanSlot(context));
+		Assert.assertEquals(slot,
+				URIHelper.toScope("view://bean/org.my.bean#value.name")
+						.getBeanScope().accessBeanSlot(context));
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Tests the access of services.
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_view_accessService() {
+		Object service = new Object();
+
+		context.registerService("org.my.service", service);
+
+		Assert.assertSame(
+				service,
+				URIHelper.toScope("view://service/org.my.service").access(
+						context));
+	}
+
+	public static class Person {
+
+		String name;
+
+		public Person(String name) {
+			super();
+			this.name = name;
+		}
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			this.name = name;
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/validation/MaxLenghtValidatorEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/validation/MaxLenghtValidatorEditpartTest.java
new file mode 100644
index 0000000..3bd5d47
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/validation/MaxLenghtValidatorEditpartTest.java
@@ -0,0 +1,180 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.validation;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.MaxLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.util.SimpleExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.util.emf.ModelUtil;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class MaxLenghtValidatorEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private SimpleExtensionModelFactory factory = new SimpleExtensionModelFactory();
+
+	/**
+	 * Setup.
+	 */
+	@SuppressWarnings("restriction")
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+	}
+
+	/**
+	 * Tests the validator result status
+	 */
+	@Test
+	public void test_minLength() {
+		YMaxLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMaxLengthValidator();
+		IValidatorEditpart validatorEditpart = editpartManager
+				.getEditpart(new ViewContext(), yValidator);
+		IValidator validator = validatorEditpart.getValidator();
+		yValidator.setMaxLength(5);
+
+		IStatus status = validator.validateValue("123");
+		assertTrue(status.isOK());
+		assertEquals(IStatus.Severity.OK, status.getSeverity());
+		assertEquals("", status.getMessage());
+
+		status = validator.validateValue("123456");
+		assertFalse(status.isOK());
+		assertEquals(IStatus.Severity.ERROR, status.getSeverity());
+		assertEquals("Maximum length is 5. Length of \"123456\" is 6!",
+				status.getMessage());
+
+	}
+
+	/**
+	 * Tests whether updating validator parameters changes results
+	 */
+	@Test
+	public void test_updateParameter() {
+		YMaxLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMaxLengthValidator();
+		IValidatorEditpart validatorEditpart = editpartManager
+				.getEditpart(new ViewContext(), yValidator);
+		IValidator validator = validatorEditpart.getValidator();
+
+		yValidator.setMaxLength(8);
+		IStatus status = validator.validateValue("123456");
+		assertTrue(status.isOK());
+		assertEquals(IStatus.Severity.OK, status.getSeverity());
+		assertEquals("", status.getMessage());
+
+		yValidator.setMaxLength(5);
+		status = validator.validateValue("123456");
+		assertFalse(status.isOK());
+		assertEquals(IStatus.Severity.ERROR, status.getSeverity());
+		assertEquals("Maximum length is 5. Length of \"123456\" is 6!",
+				status.getMessage());
+	}
+
+	@SuppressWarnings("restriction")
+	@Test
+	public void test_changeDatatype_Property() {
+		
+		ViewContext context = new ViewContext();
+		
+		// if the datatype was updated, the validator needs to updated too.
+		YMaxLengthValidationConfig yConfig = factory.createTextDatatype();
+		IValidationConfig config = ModelUtil
+				.getEditpart(context, (YTextDatatype) yConfig);
+
+		YMaxLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMaxLengthValidator();
+		MaxLengthValidatorEditpart editpart = ModelUtil.getEditpart(context, yValidator);
+		editpart.setConfig(config);
+
+		assertEquals(0, yValidator.getMaxLength());
+
+		yConfig.setMaxLength(100);
+		assertEquals(100, yValidator.getMaxLength());
+
+		yConfig.setMaxLength(-1);
+		assertEquals(-1, yValidator.getMaxLength());
+	}
+
+	@Test
+	public void test_dispose() {
+		
+		YMaxLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMaxLengthValidator();
+		MaxLengthValidatorEditpart editpart = ModelUtil.getEditpart(new ViewContext(), yValidator);
+		editpart.dispose();
+		
+		try {
+			editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getId();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getModel();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.setConfig(null);
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/validation/MinLenghtValidatorEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/validation/MinLenghtValidatorEditpartTest.java
new file mode 100644
index 0000000..cfa0e01
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/validation/MinLenghtValidatorEditpartTest.java
@@ -0,0 +1,177 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.validation;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.MinLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.util.SimpleExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.util.emf.ModelUtil;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class MinLenghtValidatorEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private SimpleExtensionModelFactory factory = new SimpleExtensionModelFactory();
+
+	/**
+	 * Setup.
+	 */
+	@SuppressWarnings("restriction")
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+	}
+
+	/**
+	 * Tests the validator result status
+	 */
+	@Test
+	public void test_minLength() {
+		YMinLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMinLengthValidator();
+		IValidatorEditpart validatorEditpart = editpartManager
+				.getEditpart(new ViewContext(), yValidator);
+		IValidator validator = validatorEditpart.getValidator();
+		yValidator.setMinLength(5);
+
+		IStatus status = validator.validateValue("123456");
+		assertTrue(status.isOK());
+		assertEquals(IStatus.Severity.OK, status.getSeverity());
+		assertEquals("", status.getMessage());
+
+		status = validator.validateValue("123");
+		assertFalse(status.isOK());
+		assertEquals(IStatus.Severity.ERROR, status.getSeverity());
+		assertEquals("Minimum length is 5. Length of \"123\" is 3!",
+				status.getMessage());
+
+	}
+
+	/**
+	 * Tests whether updating validator parameters changes results
+	 */
+	@Test
+	public void test_updateParameter() {
+		YMinLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMinLengthValidator();
+		IValidatorEditpart validatorEditpart = editpartManager
+				.getEditpart(new ViewContext(), yValidator);
+		IValidator validator = validatorEditpart.getValidator();
+
+		yValidator.setMinLength(5);
+		IStatus status = validator.validateValue("123456");
+		assertTrue(status.isOK());
+		assertEquals(IStatus.Severity.OK, status.getSeverity());
+		assertEquals("", status.getMessage());
+
+		yValidator.setMinLength(8);
+		status = validator.validateValue("123456");
+		assertFalse(status.isOK());
+		assertEquals(IStatus.Severity.ERROR, status.getSeverity());
+		assertEquals("Minimum length is 8. Length of \"123456\" is 6!",
+				status.getMessage());
+	}
+
+	@Test
+	public void test_changeDatatype_Property() {
+		// if the datatype was updated, the validator needs to updated too.
+		YMinLengthValidationConfig yConfig = factory.createTextDatatype();
+		IValidationConfig config = ModelUtil
+				.getEditpart(new ViewContext(), (YTextDatatype) yConfig);
+
+		YMinLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMinLengthValidator();
+		MinLengthValidatorEditpart editpart = ModelUtil.getEditpart(new ViewContext(), yValidator);
+		editpart.setConfig(config);
+
+		assertEquals(0, yValidator.getMinLength());
+
+		yConfig.setMinLength(100);
+		assertEquals(100, yValidator.getMinLength());
+
+		yConfig.setMinLength(-1);
+		assertEquals(-1, yValidator.getMinLength());
+	}
+
+	@Test
+	public void test_dispose() {
+		
+		YMinLengthValidator yValidator = ValidationFactory.eINSTANCE
+				.createYMinLengthValidator();
+		MinLengthValidatorEditpart editpart = ModelUtil.getEditpart(new ViewContext(), yValidator);
+		editpart.dispose();
+		
+		try {
+			editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getId();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getModel();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.setConfig(null);
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/validation/RegexpValidatorEditpartTest.java b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/validation/RegexpValidatorEditpartTest.java
new file mode 100644
index 0000000..61642b3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common.tests/src/org/eclipse/osbp/ecview/core/ui/common/tests/validation/RegexpValidatorEditpartTest.java
@@ -0,0 +1,179 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.ui.common.tests.validation;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.RegexpValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.util.SimpleExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.util.emf.ModelUtil;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class RegexpValidatorEditpartTest {
+
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private SimpleExtensionModelFactory factory = new SimpleExtensionModelFactory();
+
+	/**
+	 * Setup.
+	 */
+	@SuppressWarnings("restriction")
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager());
+	}
+
+	/**
+	 * Tests the validator result status
+	 */
+	@Test
+	public void test_minLength() {
+		YRegexpValidator yValidator = ValidationFactory.eINSTANCE
+				.createYRegexpValidator();
+		IValidatorEditpart validatorEditpart = editpartManager.getEditpart(
+				new ViewContext(), yValidator);
+		IValidator validator = validatorEditpart.getValidator();
+		yValidator.setRegExpression("H..lo");
+
+		IStatus status = validator.validateValue("Hello");
+		assertTrue(status.isOK());
+		assertEquals(IStatus.Severity.OK, status.getSeverity());
+		assertEquals("", status.getMessage());
+
+		status = validator.validateValue("World");
+		assertFalse(status.isOK());
+		assertEquals(IStatus.Severity.ERROR, status.getSeverity());
+		assertEquals("Value World does not match the required pattern H..lo!",
+				status.getMessage());
+
+	}
+
+	/**
+	 * Tests whether updating validator parameters changes results
+	 */
+	@Test
+	public void test_updateParameter() {
+		YRegexpValidator yValidator = ValidationFactory.eINSTANCE
+				.createYRegexpValidator();
+		IValidatorEditpart validatorEditpart = editpartManager.getEditpart(
+				new ViewContext(), yValidator);
+		IValidator validator = validatorEditpart.getValidator();
+
+		yValidator.setRegExpression("H..lo");
+		IStatus status = validator.validateValue("Hello");
+		assertTrue(status.isOK());
+		assertEquals(IStatus.Severity.OK, status.getSeverity());
+		assertEquals("", status.getMessage());
+
+		yValidator.setRegExpression("Worl?d");
+		status = validator.validateValue("Hello");
+		assertFalse(status.isOK());
+		assertEquals(IStatus.Severity.ERROR, status.getSeverity());
+		assertEquals("Value Hello does not match the required pattern Worl?d!",
+				status.getMessage());
+	}
+
+	@Test
+	public void test_changeDatatype_Property() {
+		// if the datatype was updated, the validator needs to updated too.
+		YRegexpValidationConfig yConfig = factory.createTextDatatype();
+		IValidationConfig config = ModelUtil.getEditpart(new ViewContext(),
+				(YTextDatatype) yConfig);
+
+		YRegexpValidator yValidator = ValidationFactory.eINSTANCE
+				.createYRegexpValidator();
+		RegexpValidatorEditpart editpart = ModelUtil.getEditpart(
+				new ViewContext(), yValidator);
+		editpart.setConfig(config);
+
+		assertNull(yValidator.getRegExpression());
+
+		yConfig.setRegExpression("Huhu");
+		assertEquals("Huhu", yValidator.getRegExpression());
+
+		yConfig.setRegExpression("");
+		assertEquals("", yValidator.getRegExpression());
+	}
+
+	@Test
+	public void test_dispose() {
+
+		YRegexpValidator yValidator = ValidationFactory.eINSTANCE
+				.createYRegexpValidator();
+		RegexpValidatorEditpart editpart = ModelUtil.getEditpart(
+				new ViewContext(), yValidator);
+		editpart.dispose();
+
+		try {
+			editpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getId();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.getModel();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			editpart.setConfig(null);
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/.checkstyle b/org.eclipse.osbp.ecview.core.common/.checkstyle
new file mode 100644
index 0000000..2f2667a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <fileset name="all" enabled="true" check-config-name="emfstoreStyle" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/org.eclipse.osbp.ecview.core.common/.project b/org.eclipse.osbp.ecview.core.common/.project
new file mode 100644
index 0000000..7290434
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/.project
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.common</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.common/LICENSE.txt b/org.eclipse.osbp.ecview.core.common/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.common/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..6706eb6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/META-INF/MANIFEST.MF
@@ -0,0 +1,90 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.common
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.common
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: org.apache.commons.logging;version="1.0.4",
+ org.eclipse.osbp.runtime.common.i18n;version="0.9.0",
+ org.osgi.framework;version="1.7.0",
+ org.osgi.service.component;version="1.2.0",
+ org.osgi.service.component.annotations;version="1.2.0",
+ org.osgi.service.event;version="1.3.0"
+Service-Component: OSGI-INF/*.xml
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.apache.commons.beanutils;bundle-version="1.9.2",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.1,1.5.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.1,1.5.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.slf4j.api;bundle-version="1.7.2",
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.extension.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.dsl.datatype.lib;bundle-version="[0.9.0,0.10.0)"
+Export-Package: org.eclipse.osbp.ecview.core.common;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.common.services,org.eclipse.osbp.ecview.core.common.beans",
+ org.eclipse.osbp.ecview.core.common.beans;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.binding;version="0.9.0";
+  uses:="org.eclipse.core.databinding.observable.set,
+   org.eclipse.core.databinding.observable,
+   org.eclipse.core.databinding,
+   org.eclipse.osbp.ecview.core.common.disposal,
+   org.eclipse.core.databinding.observable.value,
+   org.eclipse.core.databinding.observable.list",
+ org.eclipse.osbp.ecview.core.common.binding.observables;version="0.9.0";
+  uses:="org.eclipse.core.databinding.observable,
+   org.eclipse.core.databinding.observable.value,
+   org.eclipse.osbp.ecview.core.common.beans,
+   org.eclipse.core.databinding.observable.list,
+   org.osgi.service.component",
+ org.eclipse.osbp.ecview.core.common.concurrent;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.common.context",
+ org.eclipse.osbp.ecview.core.common.concurrent.internal;version="0.9.0";x-internal:=true,
+ org.eclipse.osbp.ecview.core.common.context;version="0.9.0";
+  uses:="org.eclipse.osbp.ecview.core.common.services,
+   org.eclipse.osbp.ecview.core.common.editpart,
+   org.eclipse.osbp.ecview.core.common.disposal,
+   org.eclipse.osbp.ecview.core.common,
+   org.eclipse.osbp.ecview.core.common.visibility,
+   org.eclipse.osbp.ecview.core.common.beans",
+ org.eclipse.osbp.ecview.core.common.dnd;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.editpart;version="0.9.0";
+  uses:="org.eclipse.osbp.ecview.core.common.editpart.binding,
+   org.eclipse.osbp.ecview.core.common.disposal,
+   org.eclipse.osbp.ecview.core.common.editpart.validation,
+   org.eclipse.osbp.ecview.core.common.context,
+   org.eclipse.osbp.ecview.core.common.editpart.visibility,
+   org.osgi.service.component",
+ org.eclipse.osbp.ecview.core.common.editpart.binding;version="0.9.0";
+  uses:="org.eclipse.core.databinding,
+   org.eclipse.osbp.ecview.core.common.binding,
+   org.eclipse.osbp.ecview.core.common.editpart,
+   org.eclipse.osbp.ecview.core.common.visibility",
+ org.eclipse.osbp.ecview.core.common.editpart.datatypes;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.common.editpart",
+ org.eclipse.osbp.ecview.core.common.editpart.validation;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.common.editpart,org.eclipse.osbp.ecview.core.common.validation",
+ org.eclipse.osbp.ecview.core.common.editpart.visibility;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.common.editpart,org.eclipse.osbp.ecview.core.common.visibility",
+ org.eclipse.osbp.ecview.core.common.extender;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.filter;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.memento;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.notification;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.common.services,org.eclipse.osbp.ecview.core.common.editpart,org.eclipse.osbp.ecview.core.common.context",
+ org.eclipse.osbp.ecview.core.common.presentation;version="0.9.0";
+  uses:="org.eclipse.osbp.ecview.core.common.editpart.binding,
+   org.eclipse.osbp.ecview.core.common.editpart.datatypes,
+   org.eclipse.core.databinding.observable,
+   org.eclipse.osbp.ecview.core.common.editpart,
+   org.eclipse.osbp.ecview.core.common.validation,
+   org.eclipse.osbp.ecview.core.common.disposal,
+   org.eclipse.osbp.ecview.core.common.context,
+   org.eclipse.osbp.ecview.core.common.editpart.visibility,
+   org.osgi.service.component",
+ org.eclipse.osbp.ecview.core.common.services;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.common.editpart,org.eclipse.osbp.ecview.core.common.context,org.osgi.service.component",
+ org.eclipse.osbp.ecview.core.common.store;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.tooling;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.common.services",
+ org.eclipse.osbp.ecview.core.common.uri;version="0.9.0";
+  uses:="org.eclipse.osbp.ecview.core.common.services,
+   org.eclipse.osbp.ecview.core.common,
+   org.eclipse.osbp.ecview.core.common.context,
+   org.eclipse.osbp.ecview.core.common.beans",
+ org.eclipse.osbp.ecview.core.common.validation;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.common.disposal,org.eclipse.osbp.ecview.core.common.context",
+ org.eclipse.osbp.ecview.core.common.validation.impl;version="0.9.0";x-internal:=true,
+ org.eclipse.osbp.ecview.core.common.visibility;version="0.9.0",
+ org.eclipse.osbp.ecview.core.common.visibility.impl;version="0.9.0";x-internal:=true
+OSBP-RuntimeBuilder-BundleSpace: 
diff --git a/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingContextObservablesBindings.xml b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingContextObservablesBindings.xml
new file mode 100644
index 0000000..c86cad0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingContextObservablesBindings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.common.binding.delegate">
+   <implementation class="org.eclipse.osbp.ecview.core.common.binding.observables.ContextObservables$Component"/>
+   <reference bind="addDelegate" cardinality="0..n" interface="org.eclipse.osbp.ecview.core.common.binding.observables.IContextBindingDelegate" name="delegates" policy="dynamic" unbind="removeDelegate"/>
+</scr:component> 
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingConverterFactory.xml b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingConverterFactory.xml
new file mode 100644
index 0000000..7a9e66d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingConverterFactory.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.common.editpart.converterfactory">
+   <implementation class="org.eclipse.osbp.ecview.core.common.presentation.DelegatingConverterFactory$ServiceComponent"/>
+   <reference bind="addDelegate" cardinality="0..n" interface="org.eclipse.osbp.ecview.core.common.presentation.IConverterFactory" name="delegates" policy="dynamic" unbind="removeDelegate"/>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingEditPartManager.xml b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingEditPartManager.xml
new file mode 100644
index 0000000..e127848
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingEditPartManager.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.common.editparts.factorymanager">
+   <implementation class="org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager$Component"/>
+   <reference bind="addDelegate" cardinality="0..n" interface="org.eclipse.osbp.ecview.core.common.editpart.IEditPartManager" name="delegates" policy="dynamic" unbind="removeDelegate"/>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingPresenterFactory.xml b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingPresenterFactory.xml
new file mode 100644
index 0000000..d8cf994
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingPresenterFactory.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.common.editpart.presenterfactory">
+   <implementation class="org.eclipse.osbp.ecview.core.common.presentation.DelegatingPresenterFactory$Component"/>
+   <reference bind="addDelegate" cardinality="0..n" interface="org.eclipse.osbp.ecview.core.common.presentation.IPresentationFactory" name="delegates" policy="dynamic" unbind="removeDelegate"/>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingServiceProviderManager.xml b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingServiceProviderManager.xml
new file mode 100644
index 0000000..21551cf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/OSGI-INF/delegatingServiceProviderManager.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.common.services.serviceprovider">
+   <implementation class="org.eclipse.osbp.ecview.core.common.services.DelegatingServiceProviderManager$Component"/>
+   <reference bind="addDelegate" cardinality="0..n" interface="org.eclipse.osbp.ecview.core.common.services.IServiceProvider" name="delegates" policy="dynamic" unbind="removeDelegate"/>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.common/OSGI-INF/executorService.xml b/org.eclipse.osbp.ecview.core.common/OSGI-INF/executorService.xml
new file mode 100644
index 0000000..53b24fe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/OSGI-INF/executorService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.common.concurrent.executor">
+   <implementation class="org.eclipse.osbp.ecview.core.common.concurrent.internal.ExecutorService"/>
+   <service>
+      <provide interface="org.eclipse.osbp.ecview.core.common.concurrent.IExecutorService"/>
+   </service>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.common/OSGI-INF/lifecycleServiceProviderManager.xml b/org.eclipse.osbp.ecview.core.common/OSGI-INF/lifecycleServiceProviderManager.xml
new file mode 100644
index 0000000..c0525c8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/OSGI-INF/lifecycleServiceProviderManager.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.common.notification.lifecycleprovider">
+   <implementation class="org.eclipse.osbp.ecview.core.common.notification.LifecycleServiceProvider"/>
+   <service>
+      <provide interface="org.eclipse.osbp.ecview.core.common.services.IServiceProvider"/>
+   </service>
+   <property name="ecview.serviceprovider.level" type="String" value="view"/>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.common/OSGI-INF/org.eclipse.osbp.ecview.core.common.validation.impl.FieldValidationManagerProvider.xml b/org.eclipse.osbp.ecview.core.common/OSGI-INF/org.eclipse.osbp.ecview.core.common.validation.impl.FieldValidationManagerProvider.xml
new file mode 100644
index 0000000..2c62868
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/OSGI-INF/org.eclipse.osbp.ecview.core.common.validation.impl.FieldValidationManagerProvider.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.common.validation.impl.FieldValidationManagerProvider">
+   <service>
+      <provide interface="org.eclipse.osbp.ecview.core.common.services.IServiceProvider"/>
+   </service>
+   <implementation class="org.eclipse.osbp.ecview.core.common.validation.impl.FieldValidationManagerProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/about.html b/org.eclipse.osbp.ecview.core.common/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/about.ini b/org.eclipse.osbp.ecview.core.common/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.common/about.mappings b/org.eclipse.osbp.ecview.core.common/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.common/about.properties b/org.eclipse.osbp.ecview.core.common/about.properties
new file mode 100644
index 0000000..53c74eb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.common
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.common/build.properties b/org.eclipse.osbp.ecview.core.common/build.properties
new file mode 100644
index 0000000..eba6088
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/build.properties
@@ -0,0 +1,11 @@
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               OSGI-INF/,\
+               OSGI-INF/delegatingContextObservablesBindings.xml,\
+               OSGI-INF/executorService.xml,\
+               license.html,\
+               LICENSE.txt
+output.. = target/classes
+source.. = src/
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.common/license.html b/org.eclipse.osbp.ecview.core.common/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/pom.xml b/org.eclipse.osbp.ecview.core.common/pom.xml
new file mode 100644
index 0000000..b7f9d86
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.common</artifactId>
+  <description>Common API</description>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.6</source>
+          <target>1.6</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/IAccessible.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/IAccessible.java
new file mode 100644
index 0000000..3ab6fac
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/IAccessible.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common;
+
+import org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry;
+import org.eclipse.osbp.ecview.core.common.services.IServiceRegistry;
+
+/**
+ * An interface that extends the {@link IBeanRegistry} and
+ * {@link IServiceRegistry}.<br>
+ * Not intended to be subclassed.
+ */
+public interface IAccessible extends IBeanRegistry, IServiceRegistry {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/AbstractSlot.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/AbstractSlot.java
new file mode 100644
index 0000000..a92bc12
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/AbstractSlot.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.beans;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A default implementation of the slot. Offers {@link PropertyChangeSupport}.
+ */
+public class AbstractSlot implements ISlot {
+	private final PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	@SuppressWarnings("unused")
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(AbstractSlot.class);
+
+	private final Class<?> valueType;
+	private Object value;
+
+	public AbstractSlot(Class<?> valueType) {
+		this.valueType = valueType;
+	}
+
+	public AbstractSlot(Object value) {
+		if (value == null) {
+			throw new IllegalArgumentException("Value must not be null!");
+		}
+		this.value = value;
+		this.valueType = value.getClass();
+	}
+
+	@Override
+	public Class<?> getValueType() {
+		return valueType;
+	}
+
+	/**
+	 * Adds the given property change listener to the change support.
+	 * 
+	 * @param listener
+	 *            Listener to be added
+	 * @see java.beans.PropertyChangeSupport#addPropertyChangeListener(java.beans.PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(listener);
+	}
+
+	/**
+	 * Adds the given property change listener to the change support.
+	 * 
+	 * @param property
+	 *            Name of the property
+	 * @param listener
+	 *            Listener to be added
+	 * @see java.beans.PropertyChangeSupport#addPropertyChangeListener(java.lang.String,
+	 *      java.beans.PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(String property,
+			PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(property, listener);
+	}
+
+	/**
+	 * Removes the given property change listener from the change support.
+	 * 
+	 * @param listener
+	 *            Listener to be removed
+	 * @see java.beans.PropertyChangeSupport#removePropertyChangeListener(java.beans.PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(listener);
+	}
+
+	/**
+	 * Removes the given property change listener from the change support.
+	 * 
+	 * @param property
+	 *            Name of the property
+	 * @param listener
+	 *            Listener to be removed
+	 * @see java.beans.PropertyChangeSupport#removePropertyChangeListener(java.lang.String,
+	 *      java.beans.PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(String property,
+			PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(property, listener);
+	}
+
+	/**
+	 * Fires the property changed event.
+	 * 
+	 * @param property
+	 *            Name of the property
+	 * @param oldValue
+	 *            The old value
+	 * @param newValue
+	 *            The new value
+	 * @see java.beans.PropertyChangeSupport#firePropertyChange(String, Object,
+	 *      Object)
+	 */
+	protected void firePropertyChanged(String property, Object oldValue,
+			Object newValue) {
+		changeSupport.firePropertyChange(property, oldValue, newValue);
+	}
+
+	@Override
+	public Object getValue() {
+		return value;
+	}
+
+	@Override
+	public void setValue(Object value) {
+
+		if (this.value == value) {
+			return;
+		}
+
+		// workaround since PropertyChangeSupport does not send events if(value
+		// != this.value && this.value.equals(value))
+		// so we need to set this value to null first
+		if (this.value != null && this.value.equals(value)) {
+			// reset the value to null
+			firePropertyChanged("value", this.value, this.value = null);
+		}
+
+		firePropertyChanged("value", this.value, this.value = value);
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/BeanSlotInitializerAdapter.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/BeanSlotInitializerAdapter.java
new file mode 100644
index 0000000..d28c53b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/BeanSlotInitializerAdapter.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.beans;
+
+import org.eclipse.osbp.ecview.core.common.uri.AccessibleScope;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class BeanSlotInitializerAdapter.
+ */
+public abstract class BeanSlotInitializerAdapter implements
+		IBeanSlotInitializer {
+
+	/** The registry. */
+	private IBeanRegistry registry;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.beans.IBeanSlotInitializer#intialize(org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry)
+	 */
+	@Override
+	public void intialize(IBeanRegistry registry) {
+		this.registry = registry;
+		doIntialize();
+	}
+
+	/**
+	 * Creates a bean slot in the given registry with the given type.
+	 *
+	 * @param uriString
+	 *            the uri string
+	 * @param type
+	 *            the type
+	 */
+	protected void createBeanSlot(String uriString, Class<?> type) {
+		AccessibleScope accessible = URIHelper.toScope(uriString);
+		accessible.getBeanScope().createBeanSlot(registry, type);
+	}
+
+	/**
+	 * The bean slot have to become initialized.
+	 */
+	protected abstract void doIntialize();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/IBeanRegistry.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/IBeanRegistry.java
new file mode 100644
index 0000000..835d11f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/IBeanRegistry.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.beans;
+
+import java.util.Map;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The bean registry. <br>
+ * Not intended to be subclassed.
+ */
+public interface IBeanRegistry {
+
+	/**
+	 * The beanslot where implementations will expect the root data.
+	 */
+	public static final String MAIN_BEAN_SLOT = "main";
+
+	/** The Constant ROOTBEAN_SELECTOR. */
+	public static final String ROOTBEAN_SELECTOR = "http://eclipse.org/emf/emfclient/uimodel/view/rootbean";
+
+	/**
+	 * Returns a bean for the given selector. It can be used to store transient
+	 * values related to the current view. All returned beans should offer
+	 * PropertyChangeSupport.<br>
+	 * If an instance of a bean for the given selector could be found, it will
+	 * be returned. Otherwise <code>null</code> will be returned.
+	 * <p>
+	 * A common use case for beans would be the sharing of a selected value. For
+	 * instance a selection event on a list may write the selection to the
+	 * context (selector="my.personlist.selection"). And a detail component can
+	 * observe the wrapper of the bean instance (see
+	 * {@link #getBeanSlot(String)} and reflect its values. To observe the value
+	 * change of bean wrapper eclipse data binding may be used.
+	 * 
+	 * @param selector
+	 *            The selector string to identify the bean instance.
+	 * @return valueBean
+	 */
+	public abstract Object getBean(String selector);
+
+	/**
+	 * Registers an instance of the bean to the context. It can be accessed by
+	 * the selector. See also {@link #getBean(String) getBean}.
+	 * <p>
+	 * If not bean slot was created for the selector, then it will be created
+	 * automatically if the bean is not <code>null</code>. If the bean is
+	 * <code>null</code> no slot can be created since its type is not known.<br>
+	 * If a bean slot exists, then the type of the bean has to be assignable to
+	 * the valuetype of the slot.
+	 * 
+	 * @param selector
+	 *            The selector string to identify the bean instance.
+	 * @param bean
+	 *            The bean.
+	 * 
+	 * @throws IllegalArgumentException
+	 *             if the bean is <code>null</code> or the type of the bean is
+	 *             not assignable to the valueType of the slot.
+	 */
+	void setBean(String selector, Object bean);
+
+	/**
+	 * Returns the bean slot that is used internally to store the bean.
+	 * <p>
+	 * 
+	 * @param selector
+	 *            The selector string to identify the value bean instance.
+	 * @return slot
+	 */
+	public abstract ISlot getBeanSlot(String selector);
+
+	/**
+	 * Creates a new bean slot at the registry. If the slot already exists, that
+	 * instance will be returned.
+	 *
+	 * @param selector
+	 *            The selector string to identify the bean instance.
+	 * @param type
+	 *            The type of the bean. Must not be <code>null</code>
+	 * @return the i slot
+	 */
+	ISlot createBeanSlot(String selector, Class<?> type);
+
+	/**
+	 * Creates a new bean slot at the registry. If the slot already exists, that
+	 * instance will be returned.
+	 *
+	 * @param selector
+	 *            The selector string to identify the bean instance.
+	 * @param type
+	 *            The type of the bean. Must not be <code>null</code>
+	 * @param eventTopic
+	 *            The eventTopic which should be used to retrieve beans. Can be
+	 *            <code>null</code>
+	 *            // TODO Pirchner - should new beans also become published to
+	 *            the event admin?
+	 * @return the i slot
+	 */
+	ISlot createBeanSlot(String selector, Class<?> type, String eventTopic);
+
+	/**
+	 * Gets all registered value beans from the registry.
+	 *
+	 * @return the value beans
+	 */
+	Map<String, ISlot> getValueBeans();
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/IBeanSlotInitializer.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/IBeanSlotInitializer.java
new file mode 100644
index 0000000..f94bb4a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/IBeanSlotInitializer.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.beans;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementations are responsible to initialize the bean slots. This is
+ * necessary since databinding needs the type of the value that will be stored
+ * in the slot. Otherwise no context binding is possible.
+ */
+public interface IBeanSlotInitializer {
+
+	/**
+	 * Initializes the bean slots.
+	 *
+	 * @param registry
+	 *            the registry
+	 */
+	void intialize(IBeanRegistry registry);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/ISlot.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/ISlot.java
new file mode 100644
index 0000000..5408bdc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/ISlot.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.beans;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An abstraction for a slot in the context. Slots can keep a value and maybe in
+ * future other things too. The implementation should be bindable with eclipse
+ * databinding and offer PropertyChangeSupport.
+ * <p>
+ * For a use case see IViewContext#getBeanSlot(String, Class). <br>
+ * 
+ * @noimplement Not to be implemented by clients.
+ */
+public interface ISlot {
+
+	/** The Constant PROP_VALUE. */
+	public static final String PROP_VALUE = "value";
+
+	/**
+	 * Returns the given value.
+	 * 
+	 * @return value
+	 */
+	Object getValue();
+
+	/**
+	 * Sets the given value.
+	 * 
+	 * @param value
+	 *            The value to be set
+	 */
+	void setValue(Object value);
+
+	/**
+	 * Returns the type of the value.
+	 *
+	 * @return the value type
+	 */
+	Class<?> getValueType();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/InMemoryBeanProvider.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/InMemoryBeanProvider.java
new file mode 100644
index 0000000..a569a87
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/InMemoryBeanProvider.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+
+package org.eclipse.osbp.ecview.core.common.beans;
+
+import java.util.List;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementations may return beans of any kind that are not persisted, but used
+ * In-Memory. For instance as a suggestion list for combo boxes.
+ */
+public interface InMemoryBeanProvider {
+
+	/**
+	 * Returns a list of beans.
+	 *
+	 * @return the beans
+	 */
+	List<?> getBeans();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/ObjectBean.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/ObjectBean.java
new file mode 100644
index 0000000..bf9f6fe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/beans/ObjectBean.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.beans;
+
+/**
+ * A subclass of {@link AbstractSlot}.
+ */
+public class ObjectBean extends AbstractSlot {
+
+	public ObjectBean(Class<?> valueType) {
+		super(valueType);
+	}
+
+	public ObjectBean(Object value) {
+		super(value);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/AbstractBindingManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/AbstractBindingManager.java
new file mode 100644
index 0000000..0b05e80
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/AbstractBindingManager.java
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ * Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.binding;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.UpdateListStrategy;
+import org.eclipse.core.databinding.UpdateSetStrategy;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Is used to bind values. For details see {@link IECViewBindingManager}.
+ */
+public abstract class AbstractBindingManager extends AbstractDisposable
+		implements IECViewBindingManager {
+
+	/** The validation realm. */
+	private final Realm validationRealm;
+	
+	/** The dbc. */
+	private final DataBindingContext dbc;
+
+	/**
+	 * Instantiates a new abstract binding manager.
+	 *
+	 * @param validationRealm
+	 *            the validation realm
+	 */
+	public AbstractBindingManager(Realm validationRealm) {
+		super();
+		this.validationRealm = validationRealm;
+		dbc = createDatabindingContext(validationRealm);
+	}
+
+	/**
+	 * Creates a new instance of the databinding context.
+	 *
+	 * @param validationRealm
+	 *            the validation realm
+	 * @return the data binding context
+	 */
+	protected DataBindingContext createDatabindingContext(Realm validationRealm) {
+		return new DataBindingContext(validationRealm);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#getValidationRealm()
+	 */
+	public Realm getValidationRealm() {
+		return validationRealm;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#getDatabindingContext()
+	 */
+	@Override
+	public DataBindingContext getDatabindingContext() {
+		return dbc;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.observable.value.IObservableValue)
+	 */
+	@Override
+	public Binding bindValue(IObservableValue target, IObservableValue model) {
+		return bindValue(target, model, new UpdateValueStrategy(
+				UpdateValueStrategy.POLICY_UPDATE), new UpdateValueStrategy(
+				UpdateValueStrategy.POLICY_UPDATE));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.UpdateValueStrategy, org.eclipse.core.databinding.UpdateValueStrategy)
+	 */
+	public final Binding bindValue(IObservableValue target,
+			IObservableValue model, UpdateValueStrategy targetToModel,
+			UpdateValueStrategy modelToTarget) {
+		return dbc.bindValue(target, model, targetToModel, modelToTarget);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#bindList(org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.observable.list.IObservableList)
+	 */
+	@Override
+	public Binding bindList(IObservableList target, IObservableList model) {
+		return bindList(target, model, new UpdateListStrategy(
+				UpdateListStrategy.POLICY_UPDATE), new UpdateListStrategy(
+				UpdateListStrategy.POLICY_UPDATE));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#bindList(org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.UpdateListStrategy, org.eclipse.core.databinding.UpdateListStrategy)
+	 */
+	@Override
+	public Binding bindList(IObservableList target, IObservableList model,
+			UpdateListStrategy targetToModel, UpdateListStrategy modelToTarget) {
+		return getDatabindingContext().bindList(target, model, targetToModel,
+				modelToTarget);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.observable.set.IObservableSet)
+	 */
+	@Override
+	public Binding bindSet(IObservableSet target, IObservableSet model) {
+		return bindSet(target, model, new UpdateSetStrategy(
+				UpdateSetStrategy.POLICY_UPDATE), new UpdateSetStrategy(
+				UpdateSetStrategy.POLICY_UPDATE));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.UpdateSetStrategy, org.eclipse.core.databinding.UpdateSetStrategy)
+	 */
+	@Override
+	public Binding bindSet(IObservableSet target, IObservableSet model,
+			UpdateSetStrategy targetToModel, UpdateSetStrategy modelToTarget) {
+		return getDatabindingContext().bindSet(target, model,
+				new UpdateSetStrategy(UpdateListStrategy.POLICY_UPDATE),
+				new UpdateSetStrategy(UpdateListStrategy.POLICY_UPDATE));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#updateModel()
+	 */
+	@Override
+	public void updateModel() {
+		dbc.updateModels();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager#updateTarget()
+	 */
+	@Override
+	public void updateTarget() {
+		dbc.updateTargets();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.runtime.common.dispose.AbstractDisposable#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		if (isDisposed()) {
+			return;
+		}
+
+		dbc.dispose();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/IECViewBindingManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/IECViewBindingManager.java
new file mode 100644
index 0000000..43b4913
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/IECViewBindingManager.java
@@ -0,0 +1,149 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2015 - Florian Pirchner
+ * 
+ * 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:
+ * Florian Pirchner - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osbp.ecview.core.common.binding;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.UpdateListStrategy;
+import org.eclipse.core.databinding.UpdateSetStrategy;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A manager that is responsible for binding data for one view instance. Each
+ * binding manager has to be connected to exactly one view. All the bindings
+ * contained are bindings related to the associated view.
+ */
+public interface IECViewBindingManager extends IDisposable {
+
+	/** The Constant DEFAULT_GROUPING. */
+	public static final boolean DEFAULT_GROUPING = true;
+	
+	/** The Constant DEFAULT_MARK_NEGATIVE. */
+	public static final boolean DEFAULT_MARK_NEGATIVE = true;
+	
+	/** The Constant DEFAULT_PRECISION. */
+	public static final int DEFAULT_PRECISION = 2;
+
+	/**
+	 * Returns the validation realm for the binding manager.
+	 *
+	 * @return the validation realm
+	 */
+	Realm getValidationRealm();
+
+	/**
+	 * Returns the databinding context that is responsible for binding the view.
+	 *
+	 * @return the databinding context
+	 */
+	DataBindingContext getDatabindingContext();
+
+	/**
+	 * Binds the target to the model. Policy update will be used. Model -&gt;
+	 * Target and Target -&gt; Model automatically. See UpdateValueStrategy.
+	 *
+	 * @param target
+	 *            the target
+	 * @param model
+	 *            the model
+	 * @return The binding
+	 */
+	Binding bindValue(IObservableValue target, IObservableValue model);
+
+	/**
+	 * Binds the target to the model.
+	 *
+	 * @param target
+	 *            the target
+	 * @param model
+	 *            the model
+	 * @param targetToModel
+	 *            the target to model
+	 * @param modelToTarget
+	 *            the model to target
+	 * @return The binding
+	 */
+	Binding bindValue(IObservableValue target, IObservableValue model,
+			UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget);
+
+	/**
+	 * Binds the target to the model.
+	 *
+	 * @param target
+	 *            the target
+	 * @param model
+	 *            the model
+	 * @return The binding
+	 */
+	Binding bindList(IObservableList target, IObservableList model);
+
+	/**
+	 * Binds the target to the model.
+	 *
+	 * @param target
+	 *            the target
+	 * @param model
+	 *            the model
+	 * @param targetToModel
+	 *            the target to model
+	 * @param modelToTarget
+	 *            the model to target
+	 * @return The binding
+	 */
+	Binding bindList(IObservableList target, IObservableList model,
+			UpdateListStrategy targetToModel, UpdateListStrategy modelToTarget);
+
+	/**
+	 * Binds the target to the model.
+	 *
+	 * @param target
+	 *            the target
+	 * @param model
+	 *            the model
+	 * @return The binding
+	 */
+	Binding bindSet(IObservableSet target, IObservableSet model);
+
+	/**
+	 * Binds the target to the model.
+	 *
+	 * @param target
+	 *            the target
+	 * @param model
+	 *            the model
+	 * @param targetToModel
+	 *            the target to model
+	 * @param modelToTarget
+	 *            the model to target
+	 * @return The binding
+	 */
+	Binding bindSet(IObservableSet target, IObservableSet model,
+			UpdateSetStrategy targetToModel, UpdateSetStrategy modelToTarget);
+	
+	/**
+	 * Updates the model with target values.
+	 */
+	void updateModel();
+	
+	/**
+	 * Updates the target with the model values.
+	 */
+	void updateTarget();
+	
+	
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/observables/ContextBindingDelegate.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/observables/ContextBindingDelegate.java
new file mode 100644
index 0000000..fe8035b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/observables/ContextBindingDelegate.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.binding.observables;
+
+import java.net.URI;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry;
+
+/**
+ * The base class of {@link IContextBindingDelegate} that should be overridden by
+ * subclasses.
+ */
+public class ContextBindingDelegate implements IContextBindingDelegate {
+
+	@Override
+	public boolean isFor(IBeanRegistry registry, URI bindingURI) {
+		return false;
+	}
+
+	@Override
+	public IObservableValue observeValue(IBeanRegistry registry, URI bindingURI) {
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public IObservableValue observeValue(Realm realm, IBeanRegistry registry,
+			URI bindingURI) {
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public IObservableList observeList(IBeanRegistry registry, URI bindingURI, Class<?> elementType) {
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public IObservableList observeList(Realm realm, IBeanRegistry registry,
+			URI bindingURI, Class<?> elementType) {
+		throw new UnsupportedOperationException();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/observables/ContextObservables.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/observables/ContextObservables.java
new file mode 100644
index 0000000..4ecb9a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/observables/ContextObservables.java
@@ -0,0 +1,458 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.binding.observables;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.services.IServiceRegistry;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Delegates the calls to the implementing services provided by OSGi-DS.
+ */
+public final class ContextObservables {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ContextObservables.class);
+	
+	/** The instance. */
+	private static ContextObservables instance = new ContextObservables();
+
+	/** The delegate infos. */
+	private final List<DelegateInfo> delegateInfos = Collections
+			.synchronizedList(new ArrayList<DelegateInfo>());
+
+	/**
+	 * Instantiates a new context observables.
+	 */
+	private ContextObservables() {
+	}
+
+	/**
+	 * Returns the instance of that manager.
+	 * 
+	 * @return the instance
+	 */
+	public static ContextObservables getInstance() {
+		return instance;
+	}
+
+	/**
+	 * Removes all delegate. Should only be used very carefully.
+	 */
+	public void clear() {
+		delegateInfos.clear();
+	}
+
+	/**
+	 * Returns an observable value tracking the value of the context described
+	 * by the binding URI.
+	 * 
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @return an observable value tracking the value of the context described
+	 *         by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	public static IObservableValue observeValue(IBeanRegistry registry,
+			URI bindingURI) {
+		return ContextObservables.getInstance().doObserveValue(registry,
+				bindingURI);
+	}
+
+	/**
+	 * Returns an observable value tracking the value of the context described
+	 * by the binding URI.
+	 * 
+	 * @param realm
+	 *            the realm
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @return an observable value tracking the value of the context described
+	 *         by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	public static IObservableValue observeValue(Realm realm,
+			IBeanRegistry registry, URI bindingURI) {
+		return ContextObservables.getInstance().doObserveValue(realm, registry,
+				bindingURI);
+	}
+
+	/**
+	 * Returns an observable list tracking the nested value of the context
+	 * described by the binding URI.
+	 * 
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @param elementType
+	 *            the element type contained in the list.
+	 * @return an observable list tracking the nested value of the context
+	 *         described by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	public static IObservableList observeList(IBeanRegistry registry,
+			URI bindingURI, Class<?> elementType) {
+		return ContextObservables.getInstance().doObserveList(registry,
+				bindingURI, elementType);
+	}
+
+	/**
+	 * Returns an observable list tracking the nested value of the context
+	 * described by the binding URI.
+	 * 
+	 * @param realm
+	 *            the realm
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @param elementType
+	 *            the element type contained in the list.
+	 * @return an observable list tracking the nested value of the context
+	 *         described by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	public static IObservableList observeList(Realm realm,
+			IBeanRegistry registry, URI bindingURI, Class<?> elementType) {
+		return ContextObservables.getInstance().doObserveList(realm, registry,
+				bindingURI, elementType);
+	}
+
+	/**
+	 * Returns an observable value tracking the value of the context described
+	 * by the binding URI.
+	 * 
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @return an observable value tracking the value of the context described
+	 *         by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	protected IObservableValue doObserveValue(IBeanRegistry registry,
+			URI bindingURI) {
+		IContextBindingDelegate delegate = getDelegate(registry, bindingURI);
+		if (delegate != null) {
+			return delegate.observeValue(registry, bindingURI);
+		}
+		LOGGER.error("No proper binding delegate found for element {}",
+				bindingURI);
+		return null;
+	}
+
+	/**
+	 * Returns an observable list tracking the nested value of the context
+	 * described by the binding URI.
+	 * 
+	 * @param realm
+	 *            the realm
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @return an observable list tracking the nested value of the context
+	 *         described by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	protected IObservableValue doObserveValue(Realm realm,
+			IBeanRegistry registry, URI bindingURI) {
+		IContextBindingDelegate delegate = getDelegate(registry, bindingURI);
+		if (delegate != null) {
+			return delegate.observeValue(realm, registry, bindingURI);
+		}
+		LOGGER.error("No proper binding delegate found for element {}",
+				bindingURI);
+		return null;
+	}
+
+	/**
+	 * Returns an observable list tracking the nested value of the context
+	 * described by the binding URI.
+	 * 
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @param elementType
+	 *            the element type contained in the list.
+	 * @return an observable list tracking the nested value of the context
+	 *         described by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	protected IObservableList doObserveList(IBeanRegistry registry,
+			URI bindingURI, Class<?> elementType) {
+		IContextBindingDelegate delegate = getDelegate(registry, bindingURI);
+		if (delegate != null) {
+			return delegate.observeList(registry, bindingURI, elementType);
+		}
+		LOGGER.error("No proper binding delegate found for element {}",
+				bindingURI);
+		return null;
+	}
+
+	/**
+	 * Returns an observable value tracking the value of the context described
+	 * by the binding URI.
+	 * 
+	 * @param realm
+	 *            the realm
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @param elementType
+	 *            the element type contained in the list.
+	 * @return an observable value tracking the value of the context described
+	 *         by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	protected IObservableList doObserveList(Realm realm,
+			IBeanRegistry registry, URI bindingURI, Class<?> elementType) {
+		IContextBindingDelegate delegate = getDelegate(registry, bindingURI);
+		if (delegate != null) {
+			return delegate.observeList(realm, registry, bindingURI, elementType);
+		}
+		LOGGER.error("No proper binding delegate found for element {}",
+				bindingURI);
+		return null;
+	}
+
+	/**
+	 * Returns the delegate for the given information.
+	 *
+	 * @param registry
+	 *            the registry
+	 * @param bindingURI
+	 *            the binding uri
+	 * @return the delegate
+	 */
+	public IContextBindingDelegate getDelegate(IBeanRegistry registry,
+			URI bindingURI) {
+		for (DelegateInfo info : delegateInfos
+				.toArray(new DelegateInfo[delegateInfos.size()])) {
+			IContextBindingDelegate delegate = info.delegate;
+			if (delegate.isFor(registry, bindingURI)) {
+				return delegate;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Adds a new delegate to the manager. The lower the sequence the earlier
+	 * the delegate will be used.
+	 * 
+	 * @param sequence
+	 *            the sequence of the delegate
+	 * @param delegate
+	 *            delegate to be added
+	 */
+	public void addDelegate(int sequence, IContextBindingDelegate delegate) {
+		if (!containsDelegate(delegate)) {
+			delegateInfos.add(new DelegateInfo(sequence, delegate));
+			Collections.sort(delegateInfos);
+		}
+	}
+
+	/**
+	 * Returns the sequence for the given delegate.
+	 *
+	 * @param delegate
+	 *            the delegate
+	 * @return the sequence
+	 */
+	public int getSequence(IContextBindingDelegate delegate) {
+		DelegateInfo info = findDelegateInfo(delegate);
+		return info != null ? info.sequence : -1;
+	}
+
+	/**
+	 * Returns true if the delegate is contained in the list of delegate infos.
+	 *
+	 * @param delegate
+	 *            the delegate
+	 * @return true, if successful
+	 */
+	protected boolean containsDelegate(IContextBindingDelegate delegate) {
+		synchronized (delegateInfos) {
+			for (DelegateInfo info : delegateInfos) {
+				if (info.delegate == delegate) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Returns the delegate info if the delegate is contained in the list of
+	 * delegate infos. Otherwise returns <code>null</code>.
+	 *
+	 * @param delegate
+	 *            the delegate
+	 * @return the delegate info
+	 */
+	protected DelegateInfo findDelegateInfo(IContextBindingDelegate delegate) {
+		synchronized (delegateInfos) {
+			for (DelegateInfo info : delegateInfos) {
+				if (info.delegate == delegate) {
+					return info;
+				}
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Removes the delegate from the manager.
+	 * 
+	 * @param delegate
+	 *            delegate to be removed
+	 */
+	public void removeDelegate(IContextBindingDelegate delegate) {
+		if (delegate == null) {
+			return;
+		}
+		synchronized (delegateInfos) {
+			for (Iterator<DelegateInfo> iterator = delegateInfos.iterator(); iterator
+					.hasNext();) {
+				DelegateInfo info = (DelegateInfo) iterator.next();
+				if (info.delegate == delegate) {
+					iterator.remove();
+					return;
+				}
+			}
+		}
+	}
+
+	/**
+	 * The OSGi component.
+	 */
+	public static class Component {
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            ComponentContext
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void activate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("EditPartFactoryManager activated");
+		}
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            ComponentContext
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void deactivate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("EditPartFactoryManager deactivated");
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 * 
+		 * @param delegate
+		 *            Manager to be added.
+		 * @param properties
+		 *            OSGi service properties.
+		 */
+		protected void addDelegate(IContextBindingDelegate delegate,
+				Map<String, ?> properties) {
+			int sequence = IServiceRegistry.PROPERTY__DEFAULT_SQUENCE;
+			if (properties.containsKey(IServiceRegistry.PROPERTY__SQUENCE)) {
+				sequence = (Integer) properties
+						.get(IServiceRegistry.PROPERTY__SQUENCE);
+			}
+			ContextObservables.getInstance().addDelegate(sequence, delegate);
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 * 
+		 * @param delegate
+		 *            Manager to be removed.
+		 */
+		protected void removeDelegate(IContextBindingDelegate delegate) {
+			ContextObservables.getInstance().removeDelegate(delegate);
+		}
+	}
+
+	/**
+	 * The Class DelegateInfo.
+	 */
+	private static class DelegateInfo implements Comparable<DelegateInfo> {
+		
+		/** The sequence. */
+		private final int sequence;
+		
+		/** The delegate. */
+		private final IContextBindingDelegate delegate;
+
+		/**
+		 * Instantiates a new delegate info.
+		 *
+		 * @param sequence
+		 *            the sequence
+		 * @param delegate
+		 *            the delegate
+		 */
+		private DelegateInfo(int sequence, IContextBindingDelegate delegate) {
+			super();
+			this.sequence = sequence;
+			this.delegate = delegate;
+		}
+
+		/* (non-Javadoc)
+		 * @see java.lang.Comparable#compareTo(java.lang.Object)
+		 */
+		@Override
+		public int compareTo(DelegateInfo o) {
+			return sequence - o.sequence;
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/observables/IContextBindingDelegate.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/observables/IContextBindingDelegate.java
new file mode 100644
index 0000000..b0c895c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/binding/observables/IContextBindingDelegate.java
@@ -0,0 +1,118 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.binding.observables;
+
+import java.net.URI;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Binding delegates are used to offer a common interface for databinding.
+ * Subclasses should implement the databinding for the respective type. For
+ * instance <code>pojo binding</code>, <code>bean binding</code> and
+ * <code>emf binding</code>.
+ * <p>
+ * The {@link #isFor(IBeanRegistry, URI)} is used to check if the delegate can be used for
+ * the given object.
+ * 
+ * @noimplement - Do not directly implement the interface. Implement
+ *              ContextBindingDelegate since methods declarations may be added.
+ */
+public interface IContextBindingDelegate {
+
+	/**
+	 * Returns true if that binding delegate can be used for the URI.
+	 *
+	 * @param registry
+	 *            the registry
+	 * @param bindingURI
+	 *            the binding uri
+	 * @return true, if is for
+	 */
+	boolean isFor(IBeanRegistry registry, URI bindingURI);
+
+	/**
+	 * Returns an observable value tracking the value of the context described
+	 * by the binding URI.
+	 * 
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @return an observable value tracking the value of the context described
+	 *         by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	IObservableValue observeValue(IBeanRegistry registry, URI bindingURI);
+
+	/**
+	 * Returns an observable value tracking the value of the context described
+	 * by the binding URI.
+	 * 
+	 * @param realm
+	 *            the realm
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @return an observable value tracking the value of the context described
+	 *         by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	IObservableValue observeValue(Realm realm, IBeanRegistry registry,
+			URI bindingURI);
+
+	/**
+	 * Returns an observable list tracking the nested value of the context
+	 * described by the binding URI.
+	 * 
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @param elementType
+	 *            the element type contained in the list.
+	 * @return an observable list tracking the nested value of the context
+	 *         described by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	IObservableList observeList(IBeanRegistry registry, URI bindingURI,
+			Class<?> elementType);
+
+	/**
+	 * Returns an observable list tracking the nested value of the context
+	 * described by the binding URI.
+	 * 
+	 * @param realm
+	 *            the realm
+	 * @param registry
+	 *            the registry.
+	 * @param bindingURI
+	 *            the URI that keeps the binding target information.
+	 * @param elementType
+	 *            the element type contained in the list.
+	 * @return an observable list tracking the nested value of the context
+	 *         described by the binding URI
+	 * @throws IllegalArgumentException if the {@link ISlot} bean slot was not
+	 *        created yet.
+	 */
+	IObservableList observeList(Realm realm, IBeanRegistry registry,
+			URI bindingURI, Class<?> elementType);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/ECViewCallable.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/ECViewCallable.java
new file mode 100644
index 0000000..b0d380c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/ECViewCallable.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.concurrent;
+
+import java.util.concurrent.Callable;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ECViewCallable.
+ *
+ * @param <V>
+ *            the value type
+ */
+public abstract class ECViewCallable<V> implements Callable<V> {
+
+	/** The context. */
+	private final IViewContext context;
+
+	/**
+	 * Instantiates a new EC view callable.
+	 *
+	 * @param context
+	 *            the context
+	 */
+	public ECViewCallable(IViewContext context) {
+		super();
+		this.context = context;
+	}
+
+	/**
+	 * The view context, this callable is assigned to. May be <code>null</code>.
+	 *
+	 * @return the context
+	 */
+	public IViewContext getContext() {
+		return context;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/ECViewRunable.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/ECViewRunable.java
new file mode 100644
index 0000000..c724f88
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/ECViewRunable.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.concurrent;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ECViewRunable.
+ */
+public abstract class ECViewRunable implements Runnable {
+
+	/** The context. */
+	private final IViewContext context;
+
+	/**
+	 * Instantiates a new EC view runable.
+	 *
+	 * @param context
+	 *            the context
+	 */
+	public ECViewRunable(IViewContext context) {
+		super();
+		this.context = context;
+	}
+
+	/**
+	 * The view context, this runnable is assigned to. May be <code>null</code>.
+	 *
+	 * @return the context
+	 */
+	public IViewContext getContext() {
+		return context;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/IExecutorService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/IExecutorService.java
new file mode 100644
index 0000000..2e2632c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/IExecutorService.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.concurrent;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.Future;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface IExecutorService.
+ */
+public interface IExecutorService {
+
+	/**
+	 * Executes the given callable in a different thread.
+	 *
+	 * @param <V>
+	 *            the value type
+	 * @param callable
+	 *            the callable
+	 * @return future
+	 */
+	<V> Future<V> execute(Callable<V> callable);
+
+	/**
+	 * Executes the given runnable in a different thread.
+	 *
+	 * @param <V>
+	 *            the value type
+	 * @param runnable
+	 *            the runnable
+	 * @return future
+	 */
+	<V> Future<V> execute(Runnable runnable);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/internal/ExecutorService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/internal/ExecutorService.java
new file mode 100644
index 0000000..a0087b0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/concurrent/internal/ExecutorService.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.concurrent.internal;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+import org.eclipse.osbp.ecview.core.common.concurrent.IExecutorService;
+import org.osgi.service.component.ComponentContext;
+
+public class ExecutorService implements IExecutorService {
+
+	private java.util.concurrent.ExecutorService executor;
+
+	protected void activate(ComponentContext context) {
+		executor = Executors.newFixedThreadPool(10);
+	}
+
+	protected void deactivate(ComponentContext context) {
+		executor.shutdown();
+		executor = null;
+	}
+
+	@Override
+	public <V> Future<V> execute(Callable<V> callable) {
+		return executor.submit(callable);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Future<?> execute(Runnable runnable) {
+		return executor.submit(runnable);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ConfigurationAdapter.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ConfigurationAdapter.java
new file mode 100644
index 0000000..5d8c3a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ConfigurationAdapter.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.context;
+
+public class ConfigurationAdapter implements IConfiguration {
+
+	@Override
+	public void beforeUiRendering(IContext context) {
+
+	}
+
+	@Override
+	public void afterUiRendering(IContext context) {
+
+	}
+
+	@Override
+	public void beforeBind(IContext context) {
+
+	}
+
+	@Override
+	public void afterBind(IContext context) {
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ContextException.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ContextException.java
new file mode 100644
index 0000000..914c861
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ContextException.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.context;
+
+/**
+ * Exception thrown by contexts.
+ */
+@SuppressWarnings("serial")
+public class ContextException extends Exception {
+
+	/**
+	 * Constructor.
+	 */
+	public ContextException() {
+		super();
+	}
+
+	/**
+	 * Constructor.
+	 * @param message Message to be contained
+	 */
+	public ContextException(String message) {
+		super(message);
+	}
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/DisposableContext.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/DisposableContext.java
new file mode 100644
index 0000000..e81df07
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/DisposableContext.java
@@ -0,0 +1,298 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.context;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.beans.ObjectBean;
+import org.eclipse.osbp.ecview.core.common.services.DelegatingServiceProviderManager;
+import org.eclipse.osbp.ecview.core.common.services.IServiceRegistry;
+import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable;
+import org.eclipse.osbp.runtime.common.event.IEventBroker;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Base implementation for a disposable context.
+ */
+public abstract class DisposableContext extends AbstractDisposable implements
+		IBeanRegistry, IServiceRegistry, IContext {
+
+	/** The Constant logger. */
+	private static final Logger logger = LoggerFactory
+			.getLogger(DisposableContext.class);
+
+	/** The value beans. */
+	private Map<String, ISlot> valueBeans = Collections
+			.synchronizedMap(new HashMap<String, ISlot>());
+
+	/** The services. */
+	private Map<String, Object> services = Collections
+			.synchronizedMap(new HashMap<String, Object>());
+
+	/** The final dispose. */
+	// preparations for final disposal after view has been disposed
+	private Map<String, Object> finalDispose = new HashMap<String, Object>();
+
+	/** The locale. */
+	private Locale locale = Locale.getDefault();
+
+	/** The event handlers. */
+	private List<EventHandler> eventHandlers = new ArrayList<EventHandler>();
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.IContext#setLocale(java.util.Locale)
+	 */
+	@Override
+	public void setLocale(Locale locale) {
+		Locale oldLocale = this.locale;
+		this.locale = locale;
+
+		if (oldLocale != this.locale) {
+			updateLocale(this.locale);
+		}
+	}
+
+	/**
+	 * The locale changed and needs to become updated.
+	 *
+	 * @param locale
+	 *            the locale
+	 */
+	protected abstract void updateLocale(Locale locale);
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.IContext#getLocale()
+	 */
+	@Override
+	public Locale getLocale() {
+		return locale != null ? locale : Locale.getDefault();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public Object getBean(String selector) {
+		checkDisposed();
+
+		ISlot slot = getBeanSlot(selector);
+		return slot != null ? slot.getValue() : null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public void setBean(String selector, Object bean) {
+		checkDisposed();
+
+		ISlot slot = getBeanSlot(selector);
+		if (slot == null && bean == null) {
+			throw new IllegalArgumentException(
+					"Can not create a slot for bean that is null!");
+		}
+
+		if (slot == null) {
+			slot = createBeanSlot(selector, bean.getClass());
+		} else {
+			if (bean != null
+					&& !slot.getValueType().isAssignableFrom(bean.getClass())) {
+				throw new IllegalArgumentException(String.format(
+						"%s is not a valid class for slot with type %s", bean
+								.getClass().getName(), slot.getValueType()
+								.getName()));
+			}
+		}
+
+		valueBeans.get(selector).setValue(bean);
+		logger.debug("Bean registered: {}", selector);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry#getBeanSlot(java.lang.String)
+	 */
+	@Override
+	public ISlot getBeanSlot(String selector) {
+		checkDisposed();
+		ISlot slot = valueBeans.get(selector);
+		return slot;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry#createBeanSlot(java.lang.String, java.lang.Class)
+	 */
+	@Override
+	public ISlot createBeanSlot(String selector, Class<?> type) {
+		ISlot slot = getBeanSlot(selector);
+		if (slot == null) {
+			slot = new ObjectBean(type);
+			valueBeans.put(selector, slot);
+		}
+		return slot;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry#createBeanSlot(java.lang.String, java.lang.Class, java.lang.String)
+	 */
+	@Override
+	public ISlot createBeanSlot(String selector, Class<?> type,
+			String eventTopic) {
+		final ISlot slot = createBeanSlot(selector, type);
+		if (eventTopic != null && !eventTopic.equals("")) {
+			IEventBroker eventBroker = getService(IEventBroker.class.getName());
+			if (eventBroker != null) {
+				EventHandler handler = new EventHandler() {
+					@Override
+					public void handleEvent(Event event) {
+						slot.setValue(event.getProperty(IEventBroker.DATA));
+					}
+				};
+				eventHandlers.add(handler);
+				eventBroker.subscribe(eventTopic, handler);
+			} else {
+				logger.error("EventBroker service not available!");
+			}
+		}
+		return slot;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.services.IServiceRegistry#registerService(java.lang.String, java.lang.Object)
+	 */
+	public void registerService(String selector, Object service) {
+		checkDisposed();
+		synchronized (services) {
+			logger.debug("Service registered: {}", selector);
+			services.put(selector, service);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.services.IServiceRegistry#unregisterService(java.lang.String)
+	 */
+	public void unregisterService(String selector) {
+		checkDisposed();
+		synchronized (services) {
+			logger.debug("Service unregistered: {}", selector);
+			services.remove(selector);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.services.IServiceRegistry#getService(java.lang.String)
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <S> S getService(String selector) {
+		checkDisposed();
+
+		synchronized (services) {
+			if (!services.containsKey(selector)) {
+				S service = DelegatingServiceProviderManager.getInstance()
+						.createService(selector, this);
+				if (service != null) {
+					registerService(selector, service);
+				}
+			}
+		}
+
+		// now try to access the view set
+		S service = (S) services.get(selector);
+
+		// use the strategy of the subclass to find the service
+		if (service == null) {
+			service = delegateGetService(selector);
+		}
+
+		// access the OSGi service registry to find the service
+		if (service == null) {
+			BundleContext bundleContext = FrameworkUtil.getBundle(getClass())
+					.getBundleContext();
+			ServiceReference<?> serviceRef = bundleContext
+					.getServiceReference(selector);
+			if (serviceRef != null) {
+				service = (S) bundleContext.getService(serviceRef);
+			}
+		}
+
+		if (service == null) {
+			logger.warn("No proper serviceProvider found for element {}",
+					selector);
+		}
+
+		return service;
+	}
+
+	/**
+	 * If no service was found in the current context, sub classes may specify a
+	 * different strategy to find it.
+	 *
+	 * @param <S>
+	 *            the generic type
+	 * @param selector
+	 *            the selector
+	 * @return the s
+	 */
+	protected <S> S delegateGetService(String selector) {
+		return null;
+	}
+
+	/**
+	 * Allows the context to prepare its disposal. In a first state, the view
+	 * will be disposed and afterwards the context needs to do some clean up. To
+	 * avoid disposed exceptions, the context may prepare required services,...
+	 */
+	protected void preDispose() {
+		if (eventHandlers != null) {
+			finalDispose.put(IEventBroker.class.getName(),
+					getService(IEventBroker.class.getName()));
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.runtime.common.dispose.AbstractDisposable#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+		// Remove all event handler from the event service
+		IEventBroker eventBroker = (IEventBroker) finalDispose
+				.get(IEventBroker.class.getName());
+		for (EventHandler eventHandler : eventHandlers) {
+			eventBroker.unsubscribe(eventHandler);
+		}
+
+		eventHandlers = null;
+		valueBeans = null;
+		services = null;
+		finalDispose = null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry#getValueBeans()
+	 */
+	@Override
+	public Map<String, ISlot> getValueBeans() {
+		return valueBeans;
+	}
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/IConfiguration.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/IConfiguration.java
new file mode 100644
index 0000000..fbf5e54
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/IConfiguration.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.context;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This class is called if the view becomes rendered.
+ * 
+ * @noimplement should not be implemented by clients. Use ConfigurationAdapter
+ *              instead.
+ */
+public interface IConfiguration {
+
+	/**
+	 * Is called before the UI rendering is started.
+	 *
+	 * @param context
+	 *            the context
+	 */
+	void beforeUiRendering(IContext context);
+
+	/**
+	 * Is called after the UI rendering was finished.
+	 *
+	 * @param context
+	 *            the context
+	 */
+	void afterUiRendering(IContext context);
+
+	/**
+	 * Is called before the binding is activated.
+	 *
+	 * @param context
+	 *            the context
+	 */
+	void beforeBind(IContext context);
+
+	/**
+	 * Is called after the binding was activated.
+	 *
+	 * @param context
+	 *            the context
+	 */
+	void afterBind(IContext context);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/IContext.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/IContext.java
new file mode 100644
index 0000000..f5bdceb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/IContext.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2013 Loetz GmbH&Co.KG(Heidelberg). 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: Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.context;
+
+import java.util.Locale;
+
+import org.eclipse.osbp.ecview.core.common.IAccessible;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Marker interface for context.
+ * 
+ * @author dominguez
+ * 
+ */
+public interface IContext extends IDisposable, IAccessible {
+
+	/**
+	 * Sets the current locale of the view or viewset.
+	 *
+	 * @param locale
+	 *            the new locale
+	 */
+	void setLocale(Locale locale);
+
+	/**
+	 * Returns the current locale of the view or viewset.
+	 *
+	 * @return the locale
+	 */
+	Locale getLocale();
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ILocaleChangedService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ILocaleChangedService.java
new file mode 100644
index 0000000..89932bb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ILocaleChangedService.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.context;
+
+import java.util.Locale;
+
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This service can be consumed by the viewContext or viewSetContext and will
+ * notify listener about a locale change.
+ */
+public interface ILocaleChangedService extends IDisposable {
+
+	/** The id. */
+	public static String ID = ILocaleChangedService.class.getName();
+
+	/**
+	 * Adds a locale listener to the service.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	void addLocaleListener(LocaleListener listener);
+
+	/**
+	 * Removes the given locale listener from the service.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	void removeLocaleListener(LocaleListener listener);
+
+	/**
+	 * Notifies the listener about the changed locale.
+	 *
+	 * @param locale
+	 *            the locale
+	 */
+	void notifyLocaleChanged(Locale locale);
+
+	/**
+	 * The listener interface for receiving locale events. The class that is
+	 * interested in processing a locale event implements this interface, and
+	 * the object created with that class is registered with a component using
+	 * the component's <code>addLocaleListener</code> method. When
+	 * the locale event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 */
+	interface LocaleListener {
+
+		/**
+		 * Notifies the listener about a locale change.
+		 *
+		 * @param locale
+		 *            the locale
+		 */
+		void localeChanged(Locale locale);
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/IViewContext.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/IViewContext.java
new file mode 100644
index 0000000..6876307
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/IViewContext.java
@@ -0,0 +1,195 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.context;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Future;
+
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.editpart.IExposedActionEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.notification.ILifecycleEvent;
+import org.eclipse.osbp.ecview.core.common.services.IThirdPartyServiceDelegate;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityManager;
+import org.eclipse.osbp.runtime.common.event.IEventBroker;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Context containing information about the current {@link IViewEditpart}
+ * instance.<br>
+ * Not intended to be subclassed.
+ */
+public interface IViewContext extends IContext {
+
+	/**
+	 * A Map&lt;String, Object&gt; can be provided by the parameter at rendering
+	 * time. This map will be used to initialize the services.
+	 */
+	public static final String PARAM_SERVICES = "viewcontext.services";
+
+	/**
+	 * Allows to pass an instance of {@link IThirdPartyServiceDelegate}. It will
+	 * be set to the view context before starting rendering.
+	 */
+	public static final String PARAM_THIRDPARTY_SERVICE_PROVIDER = "viewcontext.service.provider.thirdparty";
+
+	/**
+	 * Allows to pass an instance of {@link IConfiguration}. It will be set to
+	 * the view context before starting rendering.
+	 */
+	public static final String PARAM_CONFIGURATION = "viewcontext.configuration";
+
+	/**
+	 * Sends events by the {@link IEventBroker} if service available. Data is
+	 * {@link ILifecycleEvent}.
+	 */
+	public static final String TOPIC_LIFECYCLE = "ecview/lifecycle";
+
+	/**
+	 * Returns the URI that specifies the UI kit to be used.
+	 * 
+	 * @return presentationURI
+	 */
+	String getPresentationURI();
+
+	/**
+	 * Returns the {@link IViewEditpart} that is related with this context.
+	 * 
+	 * @return viewEditpart
+	 */
+	IViewEditpart getViewEditpart();
+
+	/**
+	 * Sets the view editpart to be used. Setting twice is not allowed.
+	 * 
+	 * @param viewEditpart
+	 */
+	void setViewEditpart(IViewEditpart viewEditpart);
+
+	/**
+	 * Returns the visibility manager.
+	 *
+	 * @return the visibility manager
+	 */
+	IVisibilityManager getVisibilityManager();
+
+	/**
+	 * Returns a list of exposed actions. These actions must be supported by the
+	 * UI element, that embeds the view rendered by this context.<br>
+	 * Common usecases may be "loading models from JPA", "support JPA queries",
+	 * "open different eclipse or vaaclipse views",...
+	 *
+	 * @return the exposed actions
+	 */
+	List<IExposedActionEditpart> getExposedActions();
+
+	// TODO: check link getValueBean
+	/**
+	 * Registers an instance of value bean to the context. It can be accessed by
+	 * the selector. See also {@link ISlot} or {link getValueBean(String)
+	 * getValueBean}.
+	 *
+	 * @param selector
+	 *            The selector string to identify the value bean instance.
+	 * @param bean
+	 *            The value bean.
+	 */
+	void setBean(String selector, Object bean);
+
+	/**
+	 * Returns the root layout where all UI elements should be child elements
+	 * from it.
+	 * 
+	 * @return rootLayout
+	 */
+	Object getRootLayout();
+
+	/**
+	 * Renders the UI based on the {@link IViewEditpart} and the given
+	 * presentationURI.
+	 *
+	 * @param presentationURI
+	 *            The URI that specifies the UI kit to be used. May be
+	 *            <code>null</code>.
+	 * @param rootLayout
+	 *            The given root layout is the base element for the elements to
+	 *            be rendered.
+	 * @param parameter
+	 *            Parameters that can be passed for rendering
+	 * @throws ContextException
+	 *             if the UI was already rendered or the rootlayout is
+	 *             <code>null</code>
+	 */
+	void render(String presentationURI, Object rootLayout,
+			Map<String, Object> parameter) throws ContextException;
+
+	/**
+	 * Returns true, if the UI was already rendered.
+	 * 
+	 * @return rendered
+	 */
+	boolean isRendered();
+
+	/**
+	 * Returns the model element with the given id or <code>null</code> if no
+	 * element could be found.
+	 *
+	 * @param id
+	 *            the id
+	 * @return the object
+	 */
+	Object findModelElement(String id);
+
+	/**
+	 * Returns the embeddable model element which binds the given bindingId
+	 * matched by the given regex. Or <code>null</code> if no element could be
+	 * found.
+	 * <p>
+	 * Following bindingIds are available in ECView:
+	 * <ul>
+	 * <li><code>beanslot/{beanslot}/{propertyPath}</code></li>
+	 * <li><code>beanvalue/{beanClassName}/{propertyPath}</code></li>
+	 * <li><code>modelBinding/{elementId}/{propertyPath}</code></li>
+	 * <li><code>uiSelection/{elementId}/{propertyPath}</code></li>
+	 * <li><code>uiValue/{elementId}</code></li>
+	 * <li><code>uiVisibilityProcessor/{property}</code></li>
+	 * <li><code>uiActivated/{elementId}</code></li>
+	 * </ul>
+	 *
+	 * @param bindingIdRegex
+	 *            the binding id regex
+	 * @return the object
+	 */
+	Object findBoundField(String bindingIdRegex);
+
+	/**
+	 * Executes the given runnable. It is ensured that the runnable will be
+	 * executed within the context of the user interface related to this
+	 * context.
+	 *
+	 * @param runnable
+	 *            the runnable
+	 */
+	void exec(Runnable runnable);
+
+	/**
+	 * Executes the given runnable in a different thread. It is ensured that the
+	 * runnable will be executed within the context of the user interface
+	 * related to this context.
+	 *
+	 * @param runnable
+	 *            the runnable
+	 * @return the future
+	 */
+	Future<?> execAsync(Runnable runnable);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ViewContext.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ViewContext.java
new file mode 100644
index 0000000..b3bdc26
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ViewContext.java
@@ -0,0 +1,420 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.context;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.Future;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IExposedActionEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.notification.ILifecycleEvent;
+import org.eclipse.osbp.ecview.core.common.notification.ILifecycleService;
+import org.eclipse.osbp.ecview.core.common.notification.LifecycleEvent;
+import org.eclipse.osbp.ecview.core.common.services.IThirdPartyServiceDelegate;
+import org.eclipse.osbp.ecview.core.common.services.IWidgetAssocationsService;
+import org.eclipse.osbp.ecview.core.common.tooling.IWidgetMouseClickService;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityManager;
+import org.eclipse.osbp.ecview.core.common.visibility.impl.VisibilityManager;
+import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Implementation of the {@link IViewContext}.
+ */
+public class ViewContext extends DisposableContext implements IViewContext {
+
+	/** The Constant logger. */
+	private static final Logger logger = LoggerFactory
+			.getLogger(ViewContext.class);
+
+	/** The final dispose. */
+	// preparations for final disposal after view has been disposed
+	private Map<String, Object> finalDispose = new HashMap<String, Object>();
+
+	/** The visibility manager. */
+	private VisibilityManager visibilityManager;
+	
+	/** The view editpart. */
+	private IViewEditpart viewEditpart;
+	
+	/** The root layout. */
+	private Object rootLayout;
+	
+	/** The presentation uri. */
+	private String presentationURI;
+
+	/** The rendered. */
+	private boolean rendered;
+
+	/** The thirdparty service delegate. */
+	private IThirdPartyServiceDelegate thirdpartyServiceDelegate;
+
+	/**
+	 * Default Constructor for tests only! Do not use.
+	 */
+	public ViewContext() {
+	}
+	
+	public void setViewEditpart(IViewEditpart viewEditpart) {
+		if(this.viewEditpart == null) {
+			this.viewEditpart = viewEditpart;
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public String getPresentationURI() {
+		checkDisposed();
+
+		return presentationURI;
+	}
+
+	/**
+	 * Delegates the service request to the view set.
+	 *
+	 * @param <S>
+	 *            the generic type
+	 * @param selector
+	 *            the selector
+	 * @return the s
+	 */
+	@SuppressWarnings("unchecked")
+	protected <S> S delegateGetService(String selector) {
+		if (selector.equals(ILocaleChangedService.ID)) {
+			LocaleChangedService service = new LocaleChangedService();
+			registerService(selector, service);
+			return (S) service;
+		} else if (selector.equals(IWidgetMouseClickService.ID)) {
+			IWidgetMouseClickService service = getViewEditpart().createService(
+					IWidgetMouseClickService.class);
+			registerService(selector, service);
+			return (S) service;
+		} else if (selector.equals(IWidgetAssocationsService.ID)) {
+			IWidgetAssocationsService<?, ?> service = getViewEditpart()
+					.createService(IWidgetAssocationsService.class);
+			registerService(selector, service);
+			return (S) service;
+		} else {
+			if (thirdpartyServiceDelegate != null) {
+				if (thirdpartyServiceDelegate.isFor(selector, this)) {
+					Object service = thirdpartyServiceDelegate.createService(
+							selector, this);
+					// do NOT register the service since another call may return
+					// a different service instance.
+					return (S) service;
+				}
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * Sets the URI that is used to determine the UI kit that should be used to
+	 * render the UI.
+	 * 
+	 * @param presentationURI
+	 *            URI selecting the UI-Kit
+	 */
+	public void setPresentationURI(String presentationURI) {
+		checkDisposed();
+
+		if (isRendered()) {
+			throw new IllegalArgumentException("Not valid if already rendered!");
+		}
+
+		this.presentationURI = presentationURI;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IViewEditpart getViewEditpart() {
+		checkDisposed();
+
+		return viewEditpart;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.IViewContext#getVisibilityManager()
+	 */
+	@Override
+	public IVisibilityManager getVisibilityManager() {
+		if (visibilityManager == null) {
+			visibilityManager = new VisibilityManager(this);
+		}
+		return visibilityManager;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.IViewContext#getExposedActions()
+	 */
+	@Override
+	public List<IExposedActionEditpart> getExposedActions() {
+		return getViewEditpart().getExposedActions();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Object getRootLayout() {
+		checkDisposed();
+
+		return rootLayout;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.runtime.common.dispose.AbstractDisposable#dispose()
+	 */
+	@Override
+	synchronized public void dispose() {
+		preDispose();
+
+		super.dispose();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	synchronized public void render(String presentationURI, Object rootLayout,
+			Map<String, Object> parameter) throws ContextException {
+		checkDisposed();
+
+		if (rootLayout == null) {
+			throw new ContextException("RootLayout must not be null!");
+		}
+
+		if (rendered) {
+			throw new ContextException("Has already been rendered!");
+		}
+
+		try {
+			this.presentationURI = presentationURI;
+			this.rootLayout = rootLayout;
+
+			// start to render
+			//
+			IViewEditpart editPart = getViewEditpart();
+
+			if (parameter != null) {
+				// Set the configuration
+				IConfiguration config = (IConfiguration) parameter
+						.get(IViewContext.PARAM_CONFIGURATION);
+				if (config != null) {
+					editPart.setConfiguration(config);
+				}
+
+				// Set the third party service delegate
+				thirdpartyServiceDelegate = (IThirdPartyServiceDelegate) parameter
+						.get(IViewContext.PARAM_THIRDPARTY_SERVICE_PROVIDER);
+
+				// Register all services
+				@SuppressWarnings("unchecked")
+				Map<String, Object> services = (Map<String, Object>) parameter
+						.get(IViewContext.PARAM_SERVICES);
+				if (services != null) {
+					for (Map.Entry<String, Object> entry : services.entrySet()) {
+						registerService(entry.getKey(), entry.getValue());
+					}
+				}
+			}
+
+			// render the UI
+			editPart.render(parameter);
+
+			ILifecycleService lifecycleService = getService(ILifecycleService.class
+					.getName());
+			// send event that context is disposed
+			if (lifecycleService != null) {
+				lifecycleService.notifyLifecycle(new LifecycleEvent(
+						getViewEditpart(), ILifecycleEvent.CONTEXT_CREATED));
+			}
+		} catch (Exception ex) {
+			logger.error("{}", ex);
+		} finally {
+			rendered = true;
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isRendered() {
+		checkDisposed();
+
+		return rendered;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.IViewContext#exec(java.lang.Runnable)
+	 */
+	@Override
+	public void exec(Runnable runnable) {
+		checkDisposed();
+
+		getViewEditpart().exec(runnable);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.IViewContext#execAsync(java.lang.Runnable)
+	 */
+	@Override
+	public Future<?> execAsync(Runnable runnable) {
+		checkDisposed();
+
+		return getViewEditpart().execAsync(runnable);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.DisposableContext#updateLocale(java.util.Locale)
+	 */
+	@Override
+	protected void updateLocale(Locale locale) {
+		ILocaleChangedService service = getService(ILocaleChangedService.ID);
+		if (service != null) {
+			service.notifyLocaleChanged(locale);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.IViewContext#findModelElement(java.lang.String)
+	 */
+	@Override
+	public Object findModelElement(String id) {
+		return viewEditpart.findModelElement(id);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.IViewContext#findBoundField(java.lang.String)
+	 */
+	@Override
+	public Object findBoundField(String bindingIdRegex) {
+		return viewEditpart.findBoundField(bindingIdRegex);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.context.DisposableContext#preDispose()
+	 */
+	protected void preDispose() {
+		super.preDispose();
+
+		finalDispose.put(IWidgetAssocationsService.class.getName(),
+				getService(IWidgetAssocationsService.ID));
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void internalDispose() {
+		ILifecycleService lifecycleService = getService(ILifecycleService.class
+				.getName());
+		try {
+			viewEditpart.dispose();
+
+			// Clear all associations
+			@SuppressWarnings("rawtypes")
+			IWidgetAssocationsService service = (IWidgetAssocationsService) finalDispose
+					.get(IWidgetAssocationsService.ID);
+			if(service != null) {
+				service.clear();
+			}
+			finalDispose = null;
+			visibilityManager = null;
+		} finally {
+			super.internalDispose();
+
+			// send event that context is disposed
+			if (lifecycleService != null) {
+				lifecycleService.notifyLifecycle(new LifecycleEvent(
+						getViewEditpart(), ILifecycleEvent.CONTEXT_DISPOSED));
+			}
+		}
+	}
+
+	/**
+	 * This service notifies interested parties about a locale change.
+	 */
+	public class LocaleChangedService extends AbstractDisposable implements
+			ILocaleChangedService {
+
+		/** The listeners. */
+		private List<LocaleListener> listeners;
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.osbp.ecview.core.common.context.ILocaleChangedService#addLocaleListener(org.eclipse.osbp.ecview.core.common.context.ILocaleChangedService.LocaleListener)
+		 */
+		@Override
+		public void addLocaleListener(LocaleListener listener) {
+			checkDisposed();
+
+			if (listeners == null) {
+				listeners = new ArrayList<ILocaleChangedService.LocaleListener>();
+			}
+
+			if (!listeners.contains(listener)) {
+				listeners.add(listener);
+			}
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.osbp.ecview.core.common.context.ILocaleChangedService#removeLocaleListener(org.eclipse.osbp.ecview.core.common.context.ILocaleChangedService.LocaleListener)
+		 */
+		@Override
+		public void removeLocaleListener(LocaleListener listener) {
+			checkDisposed();
+
+			if (listeners == null) {
+				return;
+			}
+
+			listeners.remove(listener);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.osbp.ecview.core.common.context.ILocaleChangedService#notifyLocaleChanged(java.util.Locale)
+		 */
+		public void notifyLocaleChanged(Locale locale) {
+			if (listeners == null) {
+				return;
+			}
+
+			for (LocaleListener listener : listeners
+					.toArray(new LocaleListener[listeners.size()])) {
+				listener.localeChanged(locale);
+			}
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.osbp.runtime.common.dispose.AbstractDisposable#internalDispose()
+		 */
+		@Override
+		protected void internalDispose() {
+			if (listeners != null) {
+				listeners.clear();
+				listeners = null;
+			}
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ViewRenderingParamsBuilder.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ViewRenderingParamsBuilder.java
new file mode 100644
index 0000000..b8787c2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/context/ViewRenderingParamsBuilder.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.context;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.osbp.ecview.core.common.services.IThirdPartyServiceDelegate;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ViewRenderingParamsBuilder.
+ */
+public class ViewRenderingParamsBuilder {
+
+	/** The params. */
+	private Map<String, Object> params = new HashMap<>();
+	
+	/** The services map. */
+	private Map<String, Object> servicesMap = new HashMap<>();
+
+	/**
+	 * Instantiates a new view rendering params builder.
+	 */
+	private ViewRenderingParamsBuilder() {
+
+	}
+
+	/**
+	 * Creates the builder.
+	 *
+	 * @return the view rendering params builder
+	 */
+	public static ViewRenderingParamsBuilder builder() {
+		return new ViewRenderingParamsBuilder();
+	}
+
+	/**
+	 * Adds the given key and value to the params map.
+	 *
+	 * @param key
+	 *            the key
+	 * @param service
+	 *            the service
+	 * @return the view rendering params builder
+	 */
+	public ViewRenderingParamsBuilder put(String key, Object service) {
+		params.put(key, service);
+		return this;
+	}
+
+	/**
+	 * The key is the name of the service and the Object is the instance.
+	 *
+	 * @param key
+	 *            the key
+	 * @param service
+	 *            the service
+	 * @return the view rendering params builder
+	 */
+	public ViewRenderingParamsBuilder service(String key, Object service) {
+		servicesMap.put(key, service);
+		return this;
+	}
+
+	/**
+	 * Adds the given map as services. The key is the name of the service and
+	 * the Object the instance.
+	 *
+	 * @param services
+	 *            the services
+	 * @return the view rendering params builder
+	 */
+	public ViewRenderingParamsBuilder services(Map<String, Object> services) {
+		servicesMap.putAll(services);
+		return this;
+	}
+
+	/**
+	 * Adds the {@link IConfiguration} to the rendering params.
+	 *
+	 * @param configuration
+	 *            the configuration
+	 * @return the view rendering params builder
+	 */
+	public ViewRenderingParamsBuilder config(IConfiguration configuration) {
+		params.put(IViewContext.PARAM_CONFIGURATION, configuration);
+		return this;
+	}
+
+	/**
+	 * Adds the {@link IThirdPartyServiceDelegate} to the rendering params.
+	 *
+	 * @param delegate
+	 *            the delegate
+	 * @return the view rendering params builder
+	 */
+	public ViewRenderingParamsBuilder thirdPartyServices(
+			IThirdPartyServiceDelegate delegate) {
+		params.put(IViewContext.PARAM_THIRDPARTY_SERVICE_PROVIDER, delegate);
+		return this;
+	}
+
+	/**
+	 * Returns the resulting parameter map.
+	 *
+	 * @return the map
+	 */
+	public Map<String, Object> get() {
+		params.put(IViewContext.PARAM_SERVICES, servicesMap);
+		return params;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/dnd/IDropTargetStrategy.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/dnd/IDropTargetStrategy.java
new file mode 100644
index 0000000..dc843ca
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/dnd/IDropTargetStrategy.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.dnd;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This factory may be implemented by clients. But API may change later. It
+ * provides a UI-Kit specific designer drop handler for a given layout. And
+ * needs to be registered at the IViewContext before rendering.
+ */
+public interface IDropTargetStrategy {
+
+	/**
+	 * Sets up the given layout with an UI-Kit specific designer drop handler
+	 * for the given layout-model element.
+	 *
+	 * @param context
+	 *            the context
+	 * @param layout
+	 *            the layout
+	 * @param yLayout
+	 *            the y layout
+	 */
+	void setupDropTarget(IViewContext context, Object layout, YLayout yLayout);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/DelegatingEditPartManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/DelegatingEditPartManager.java
new file mode 100644
index 0000000..a7afbdc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/DelegatingEditPartManager.java
@@ -0,0 +1,184 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Delegates the calls to the implementing services provided by OSGi-DS.
+ */
+public final class DelegatingEditPartManager implements IEditPartManager {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(DelegatingEditPartManager.class);
+	private static DelegatingEditPartManager instance = new DelegatingEditPartManager();
+
+	private final List<IEditPartManager> delegates = Collections
+			.synchronizedList(new ArrayList<IEditPartManager>());
+
+	private DelegatingEditPartManager() {
+	}
+
+	/**
+	 * Returns the instance of that manager.
+	 * 
+	 * @return the instance
+	 */
+	public static DelegatingEditPartManager getInstance() {
+		return instance;
+	}
+
+	/**
+	 * Removes all factories. Should only be used very carefully
+	 */
+	public void clear() {
+		delegates.clear();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isFor(Object element) {
+		for (IEditPartManager factory : delegates
+				.toArray(new IEditPartManager[delegates.size()])) {
+			if (factory.isFor(element)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public <A extends IElementEditpart> A findEditpart(Object element) {
+		for (IEditPartManager factory : delegates
+				.toArray(new IEditPartManager[delegates.size()])) {
+			if (factory.isFor(element)) {
+				return factory.findEditpart(element);
+			}
+		}
+		LOGGER.error("No proper editPartFactory found for element {}", element);
+		return null;
+	}
+
+	@Override
+	public <A extends IElementEditpart> A getEditpart(IViewContext context,
+			Object element) {
+		for (IEditPartManager factory : delegates
+				.toArray(new IEditPartManager[delegates.size()])) {
+			if (factory.isFor(element)) {
+				return factory.getEditpart(context, element);
+			}
+		}
+		LOGGER.error("No proper editPartFactory found for element {}", element);
+		return null;
+	}
+
+//	@Override
+//	public <A extends IElementEditpart> A createEditpart(IViewContext context,
+//			Object selector, Class<A> editPartClazz) {
+//		for (IEditPartManager factory : delegates
+//				.toArray(new IEditPartManager[delegates.size()])) {
+//			if (factory.isFor(selector)) {
+//				return factory.createEditpart(context, selector, editPartClazz);
+//			}
+//		}
+//		LOGGER.error("No proper editPartFactory found for element {}", selector);
+//		return null;
+//	}
+
+	/**
+	 * Adds a new delegate to the manager.
+	 * 
+	 * @param delegate
+	 *            delegate to be added
+	 */
+	public void addDelegate(IEditPartManager delegate) {
+		if (!delegates.contains(delegate)) {
+			delegates.add(delegate);
+		}
+	}
+
+	/**
+	 * Removes the delegate from the manager.
+	 * 
+	 * @param delegate
+	 *            delegate to be removed
+	 */
+	public void removeDelegate(IEditPartManager delegate) {
+		if (delegate == null) {
+			return;
+		}
+		delegates.remove(delegate);
+	}
+
+	/**
+	 * The OSGi component.
+	 */
+	public static class Component {
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            ComponentContext
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void activate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("EditPartFactoryManager activated");
+		}
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            ComponentContext
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void deactivate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("EditPartFactoryManager deactivated");
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 * 
+		 * @param delegate
+		 *            Manager to be added.
+		 */
+		protected void addDelegate(IEditPartManager delegate) {
+			DelegatingEditPartManager.getInstance().addDelegate(delegate);
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 * 
+		 * @param delegate
+		 *            Manager to be removed.
+		 */
+		protected void removeDelegate(IEditPartManager delegate) {
+			DelegatingEditPartManager.getInstance().removeDelegate(delegate);
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IActionEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IActionEditpart.java
new file mode 100644
index 0000000..6d4bea7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IActionEditpart.java
@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2013 Loetz GmbH&Co.KG(Heidelberg). 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: Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+/**
+ * An IActionEditpart is an abstraction of an input field. For normal it does
+ * not contain any children, but is contained by {@link ILayoutEditpart}.<br>
+ * See also {@link IEmbeddableEditpart}
+ */
+public interface IActionEditpart extends IEmbeddableEditpart {
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IBeanSlotListBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IBeanSlotListBindingEndpointEditpart.java
new file mode 100644
index 0000000..a0136a2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IBeanSlotListBindingEndpointEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableListEndpointEditpart;
+
+/**
+ * An editpart resonsible to provide an observable list for bean slots.
+ */
+public interface IBeanSlotListBindingEndpointEditpart extends
+		IBindableListEndpointEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IBeanSlotValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IBeanSlotValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..bd4da3e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IBeanSlotValueBindingEndpointEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+
+/**
+ * An editpart resonsible to provide observable values for bean slots.
+ */
+public interface IBeanSlotValueBindingEndpointEditpart extends IBindableValueEndpointEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ICommandEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ICommandEditpart.java
new file mode 100644
index 0000000..7e3285e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ICommandEditpart.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An editpart that handles commands.
+ */
+public interface ICommandEditpart extends IElementEditpart {
+
+	/**
+	 * Activates the command. It used to active commands before bindings and
+	 * after element creation.
+	 */
+	void activate();
+
+	/**
+	 * Returns the view edit part of this embeddable edit part.<br>
+	 * May be <code>null</code> as far as this element and no of its parents are
+	 * attached to a view.
+	 * 
+	 * @return editpart The view editpart
+	 */
+	IViewEditpart getView();
+
+	/**
+	 * Requests disposal of the current editpart. This method will forward the
+	 * request to the parent if available and the parent will handle the steps
+	 * required to dispose the editpart properly.
+	 */
+	void requestDispose();
+
+	/**
+	 * Executes the command.
+	 */
+	void execute();
+
+	/**
+	 * Returns the parent that contains this command.
+	 *
+	 * @return the parent
+	 */
+	IElementEditpart getParent();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ICommandSetEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ICommandSetEditpart.java
new file mode 100644
index 0000000..cbb7c05
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ICommandSetEditpart.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import java.util.List;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An editpart resonsible to handle commands. If new commands are added, they
+ * will become processed. Also leaving commands will become unbind.
+ */
+public interface ICommandSetEditpart extends IElementEditpart {
+
+	/**
+	 * Returns true if the command set is active.
+	 *
+	 * @return true, if is active
+	 */
+	boolean isActive();
+
+	/**
+	 * Activates the command set manager. It will create all pending commands.
+	 */
+	void activate();
+
+	/**
+	 * Returns the view that command set is attached to.
+	 *
+	 * @return the view
+	 */
+	IViewEditpart getView();
+
+	/**
+	 * Returns a list of all available commands.
+	 *
+	 * @return the commands
+	 */
+	List<ICommandEditpart> getCommands();
+
+	/**
+	 * Adds the given command to the list of commands. Adding a command will
+	 * bind the contained values if not done so.
+	 *
+	 * @param command
+	 *            the command
+	 */
+	@Deprecated // use model instead
+	void addCommand(ICommandEditpart command);
+
+	/**
+	 * Removes the given command from the list of commands. Removing a command
+	 * will unbind the contained values.
+	 *
+	 * @param command
+	 *            the command
+	 */
+	@Deprecated // use model instead
+	void removeCommand(ICommandEditpart command);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IContextValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IContextValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..45755c3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IContextValueBindingEndpointEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+
+/**
+ * An editpart resonsible to provide context observable values.
+ */
+public interface IContextValueBindingEndpointEditpart extends IBindableValueEndpointEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IConverterEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IConverterEditpart.java
new file mode 100644
index 0000000..01061c1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IConverterEditpart.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface IConverterEditpart.
+ */
+public interface IConverterEditpart extends IElementEditpart {
+
+	/**
+	 * Create and returns the UI-Kit specific converter.
+	 *
+	 * @return the delegate
+	 */
+	Object getDelegate();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IDetailValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IDetailValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..d9b1657
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IDetailValueBindingEndpointEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+
+/**
+ */
+public interface IDetailValueBindingEndpointEditpart extends IBindableValueEndpointEditpart {
+	
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IDialogEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IDialogEditpart.java
new file mode 100644
index 0000000..106c28f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IDialogEditpart.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.presentation.IDialogPresentation;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The abstraction for a dialog.
+ */
+public interface IDialogEditpart extends IElementEditpart, IEmbeddableParent {
+
+	/**
+	 * Returns the parent of this dialog.<br>
+	 * Will be <code>null</code> for the layout that is attached to the view as
+	 * content.
+	 * 
+	 * @return editpart The parent editpart
+	 */
+	IViewEditpart getParent();
+
+	/**
+	 * Returns the view edit part of this dialog edit part.<br>
+	 * May be <code>null</code> as far as this element and no of its parents are
+	 * attached to a view.
+	 * 
+	 * @return editpart The view editpart
+	 */
+	IViewEditpart getView();
+
+	/**
+	 * Returns the widget presentation for the dialog.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IWidgetPresentation}
+	 * @return presentation The presentation of that dialog used to render the
+	 *         UI.
+	 */
+	<A extends IDialogPresentation<?>> A getPresentation();
+
+	/**
+	 * Requests rendering of the current editpart. This method will forward the
+	 * request to the parent if available and the parent will handle the steps
+	 * required to render the editpart properly.
+	 */
+	void requestRender();
+
+	/**
+	 * This method is called by the parent presentation to render the contents
+	 * of the editpart.
+	 * 
+	 * @param parentWidget
+	 *            - The parent widget the new widget will be placed on.
+	 * @return newWidget - without adding it to the parentWidget.
+	 */
+	Object render(Object parentWidget);
+
+	/**
+	 * Requests unrendering of the current editpart. This method will forward
+	 * the request to the parent if available and the parent will handle the
+	 * steps required to unrender the editpart properly.
+	 */
+	void requestUnrender();
+
+	/**
+	 * This method is called by the parent editpart and tells the current
+	 * editpart, that it should unrender its presentation now.
+	 */
+	void unrender();
+
+	/**
+	 * Returns true, if the editparts presentation is rendered.
+	 *
+	 * @return true, if is rendered
+	 */
+	boolean isRendered();
+
+	/**
+	 * Returns the rendered widget by the editparts presentation. Will return
+	 * <code>null</code> if the presentation was not rendered yet.
+	 *
+	 * @return the widget
+	 */
+	Object getWidget();
+
+	/**
+	 * Requests disposal of the current editpart. This method will forward the
+	 * request to the parent if available and the parent will handle the steps
+	 * required to dispose the editpart properly.
+	 */
+	void requestDispose();
+
+	/**
+	 * Sets the input data binding endpoint.
+	 * 
+	 * @param inputData
+	 *            this object contains information about the input data of the
+	 *            target navigation page.
+	 */
+	@Deprecated // use model instead
+	void setInputDataBindingEndpoint(IBindableEndpointEditpart inputData);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IECViewModelListBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IECViewModelListBindingEndpointEditpart.java
new file mode 100644
index 0000000..f827950
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IECViewModelListBindingEndpointEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableListEndpointEditpart;
+
+/**
+ * An editpart resonsible to provide context observable values for
+ * UI-embeddables.
+ */
+public interface IECViewModelListBindingEndpointEditpart extends
+		IBindableListEndpointEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IECViewModelValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IECViewModelValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..aab1a32
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IECViewModelValueBindingEndpointEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+
+/**
+ */
+public interface IECViewModelValueBindingEndpointEditpart extends IBindableValueEndpointEditpart {
+	
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEditPartManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEditPartManager.java
new file mode 100644
index 0000000..979b5b4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEditPartManager.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+
+/**
+ * Is responsible to return editparts based on the given element.
+ */
+public interface IEditPartManager {
+
+	/**
+	 * Returns true, if the factory can be used for the given element.
+	 * 
+	 * @param modelElement Any kind of object that contains information how to create the edit part.
+	 * @return result True if the manager can be used for the modelElement
+	 */
+	boolean isFor(Object modelElement);
+
+	/**
+	 * Tries to find an existing edit part for the given element. If no edit part could be found, a new one will be
+	 * created.
+	 * 
+	 * @param <A> An instance of {@link IElementEditpart}
+	 * @param context the view context
+	 * @param modelElement Any kind of object that contains information how to create the edit part.
+	 * @return editpart The found or created editPart.
+	 */
+	<A extends IElementEditpart> A getEditpart(IViewContext context, Object modelElement);
+
+	/**
+	 * Tries to find an existing instance of the editpart. If no instance could be found then <code>null</code> will be
+	 * returned.
+	 * 
+	 * @param <A> An instance of {@link IElementEditpart}
+	 * @param modelElement Any kind of object that contains information how to create the edit part.
+	 * @return editpart The found editpart or <code>null</code>
+	 */
+	<A extends IElementEditpart> A findEditpart(Object modelElement);
+
+//	/**
+//	 * Is used to create a new instance of an edit part, without having an model element.
+//	 * 
+//	 * @param <A> An instance of {@link IElementEditpart}
+//	 * @param context the view context
+//	 * @param selector The selector is used to find the proper edit part manager that is responsible to handle that
+//	 *            call.
+//	 * @param editPartClazz The type of edit part an instance of should be prepared.
+//	 * @return editpart The created editpart
+//	 */
+//	<A extends IElementEditpart> A createEditpart(IViewContext context, Object selector, Class<A> editPartClazz);
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IElementEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IElementEditpart.java
new file mode 100644
index 0000000..d45cd60
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IElementEditpart.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The root editpart. An editpart is a controller that handles the model and the
+ * ui presentations.
+ */
+public interface IElementEditpart extends IDisposable {
+
+	/**
+	 * Returns the unique id of that edit part.
+	 * 
+	 * @return id The id of the editpart
+	 */
+	String getId();
+
+	/**
+	 * Returns the model associated with this edit part.<br>
+	 * Or <code>null</code> if the edit parts are not based on a model.
+	 * 
+	 * @return the model or <code>null</code>
+	 */
+	Object getModel();
+
+	/**
+	 * Returns the view context. It offers access to more view related
+	 * information.
+	 * 
+	 * @return context The view context
+	 */
+	IViewContext getContext();
+	
+	/**
+	 * Requests disposal of the current editpart. This method will forward the
+	 * request to the parent if available and the parent will handle the steps
+	 * required to dispose the editpart properly.
+	 */
+	void requestDispose();
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IElementEditpartProvider.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IElementEditpartProvider.java
new file mode 100644
index 0000000..bf220a6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IElementEditpartProvider.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+/**
+ * Returns the {@link IElementEditpart}.
+ */
+public interface IElementEditpartProvider {
+
+	/**
+	 * Returns the edit part.
+	 * 
+	 * @return editpart
+	 */
+	IElementEditpart getEditpart();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableCollectionEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableCollectionEndpointEditpart.java
new file mode 100644
index 0000000..584ea71
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableCollectionEndpointEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableListEndpointEditpart;
+
+/**
+ * An editpart resonsible to handle collection bindings.
+ */
+public interface IEmbeddableCollectionEndpointEditpart extends
+		IBindableListEndpointEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableEditpart.java
new file mode 100644
index 0000000..8ec548b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableEditpart.java
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessable;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An IUiEmbeddableEditpart is an abstraction of editparts that can be added to
+ * a {@link ILayoutEditpart}.<br> They have an assigned parent, that must never
+ * be <code>null</code> if the IUiEmbeddableEditpart is attached to its parent.
+ */
+public interface IEmbeddableEditpart extends IElementEditpart,
+		IVisibilityProcessable {
+
+	/**
+	 * Name for "parent" property.
+	 */
+	String PROP_PARENT = "parent";
+	/**
+	 * Name for "cssClass" property.
+	 */
+	String PROP_CSSCLASS = "cssClass";
+	/**
+	 * Name for "cssID" property.
+	 */
+	String PROP_CSSID = "cssID";
+
+	/**
+	 * Returns the parent of this embeddable edit part.<br>
+	 * Will be <code>null</code> for the layout that is attached to the view as
+	 * content.
+	 * 
+	 * @return editpart The parent editpart
+	 */
+	IEmbeddableParent getParent();
+
+	/**
+	 * Returns the view edit part of this embeddable edit part.<br>
+	 * May be <code>null</code> as far as this element and no of its parents are
+	 * attached to a view.
+	 * 
+	 * @return editpart The view editpart
+	 */
+	IViewEditpart getView();
+
+	/**
+	 * Returns the widget presentation for the edit part.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IWidgetPresentation}
+	 * @return presentation The presentation of that editpart used to render the
+	 *         UI.
+	 */
+	<A extends IWidgetPresentation<?>> A getPresentation();
+
+	/**
+	 * Restores the memento.
+	 */
+	void restoreMemento();
+
+	/**
+	 * Saves the given memento.
+	 *
+	 * @param memento
+	 *            the memento
+	 */
+	void saveMemento(Object memento);
+
+	/**
+	 * Requests rendering of the current editpart. This method will forward the
+	 * request to the parent if available and the parent will handle the steps
+	 * required to render the editpart properly.
+	 */
+	void requestRender();
+
+	/**
+	 * This method is called by the parent presentation to render the contents
+	 * of the editpart.
+	 * 
+	 * @param parentWidget
+	 *            - The parent widget the new widget will be placed on.
+	 * @return newWidget - without adding it to the parentWidget.
+	 */
+	Object render(Object parentWidget);
+
+	/**
+	 * Requests unrendering of the current editpart. This method will forward
+	 * the request to the parent if available and the parent will handle the
+	 * steps required to unrender the editpart properly.
+	 */
+	void requestUnrender();
+
+	/**
+	 * This method is called by the parent editpart and tells the current
+	 * editpart, that it should unrender its presentation now.
+	 */
+	void unrender();
+
+	/**
+	 * Returns true, if the editparts presentation is rendered.
+	 *
+	 * @return true, if is rendered
+	 */
+	boolean isRendered();
+
+	/**
+	 * Returns the rendered widget by the editparts presentation. Will return
+	 * <code>null</code> if the presentation was not rendered yet.
+	 *
+	 * @return the widget
+	 */
+	Object getWidget();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableMultiSelectionEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableMultiSelectionEndpointEditpart.java
new file mode 100644
index 0000000..f76176d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableMultiSelectionEndpointEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableListEndpointEditpart;
+
+/**
+ * An editpart resonsible to handle multi selection bindings.
+ */
+public interface IEmbeddableMultiSelectionEndpointEditpart extends
+		IBindableListEndpointEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableParent.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableParent.java
new file mode 100644
index 0000000..077d2d2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableParent.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface IEmbeddableParent.
+ */
+public interface IEmbeddableParent {
+
+	/**
+	 * Calling this method will render the child editpart without adding it to
+	 * the model.
+	 *
+	 * @param child
+	 *            the child
+	 */
+	void renderChild(IEmbeddableEditpart child);
+
+	/**
+	 * Calling this method will unrender the child editpart without removing it
+	 * from the model.
+	 *
+	 * @param child
+	 *            the child
+	 */
+	void unrenderChild(IEmbeddableEditpart child);
+
+	/**
+	 * Calling this method will dispose the child editpart without removing it
+	 * from the model.
+	 *
+	 * @param child
+	 *            the child
+	 */
+	void disposeChild(IEmbeddableEditpart child);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableSelectionEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableSelectionEndpointEditpart.java
new file mode 100644
index 0000000..df7aa69
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableSelectionEndpointEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+
+/**
+ * An editpart resonsible to handle selection bindings.
+ */
+public interface IEmbeddableSelectionEndpointEditpart extends
+		IBindableValueEndpointEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..108d0a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IEmbeddableValueBindingEndpointEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+
+/**
+ * An editpart resonsible to provide context observable values for UI-embeddables.
+ */
+public interface IEmbeddableValueBindingEndpointEditpart extends IBindableValueEndpointEditpart {
+	
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IExposedActionEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IExposedActionEditpart.java
new file mode 100644
index 0000000..35c2922
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IExposedActionEditpart.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Exposed actions are defined inside the view, but have to be handeled in the
+ * wrapping view, editor,...
+ */
+public interface IExposedActionEditpart extends IElementEditpart,
+		IVisibilityProcessable {
+
+	/**
+	 * Returns the view edit part of this embeddable edit part.<br>
+	 * May be <code>null</code> as far as this element and no of its parents are
+	 * attached to a view.
+	 * 
+	 * @return editpart The view editpart
+	 */
+	IViewEditpart getView();
+
+	/**
+	 * Returns the name of the icon including the path information.
+	 *
+	 * @return the icon name
+	 */
+	String getIconName();
+
+	/**
+	 * Returns the description for the given action.
+	 *
+	 * @return the description
+	 */
+	String getDescription();
+
+	/**
+	 * Requests disposal of the current editpart. This method will forward the
+	 * request to the parent if available and the parent will handle the steps
+	 * required to dispose the editpart properly.
+	 */
+	void requestDispose();
+
+	/**
+	 * Returns the parent that contains this command.
+	 *
+	 * @return the parent
+	 */
+	IElementEditpart getParent();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IFieldEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IFieldEditpart.java
new file mode 100644
index 0000000..0dd75fb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IFieldEditpart.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An IUiFieldEditpart is an abstraction of an input field. For normal it does
+ * not contain any children, but is contained by {@link ILayoutEditpart}.<br>
+ * See also {@link IEmbeddableEditpart}
+ */
+public interface IFieldEditpart extends IEmbeddableEditpart {
+
+	/**
+	 * Adds a validator to the field. Adding a validator twice has no effect.
+	 *
+	 * @param validator
+	 *            the validator
+	 */
+	@Deprecated // use model instead
+	void addValidator(IValidatorEditpart validator);
+
+	/**
+	 * Removes the validator from the field.
+	 *
+	 * @param validator
+	 *            the validator
+	 */
+	@Deprecated // use model instead
+	void removeValidator(IValidatorEditpart validator);
+
+	/**
+	 * Adds an external status to the validations of the field.
+	 *
+	 * @param status
+	 *            the status
+	 */
+	void addExternalStatus(IStatus status);
+
+	/**
+	 * Removes an external status from the validations of the field.
+	 *
+	 * @param status
+	 *            the status
+	 */
+	void removeExternalStatus(IStatus status);
+	
+	/**
+	 * Resets all external status assignments.
+	 */
+	void resetExternalStatus();
+
+	/**
+	 * Returns an unmodifiable list of validators.
+	 *
+	 * @return the validators
+	 */
+	List<IValidatorEditpart> getValidators();
+
+	/**
+	 * Returns the converter editpart or <code>null</code> if no converter is
+	 * available.
+	 *
+	 * @return the converter
+	 */
+	IConverterEditpart getConverter();
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IKeyStrokeDefinitionContainer.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IKeyStrokeDefinitionContainer.java
new file mode 100644
index 0000000..d347967
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IKeyStrokeDefinitionContainer.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Parents of IKeyStrokeEditparts to become notified about definition changes.
+ */
+public interface IKeyStrokeDefinitionContainer {
+
+	/**
+	 * To notify the container about changed keystroke definitions.
+	 *
+	 * @param editpart
+	 *            the editpart
+	 */
+	void keyStrokeChanged(IKeyStrokeDefinitionEditpart editpart);
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IKeyStrokeDefinitionEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IKeyStrokeDefinitionEditpart.java
new file mode 100644
index 0000000..3b76430
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IKeyStrokeDefinitionEditpart.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import org.eclipse.osbp.runtime.common.keystroke.KeyCode;
+import org.eclipse.osbp.runtime.common.keystroke.KeyStrokeDefinition;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Deals with keystroke definitions.
+ */
+public interface IKeyStrokeDefinitionEditpart extends IElementEditpart {
+
+	/**
+	 * Returns the key stroke definition as a immutable POJO. See
+	 * {@link KeyCode}
+	 *
+	 * @return the definition
+	 */
+	KeyStrokeDefinition getDefinition();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ILayoutEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ILayoutEditpart.java
new file mode 100644
index 0000000..5587c9c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ILayoutEditpart.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import java.util.List;
+
+/**
+ * An IUiLayoutEditpart is an abstraction of a uiElementContainer. Itself can
+ * contain {@link IEmbeddableEditpart} and so layouts can also contain other
+ * layouts.
+ */
+public interface ILayoutEditpart extends IEmbeddableEditpart, IEmbeddableParent {
+
+	/**
+	 * Returns an unmodifiable list with all children contained in the layout.
+	 * 
+	 * @return elements The children editparts contained in this layoutEditpart
+	 */
+	List<IEmbeddableEditpart> getElements();
+
+	/**
+	 * Adds an element to the layout. Adding the same element twice has no
+	 * effect.
+	 * 
+	 * @param element
+	 *            The editpart to be added.
+	 */
+	@Deprecated // use model instead
+	void addElement(IEmbeddableEditpart element);
+
+	/**
+	 * Removes an element from the layout.
+	 * 
+	 * @param element
+	 *            The editpart to be removed.
+	 */
+	@Deprecated // use model instead
+	void removeElement(IEmbeddableEditpart element);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IOpenDialogCommandEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IOpenDialogCommandEditpart.java
new file mode 100644
index 0000000..8733f47
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IOpenDialogCommandEditpart.java
@@ -0,0 +1,16 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+public interface IOpenDialogCommandEditpart extends ICommandEditpart {
+	
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ISendEventCommandEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ISendEventCommandEditpart.java
new file mode 100644
index 0000000..960614b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/ISendEventCommandEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+/**
+ * Sends events by event admin.
+ */
+public interface ISendEventCommandEditpart extends ICommandEditpart {
+	/**
+	 * This value is used as key to put the message into the map.
+	 */
+	public static final String PROP__MESSAGE_KEY = "data";
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IViewEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IViewEditpart.java
new file mode 100644
index 0000000..517bbe1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/IViewEditpart.java
@@ -0,0 +1,232 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Future;
+
+import org.eclipse.osbp.ecview.core.common.context.ContextException;
+import org.eclipse.osbp.ecview.core.common.context.IConfiguration;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.presentation.IViewPresentation;
+import org.eclipse.osbp.ecview.core.common.services.IUiKitBasedService;
+
+/**
+ * An IUiViewEditpart is an abstraction of the root ui element of a composite
+ * structure based on {@link IEmbeddableEditpart}. The IUiViewEditpart should
+ * not be contained in a {@link ILayoutEditpart} but it can contain several
+ * embeddables.
+ */
+public interface IViewEditpart extends IElementEditpart, IEmbeddableParent {
+
+	/**
+	 * Name for "content" property.
+	 */
+	String PROP_CONTENT = "content";
+
+	/**
+	 * An internal bean slot that provides the view editpart as a bean.
+	 */
+	String BEANSLOT__ECVIEW_CONTEXT = "ecviewContext";
+
+//	/**
+//	 * Sets the view context. It offers access to more view related information.
+//	 * 
+//	 * @param context
+//	 *            The view context
+//	 * 
+//	 * @throws RuntimeException
+//	 *             if the context changes and the editpart was already rendered.
+//	 */
+//	// BEGIN SUPRESS CATCH EXCEPTION
+//	void setContext(IViewContext context) throws RuntimeException;
+
+	// END SUPRESS CATCH EXCEPTION
+
+	/**
+	 * Returns the name of the view.
+	 * 
+	 * @return name The name of the view.
+	 */
+	String getName();
+
+	/**
+	 * Is called to set the content of the view.
+	 * 
+	 * @param content
+	 *            The content of the view.
+	 */
+	@Deprecated
+	void setContent(IEmbeddableEditpart content);
+
+	/**
+	 * Sets the configuration. It will become invoked at rendering time.
+	 *
+	 * @param configuration
+	 *            the new configuration
+	 */
+	void setConfiguration(IConfiguration configuration);
+
+	/**
+	 * Returns the content of the view.
+	 * 
+	 * @return content
+	 */
+	IEmbeddableEditpart getContent();
+
+	/**
+	 * Returns the view presenter for the edit part.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IViewPresentation}
+	 * @return presentation The presentation used to render the UI.
+	 */
+	<A extends IViewPresentation<?>> A getPresentation();
+
+	/**
+	 * Returns the bindingSet that is responsible to handle bindings.
+	 *
+	 * @return the binding set
+	 */
+	IBindingSetEditpart getBindingSet();
+
+	/**
+	 * Returns the exposed actions. These actions have to be handled by the
+	 * wrapping UI elements. For instance an Eclipse view, Eclipse editor or a
+	 * Vaaclipse view. Exposed actions are used to define the actions provided
+	 * by the wrapping UI element.
+	 *
+	 * @return the exposed actions
+	 */
+	List<IExposedActionEditpart> getExposedActions();
+
+	/**
+	 * Is called to set the bindingSet of the view.
+	 * 
+	 * @param bindingSet
+	 *            The bindingSet of the view.
+	 */
+	@Deprecated
+	void setBindingSet(IBindingSetEditpart bindingSet);
+
+	/**
+	 * Returns the commandSet that is responsible to handle commands.
+	 *
+	 * @return the command set
+	 */
+	ICommandSetEditpart getCommandSet();
+
+	/**
+	 * Is called to set the commandSet of the view.
+	 * 
+	 * @param commandSet
+	 *            The commandSet of the view.
+	 */
+	@Deprecated
+	void setCommandSet(ICommandSetEditpart commandSet);
+
+	/**
+	 * Is called to render the view.
+	 *
+	 * @param options
+	 *            can contain different options used for rendering
+	 * @throws ContextException
+	 *             the context exception
+	 */
+	void render(Map<String, Object> options) throws ContextException;
+
+	/**
+	 * Executes the given runnable. It is ensured that the runnable will be
+	 * executed within the context of the user interface related to this
+	 * context.
+	 *
+	 * @param runnable
+	 *            the runnable
+	 */
+	void exec(Runnable runnable);
+
+	/**
+	 * Executes the given runnable in a different thread. It is ensured that the
+	 * runnable will be executed within the context of the user interface
+	 * related to this context.
+	 *
+	 * @param runnable
+	 *            the runnable
+	 * @return the future
+	 */
+	Future<?> execAsync(Runnable runnable);
+
+	/**
+	 * Returns a fully configured service for the given serviceClass.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param serviceClass
+	 *            the service class
+	 * @return the a
+	 */
+	<A extends IUiKitBasedService> A createService(Class<A> serviceClass);
+
+	/**
+	 * Opens the dialog.
+	 *
+	 * @param dialogEditpart
+	 *            the dialog editpart
+	 * @param inputData
+	 *            this object contains information about the input data of the
+	 *            target navigation page.
+	 */
+	void openDialog(IDialogEditpart dialogEditpart,
+			IBindableEndpointEditpart inputData);
+
+	/**
+	 * Closes the dialog.
+	 *
+	 * @param dialogEditpart
+	 *            the dialog editpart
+	 */
+	void closeDialog(IDialogEditpart dialogEditpart);
+
+	/**
+	 * Returns the model element with the given id or <code>null</code> if no
+	 * element could be found.
+	 *
+	 * @param id
+	 *            the id
+	 * @return the object
+	 */
+	Object findModelElement(String id);
+
+	/**
+	 * Returns the embeddable model element which binds the given bindingId
+	 * matching the given bindingIdRegex. Or <code>null</code> if no element
+	 * could be found.
+	 * <p>
+	 * Following bindingIds are available in ECView:
+	 * <ul>
+	 * <li><code>beanslot/{beanslot}/{propertyPath}</code></li>
+	 * <li><code>beanvalue/{beanClassName}/{propertyPath}</code></li>
+	 * <li><code>modelBinding/{elementId}/{propertyPath}</code></li>
+	 * <li><code>uiSelection/{elementId}/{propertyPath}</code></li>
+	 * <li><code>uiValue/{elementId}</code></li>
+	 * <li><code>uiVisibilityProcessor/{property}</code></li>
+	 * <li><code>uiActivated/{elementId}</code></li>
+	 * </ul>
+	 *
+	 * @param bindingIdRegex
+	 *            the binding id regex
+	 * @return the object
+	 */
+	Object findBoundField(String bindingIdRegex);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBeanValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBeanValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..35548dd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBeanValueBindingEndpointEditpart.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+/**
+ * An editpart resonsible to provide context observable values for bean
+ * bindings.
+ */
+public interface IBeanValueBindingEndpointEditpart extends IBindableValueEndpointEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindableEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindableEndpointEditpart.java
new file mode 100644
index 0000000..c8385a3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindableEndpointEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+
+/**
+ * An editpart resonsible to provide observable values.
+ */
+public interface IBindableEndpointEditpart extends IElementEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindableListEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindableListEndpointEditpart.java
new file mode 100644
index 0000000..80abe52
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindableListEndpointEditpart.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An editpart resonsible to provide observable values.
+ */
+public interface IBindableListEndpointEditpart extends IBindableEndpointEditpart {
+
+	/**
+	 * Returns the target observable that can be used in databinding.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @return the observable
+	 */
+	<A extends IObservableList> A getObservable();
+
+	/**
+	 * Register a refresh provider.
+	 *
+	 * @param refresh
+	 *            the new refresh provider
+	 */
+	void setRefreshProvider(RefreshProvider refresh);
+
+	/**
+	 * The Interface RefreshProvider.
+	 */
+	interface RefreshProvider {
+
+		/**
+		 * Is called to refresh the given binding.
+		 */
+		void refresh();
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindableValueEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindableValueEndpointEditpart.java
new file mode 100644
index 0000000..3914830
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindableValueEndpointEditpart.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An editpart resonsible to provide observable values.
+ */
+public interface IBindableValueEndpointEditpart extends
+		IBindableEndpointEditpart {
+
+	/**
+	 * Returns the target observable that can be used in databinding.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @return the observable
+	 */
+	<A extends IObservableValue> A getObservable();
+
+	/**
+	 * Register a refresh provider.
+	 *
+	 * @param refresh
+	 *            the new refresh provider
+	 */
+	void setRefreshProvider(RefreshProvider refresh);
+
+	/**
+	 * The Interface RefreshProvider.
+	 */
+	interface RefreshProvider {
+
+		/**
+		 * Is called to refresh the given binding.
+		 */
+		void refresh();
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindingEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindingEditpart.java
new file mode 100644
index 0000000..2a337dd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindingEditpart.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An editpart resonsible to handle bindings.
+ *
+ * @param <A>
+ *            the generic type
+ */
+public interface IBindingEditpart<A extends IBindableEndpointEditpart> extends
+		IElementEditpart {
+
+	/**
+	 * Returns true, if the binding defined by this editpart is active. False
+	 * otherwise.
+	 *
+	 * @return true, if is bound
+	 */
+	boolean isBound();
+
+	/**
+	 * Binds the target and model according the binding properties.
+	 */
+	void bind();
+
+	/**
+	 * Returns the binding or <code>null</code> if no binding is available.
+	 *
+	 * @return the binding
+	 */
+	Binding getBinding();
+
+	/**
+	 * Unbinds target and model.
+	 */
+	void unbind();
+
+	/**
+	 * Returns the target endpoint.
+	 *
+	 * @return the target endpoint
+	 */
+	A getTargetEndpoint();
+
+	/**
+	 * Sets the target endpoint.
+	 *
+	 * @param targetValue
+	 *            the new target endpoint
+	 */
+	void setTargetEndpoint(A targetValue);
+
+	/**
+	 * Returns the model endpoint.
+	 *
+	 * @return the model endpoint
+	 */
+	A getModelEndpoint();
+
+	/**
+	 * Sets the target endpoint.
+	 *
+	 * @param modelValue
+	 *            the new model endpoint
+	 */
+	void setModelEndpoint(A modelValue);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindingSetEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindingSetEditpart.java
new file mode 100644
index 0000000..962fd3e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IBindingSetEditpart.java
@@ -0,0 +1,120 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An editpart resonsible to handle bindings. If new bindings are added, they
+ * will become processed. Also leaving bindings will become unbind.
+ */
+public interface IBindingSetEditpart extends IElementEditpart {
+
+	/**
+	 * Returns true if the binding set is active.
+	 *
+	 * @return true, if is active
+	 */
+	boolean isActive();
+
+	/**
+	 * Activates the binding set manager. It will create all pending bindings.
+	 */
+	void activate();
+
+	/**
+	 * Returns the view that binding set is attached to.
+	 *
+	 * @return the view
+	 */
+	IViewEditpart getView();
+
+	/**
+	 * Returns a list of all available bindings.
+	 *
+	 * @return the bindings
+	 */
+	List<IBindingEditpart<?>> getBindings();
+
+	/**
+	 * Adds the given binding to the list of bindings. Adding a binding will
+	 * bind the contained values if not done so.
+	 *
+	 * @param binding
+	 *            the binding
+	 */
+	void addBinding(IBindingEditpart<?> binding);
+
+	/**
+	 * Removes the given binding from the list of bindings. Removing a binding
+	 * will unbind the contained values.
+	 *
+	 * @param binding
+	 *            the binding
+	 */
+	void removeBinding(IBindingEditpart<?> binding);
+	
+	/**
+	 * Returns a list of all available transient bindings.
+	 *
+	 * @return the transient bindings
+	 */
+	List<IBindingEditpart<?>> getTransientBindings();
+
+	/**
+	 * Adds the given binding to the list of transient bindings. Adding a
+	 * binding will bind the contained values if not done so.
+	 *
+	 * @param binding
+	 *            the binding
+	 */
+	void addTransientBinding(IBindingEditpart<?> binding);
+
+	/**
+	 * Removes the given binding from the list of transient bindings. Removing a
+	 * binding will unbind the contained values.
+	 *
+	 * @param binding
+	 *            the binding
+	 */
+	void removeTransientBinding(IBindingEditpart<?> binding);
+
+	/**
+	 * Returns the binding manager that should be used to bind values.
+	 *
+	 * @return the binding manager
+	 */
+	IECViewBindingManager getBindingManager();
+
+	/**
+	 * Sets the binding manager that should be used to bind values.
+	 *
+	 * @param bindingManager
+	 *            the new binding manager
+	 */
+	void setBindingManager(IECViewBindingManager bindingManager);
+
+	/**
+	 * Returns a list with all bindings that are related to the given
+	 * elementModel.
+	 *
+	 * @param elementModel
+	 *            the element model
+	 * @return the list
+	 */
+	List<IBindingEditpart<?>> findBindings(Object elementModel);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IEnumListBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IEnumListBindingEndpointEditpart.java
new file mode 100644
index 0000000..892bfaf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IEnumListBindingEndpointEditpart.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+/**
+ * An editpart resonsible to provide the literals of enums.
+ */
+public interface IEnumListBindingEndpointEditpart extends
+		IBindableListEndpointEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IListBindingEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IListBindingEditpart.java
new file mode 100644
index 0000000..460da93
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IListBindingEditpart.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+/**
+ * An editpart resonsible to handle bindings.
+ */
+public interface IListBindingEditpart extends
+		IBindingEditpart<IBindableListEndpointEditpart> {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IValueBindingEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IValueBindingEditpart.java
new file mode 100644
index 0000000..15908a3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IValueBindingEditpart.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+/**
+ * An editpart resonsible to handle bindings.
+ */
+public interface IValueBindingEditpart extends IBindingEditpart<IBindableValueEndpointEditpart> {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IVisibilityProcessorValueBindingEndpointEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IVisibilityProcessorValueBindingEndpointEditpart.java
new file mode 100644
index 0000000..2fb2958
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/binding/IVisibilityProcessorValueBindingEndpointEditpart.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.binding;
+
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityProcessor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An editpart resonsible to provide observable values to bind the visibility
+ * processor instance. Note, that an instance about the processor needs to be
+ * past to this instance before accessing the observable value.
+ */
+public interface IVisibilityProcessorValueBindingEndpointEditpart extends
+		IBindableValueEndpointEditpart {
+
+	/**
+	 * Sets the visibility processor which should be bound.
+	 *
+	 * @param processor
+	 *            the new visibility processor
+	 */
+	void setVisibilityProcessor(IVisibilityProcessor processor);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/datatypes/IDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/datatypes/IDatatypeEditpart.java
new file mode 100644
index 0000000..1695ebf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/datatypes/IDatatypeEditpart.java
@@ -0,0 +1,195 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.datatypes;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An editpart responsible to handle datatypes.
+ */
+public interface IDatatypeEditpart extends IElementEditpart {
+
+	/**
+	 * Returns the initial information about the datatype. The change object
+	 * will be <code>null</code>.
+	 *
+	 * @return the current state
+	 */
+	DatatypeChangeEvent getCurrentState();
+
+	/**
+	 * Adds the given bridge to the datatype editpart. See
+	 * {@link DatatypeBridge}.
+	 * <p>
+	 * Note that the datatype is not part of the containment tree of the UI
+	 * element. So many UI elements may share the same instance of the datatype.
+	 *
+	 * @param bridge
+	 *            the bridge
+	 */
+	void addBridge(DatatypeBridge bridge);
+
+	/**
+	 * Unregisters the given bridge from the datatype. See
+	 * {@link DatatypeBridge}.
+	 *
+	 * @param bridge
+	 *            the bridge
+	 */
+	void removeBridge(DatatypeBridge bridge);
+
+	/**
+	 * This event is fired if the datatype changed.
+	 */
+	public static class DatatypeChangeEvent {
+
+		/** The editpart. */
+		private final IDatatypeEditpart editpart;
+		
+		/** The change object. */
+		private final Object changeObject;
+		
+		/** The removed validators. */
+		private final List<IValidatorEditpart> removedValidators;
+		
+		/** The added validators. */
+		private final List<IValidatorEditpart> addedValidators;
+		
+		/** The unset event. */
+		private final boolean unsetEvent;
+
+		/**
+		 * Instantiates a new datatype change event.
+		 *
+		 * @param editpart
+		 *            the editpart
+		 * @param changeObject
+		 *            the change object
+		 * @param addedValidators
+		 *            the added validators
+		 * @param removedValidators
+		 *            the removed validators
+		 */
+		public DatatypeChangeEvent(IDatatypeEditpart editpart,
+				Object changeObject, List<IValidatorEditpart> addedValidators,
+				List<IValidatorEditpart> removedValidators) {
+			this(false, editpart, changeObject, addedValidators,
+					removedValidators);
+		}
+
+		/**
+		 * Instantiates a new datatype change event.
+		 *
+		 * @param unsetEvent
+		 *            the unset event
+		 * @param editpart
+		 *            the editpart
+		 * @param changeObject
+		 *            the change object
+		 * @param addedValidators
+		 *            the added validators
+		 * @param removedValidators
+		 *            the removed validators
+		 */
+		public DatatypeChangeEvent(boolean unsetEvent,
+				IDatatypeEditpart editpart, Object changeObject,
+				List<IValidatorEditpart> addedValidators,
+				List<IValidatorEditpart> removedValidators) {
+			super();
+			this.unsetEvent = unsetEvent;
+			this.editpart = editpart;
+			this.changeObject = changeObject;
+			this.addedValidators = addedValidators;
+			this.removedValidators = removedValidators;
+		}
+
+		/**
+		 * Returns the datatype editpart that was changed.
+		 *
+		 * @return the editpart
+		 */
+		public IDatatypeEditpart getEditpart() {
+			return editpart;
+		}
+
+		/**
+		 * Returns the object containing the changes. The type depends on the
+		 * editpart implementation and may be <code>null</code>.
+		 *
+		 * @return the change object
+		 */
+		public Object getChangeObject() {
+			return changeObject;
+		}
+
+		/**
+		 * Returns a list of validators that should be attached to the ui
+		 * fields.
+		 *
+		 * @return the added validators
+		 */
+		public List<IValidatorEditpart> getAddedValidators() {
+			return addedValidators != null ? addedValidators : Collections
+					.<IValidatorEditpart> emptyList();
+		}
+
+		/**
+		 * Returns a list of validators that should be removed from the ui
+		 * fields.
+		 *
+		 * @return the removed validators
+		 */
+		public List<IValidatorEditpart> getRemovedValidators() {
+			return removedValidators != null ? removedValidators : Collections
+					.<IValidatorEditpart> emptyList();
+		}
+
+		/**
+		 * If true, then the datatype is unset.
+		 * 
+		 * @return the unsetEvent
+		 */
+		public boolean isUnsetEvent() {
+			return unsetEvent;
+		}
+
+	}
+
+	/**
+	 * This bridge allows the implementor to react for changes in the datatype.
+	 * And it provides the datatype editpart with available validators that have
+	 * been provided by the datatype editpart.
+	 */
+	public static interface DatatypeBridge {
+
+		/**
+		 * Notifies the listener about the change.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void notifyDatatypeChanged(DatatypeChangeEvent event);
+
+		/**
+		 * Returns a list with currently available validators that have been
+		 * provided by the datatype editpart. Must never return
+		 * <code>null</code>.
+		 *
+		 * @return the datatype validators
+		 */
+		List<IValidatorEditpart> getDatatypeValidators();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IBeanValidationValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IBeanValidationValidatorEditpart.java
new file mode 100644
index 0000000..a7a3f7e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IBeanValidationValidatorEditpart.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.validation;
+
+public interface IBeanValidationValidatorEditpart extends IValidatorEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IClassDelegateValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IClassDelegateValidatorEditpart.java
new file mode 100644
index 0000000..330b5c4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IClassDelegateValidatorEditpart.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.validation;
+
+public interface IClassDelegateValidatorEditpart extends IValidatorEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IMaxLengthValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IMaxLengthValidatorEditpart.java
new file mode 100644
index 0000000..1b841d5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IMaxLengthValidatorEditpart.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.validation;
+
+public interface IMaxLengthValidatorEditpart extends IValidatorEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IMinLengthValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IMinLengthValidatorEditpart.java
new file mode 100644
index 0000000..0e0dd56
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IMinLengthValidatorEditpart.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.validation;
+
+public interface IMinLengthValidatorEditpart extends IValidatorEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IRegexpValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IRegexpValidatorEditpart.java
new file mode 100644
index 0000000..2e9ddb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IRegexpValidatorEditpart.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.validation;
+
+public interface IRegexpValidatorEditpart extends IValidatorEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IValidatorEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IValidatorEditpart.java
new file mode 100644
index 0000000..7db1708
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/validation/IValidatorEditpart.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.validation;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An editpart responsible to handle validations. If the set config was
+ * disposed, the validator editpart will not handle this. It is the issue of the
+ * parent editparts to handle this.
+ */
+public interface IValidatorEditpart extends IElementEditpart {
+
+	/**
+	 * Returns the validator for this editpart.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @return the validator
+	 */
+	<A extends IValidator> A getValidator();
+
+	/**
+	 * Registers the validation config at the validator editpart. The config
+	 * provides information how the validator has to validate an UI element. For
+	 * instance the maxLength of a MaxLengthValidator.
+	 *
+	 * @param config
+	 *            the new config
+	 */
+	void setConfig(IValidationConfig config);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IUiElementAccess.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IUiElementAccess.java
new file mode 100644
index 0000000..4430eb5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IUiElementAccess.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.visibility;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface IUiElementAccess.
+ */
+public interface IUiElementAccess {
+
+	/**
+	 * Returns true, of the UI element contains a tag with the given tagName.
+	 *
+	 * @param tag
+	 *            the tag
+	 * @return true, if successful
+	 */
+	boolean containsTag(String tag);
+
+	/**
+	 * Returns true, of the UI element contains a property with the given key.
+	 *
+	 * @param key
+	 *            the key
+	 * @return true, if successful
+	 */
+	boolean containsProperty(String key);
+
+	/**
+	 * Returns the property value from the UI element with the given key.
+	 *
+	 * @param key
+	 *            the key
+	 * @return the property value
+	 */
+	String getPropertyValue(String key);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IVisibilityProcessable.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IVisibilityProcessable.java
new file mode 100644
index 0000000..10083de
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IVisibilityProcessable.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.visibility;
+
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An element that can handle visibility properties.
+ */
+public interface IVisibilityProcessable {
+
+	/**
+	 * Is called to apply the visibility properties. If <code>null</code> is
+	 * passed, it means the same as {@link #resetVisibilityProperties()}.
+	 *
+	 * @param handler
+	 *            the handler
+	 */
+	void apply(IVisibilityHandler handler);
+
+	/**
+	 * Is called to reset the currently set visibility properties.
+	 */
+	void resetVisibilityProperties();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IVisibilityProcessorEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IVisibilityProcessorEditpart.java
new file mode 100644
index 0000000..e85a54b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IVisibilityProcessorEditpart.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.visibility;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+
+/**
+ * An editpart responsible to handle visibility options of widgets.
+ */
+public interface IVisibilityProcessorEditpart extends IElementEditpart {
+
+	/**
+	 * Activates the visibility processor.
+	 */
+	void activate();
+	
+	void fire();
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IVisibilityPropertiesEditpart.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IVisibilityPropertiesEditpart.java
new file mode 100644
index 0000000..e7b44eb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/editpart/visibility/IVisibilityPropertiesEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.editpart.visibility;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+
+/**
+ * An editpart responsible to handle visibility properties of an visibility
+ * processor.
+ */
+public interface IVisibilityPropertiesEditpart extends IElementEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/extender/IECViewCache.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/extender/IECViewCache.java
new file mode 100644
index 0000000..53fbb9b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/extender/IECViewCache.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.extender;
+
+import java.net.URL;
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Some view models have been autowired by the IDE. These YView models can be
+ * located in any bundle. This cache aims to centralize all the different models
+ * and gives you access to these instances.
+ * 
+ * @noimplement by clients
+ * @Scope(singleton)
+ */
+// TODO
+public interface IECViewCache {
+
+	/**
+	 * Returns the view model element with the given id.
+	 *
+	 * @param id
+	 *            the id
+	 * @return the view
+	 */
+	YView getView(String id);
+
+	/**
+	 * Returns all view models matching the given input type in the given
+	 * beanSlot. The beanSlot may be <code>null</code>.
+	 *
+	 * @param inputType
+	 *            the input type
+	 * @param beanSlot
+	 *            may be null.
+	 * @return the views
+	 */
+	List<YView> getViews(Class<?> inputType, String beanSlot);
+
+	/**
+	 * Registers new views.
+	 *
+	 * @param urls
+	 *            the urls
+	 */
+	void registerViews(List<URL> urls);
+
+	/**
+	 * Unregisters views.
+	 *
+	 * @param urls
+	 *            the urls
+	 */
+	void unregisterViews(List<URL> urls);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/extender/IECViewProviderService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/extender/IECViewProviderService.java
new file mode 100644
index 0000000..34799a6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/extender/IECViewProviderService.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.extender;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Is responsible to create an ECView view context for a given dto.
+ */
+public interface IECViewProviderService {
+
+	/**
+	 * Returns a proper configured view context for the given dtoClass in the
+	 * given slot. The slot may be <code>null</code>. Then any bean slot is
+	 * checked.
+	 *
+	 * @param dtoClass
+	 *            the dto class
+	 * @param beanSlot
+	 *            the bean slot in YView. May be null.
+	 * @return the view context
+	 */
+	IViewContext getViewContext(Class<?> dtoClass, String beanSlot);
+
+	/**
+	 * Returns a proper configured view context for the given viewId.
+	 *
+	 * @param viewId
+	 *            the view id
+	 * @return the view context
+	 */
+	IViewContext getViewContext(String viewId);
+
+	/**
+	 * Returns a proper configured view context for the given yView.
+	 *
+	 * @param yView
+	 *            the y view
+	 * @return the view context
+	 */
+	IViewContext getViewContext(YView yView);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/filter/IFilterProvidingPresentation.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/filter/IFilterProvidingPresentation.java
new file mode 100644
index 0000000..d1eda38
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/filter/IFilterProvidingPresentation.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.filter;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The presentation will provide filters that may be used for queries. Therefore
+ * it collects all filters from its search fields and creates a compound filter.<br>
+ * The type of filter depends on the used UI-Kit.
+ */
+public interface IFilterProvidingPresentation {
+
+	/**
+	 * Returns the filter that can be used for queries.
+	 *
+	 * @return the filter
+	 */
+	Object getFilter();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/filter/IFilterablePresentation.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/filter/IFilterablePresentation.java
new file mode 100644
index 0000000..c2d5b2d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/filter/IFilterablePresentation.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.filter;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The presentation accepts filters that may be used for queries.
+ */
+public interface IFilterablePresentation {
+
+	/**
+	 * Sets the filter to the presentation. If <code>null</code> is passed, all
+	 * filters must be removed.
+	 *
+	 * @param filter
+	 *            the filter
+	 */
+	void applyFilter(Object filter);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/filter/IRefreshRowsPresentation.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/filter/IRefreshRowsPresentation.java
new file mode 100644
index 0000000..83dec9f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/filter/IRefreshRowsPresentation.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.filter;
+
+/**
+ * The presentation accepts filters that may be used for queries.
+ */
+public interface IRefreshRowsPresentation {
+
+	/**
+	 * Will refresh the rows of tables, lists, comboboxes,...
+	 */
+	void refreshRows();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/memento/IECViewMementoManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/memento/IECViewMementoManager.java
new file mode 100644
index 0000000..b04383a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/memento/IECViewMementoManager.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.memento;
+
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A memento manager to be used in ECView.
+ */
+public interface IECViewMementoManager {
+
+	/**
+	 * Loads the memento for the given memento id.
+	 *
+	 * @param mementoId
+	 *            the memento id
+	 * @return the object
+	 */
+	Object loadMemento(String mementoId);
+
+	/**
+	 * Saves the memento by the given mementoId.
+	 *
+	 * @param mementoId
+	 *            the memento id
+	 * @param memento
+	 *            the memento
+	 * @return status containing exceptions or IStatus.OK
+	 */
+	IStatus saveMemento(String mementoId, Object memento);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/AbstractReloadRequestService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/AbstractReloadRequestService.java
new file mode 100644
index 0000000..ee1c4d1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/AbstractReloadRequestService.java
@@ -0,0 +1,67 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.common.notification;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class AbstractReloadRequestService implements
+		IReloadRequestService {
+
+	private List<ModeListener> listeners;
+	private boolean mode;
+
+	@Override
+	public boolean getMode() {
+		return mode;
+	}
+
+	@Override
+	public void setMode(boolean enabled) {
+		boolean oldMode = this.mode;
+		this.mode = enabled;
+
+		if (oldMode != mode) {
+			notifyListeners();
+		}
+	}
+
+	private void notifyListeners() {
+		if (listeners != null) {
+			for (ModeListener listener : new ArrayList<>(listeners)) {
+				listener.notifyMode(getMode());
+			}
+		}
+	}
+
+	@Override
+	public void addListener(ModeListener listener) {
+		if (listeners == null) {
+			listeners = new ArrayList<ModeListener>();
+		}
+
+		if (!listeners.contains(listener)) {
+			listeners.add(listener);
+		}
+	}
+
+	@Override
+	public void removeListener(ModeListener listener) {
+		if (listeners == null) {
+			return;
+		}
+		listeners.remove(listener);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/ILifecycleEvent.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/ILifecycleEvent.java
new file mode 100644
index 0000000..4d6b6d2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/ILifecycleEvent.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.common.notification;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IValueBindingEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Lifecycle events are sent by different editparts to notify the
+ * {@link IViewEditpart} about it. A common case is, that an
+ * {@link IEmbeddableEditpart} becomes disposed and the view need to dispose the
+ * {@link IValueBindingEditpart} too, since the binding editPart is not part of
+ * the containment tree of the embeddable..
+ */
+public interface ILifecycleEvent {
+
+	/**
+	 * If a new context was created and rendered.
+	 */
+	public static final String CONTEXT_CREATED = "contextCreated";
+
+	/**
+	 * If the context was disposed.
+	 */
+	public static final String CONTEXT_DISPOSED = "contextDisposed";
+
+	/**
+	 * If any component is rendered.
+	 */
+	public static final String TYPE_RENDERED = "rendered";
+
+	/**
+	 * If any component is unrendered.
+	 */
+	public static final String TYPE_UNRENDERED = "unrendered";
+
+	/**
+	 * If any component is disposed.
+	 */
+	public static final String TYPE_DISPOSED = "disposed";
+
+	/**
+	 * Returns the editpart that sent the event.
+	 *
+	 * @return the editpart
+	 */
+	IElementEditpart getEditpart();
+
+	/**
+	 * Returns the type of the event.
+	 *
+	 * @return the type
+	 */
+	String getType();
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/ILifecycleHandler.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/ILifecycleHandler.java
new file mode 100644
index 0000000..914d629
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/ILifecycleHandler.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.notification;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A lifecycle handler becomes notified about the lifecycle events of elements.
+ */
+public interface ILifecycleHandler {
+
+	/**
+	 * Passes the event about the current lifecycle of an element.
+	 *
+	 * @param event
+	 *            the event
+	 */
+	void notifyLifecycle(ILifecycleEvent event);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/ILifecycleService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/ILifecycleService.java
new file mode 100644
index 0000000..0dbf54e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/ILifecycleService.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.notification;
+
+// TODO: Auto-generated Javadoc
+/**
+ * {@link ILifecycleHandler} may use that service to register for
+ * {@link ILifecycleEvent lifecycle events}.
+ * <p>
+ * Should not be implemented by clients.
+ */
+public interface ILifecycleService {
+
+	/**
+	 * Adds a handler to the service. Calling the method twice has no effect.
+	 *
+	 * @param handler
+	 *            the handler
+	 */
+	void addHandler(ILifecycleHandler handler);
+
+	/**
+	 * Removes the given handler.
+	 *
+	 * @param handler
+	 *            the handler
+	 */
+	void removeHandler(ILifecycleHandler handler);
+
+	/**
+	 * Sends a lifecycle event to all registered handler.
+	 *
+	 * @param event
+	 *            the event
+	 */
+	void notifyLifecycle(ILifecycleEvent event);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/IReloadRequestService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/IReloadRequestService.java
new file mode 100644
index 0000000..fdbb371
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/IReloadRequestService.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.notification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This service is used to notify an owner of the {@link YView} that a component
+ * requested a reload operation of the base bean slot.
+ * <p>
+ * Interested parties can also register listeners to become notified, if the
+ * mode changes. If enabled==false then no reload requests are accepted.
+ */
+public interface IReloadRequestService {
+
+	/**
+	 * Is called if a component (eq YSuggestTextField) requests a reload of the
+	 * main beanslot. The implementation of this service should handle dirty
+	 * states of the view and reset the bound bean in the main beanslot.
+	 *
+	 * @param component
+	 *            the component
+	 * @param bean
+	 *            the bean
+	 */
+	void requestReload(YEmbeddable component, Object bean);
+
+	/**
+	 * Returns the current mode. False means, that no reload requests are
+	 * processed.
+	 *
+	 * @return the mode
+	 */
+	boolean getMode();
+
+	/**
+	 * Sets a new mode. False means, that no reload requests are processed.
+	 *
+	 * @param enabled
+	 *            the new mode
+	 */
+	void setMode(boolean enabled);
+
+	/**
+	 * Adds the mode listener.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	void addListener(ModeListener listener);
+
+	/**
+	 * Adds the mode listener.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	void removeListener(ModeListener listener);
+
+	/**
+	 * The listener interface for receiving mode events. The class that is
+	 * interested in processing a mode event implements this interface, and the
+	 * object created with that class is registered with a component using the
+	 * component's <code>addModeListener</code> method. When
+	 * the mode event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 */
+	public interface ModeListener {
+
+		/**
+		 * Notifies about mode changes.
+		 *
+		 * @param enabled
+		 *            the enabled
+		 */
+		void notifyMode(boolean enabled);
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/LifecycleEvent.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/LifecycleEvent.java
new file mode 100644
index 0000000..4f41b83
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/LifecycleEvent.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.notification;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+
+public class LifecycleEvent implements ILifecycleEvent {
+
+	private final IElementEditpart editpart;
+	private final String type;
+
+	public LifecycleEvent(IElementEditpart editpart, String type) {
+		super();
+		this.editpart = editpart;
+		this.type = type;
+	}
+
+	@Override
+	public IElementEditpart getEditpart() {
+		return editpart;
+	}
+
+	@Override
+	public String getType() {
+		return type;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/LifecycleService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/LifecycleService.java
new file mode 100644
index 0000000..497e23f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/LifecycleService.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.notification;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.runtime.common.event.IEventBroker;
+
+public class LifecycleService implements ILifecycleService {
+
+	private Set<ILifecycleHandler> handlers = Collections
+			.synchronizedSet(new HashSet<ILifecycleHandler>());
+
+	private final IEventBroker eventBroker;
+
+	/**
+	 * The constructor.
+	 * 
+	 * @param eventBroker
+	 *            may be <code>null</code>.
+	 */
+	public LifecycleService(IEventBroker eventBroker) {
+		this.eventBroker = eventBroker;
+	}
+
+	@Override
+	public void addHandler(ILifecycleHandler handler) {
+		handlers.add(handler);
+	}
+
+	@Override
+	public void removeHandler(ILifecycleHandler handler) {
+		handlers.remove(handler);
+	}
+
+	@Override
+	public void notifyLifecycle(ILifecycleEvent event) {
+		synchronized (handlers) {
+			for (ILifecycleHandler handler : handlers) {
+				handler.notifyLifecycle(event);
+			}
+		}
+
+		// dispatch the event by the event broker
+		if (eventBroker != null) {
+			eventBroker.send(IViewContext.TOPIC_LIFECYCLE, event);
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/LifecycleServiceProvider.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/LifecycleServiceProvider.java
new file mode 100644
index 0000000..866bd17
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/notification/LifecycleServiceProvider.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.notification;
+
+import org.eclipse.osbp.ecview.core.common.context.IContext;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.services.IServiceProvider;
+import org.eclipse.osbp.runtime.common.event.IEventBroker;
+
+/**
+ * Provides the {@link ILifecycleService} implementation to the services of
+ * {@link IViewContext}.
+ */
+public class LifecycleServiceProvider implements IServiceProvider {
+
+	@Override
+	public boolean isFor(String selector, IContext context) {
+		return selector.equals(ILifecycleService.class.getName());
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A> A createService(String selector, IContext context) {
+		return (A) new LifecycleService(
+				(IEventBroker) context.getService(IEventBroker.class.getName()));
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/DelegatingConverterFactory.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/DelegatingConverterFactory.java
new file mode 100644
index 0000000..5e86416
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/DelegatingConverterFactory.java
@@ -0,0 +1,190 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IConverterEditpart;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Delegates the calls to the implementing services provided by OSGi-DS.
+ */
+public final class DelegatingConverterFactory implements IConverterFactory {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(DelegatingConverterFactory.class);
+	private static DelegatingConverterFactory instance = new DelegatingConverterFactory();
+
+	private final List<IConverterFactory> delegates = Collections
+			.synchronizedList(new ArrayList<IConverterFactory>());
+	private List<IConverterFactory> stashed;
+
+	private DelegatingConverterFactory() {
+	}
+
+	/**
+	 * Returns the instance of that manager.
+	 * 
+	 * @return the instance
+	 */
+	public static DelegatingConverterFactory getInstance() {
+		return instance;
+	}
+
+	/**
+	 * Removes all factories. Should only be used very carefully
+	 */
+	public void clear() {
+		delegates.clear();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isFor(IViewContext uiContext, IConverterEditpart editpart) {
+		for (IConverterFactory factory : delegates
+				.toArray(new IConverterFactory[delegates.size()])) {
+			if (factory.isFor(uiContext, editpart)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	@Override
+	public Object createConverter(IViewContext uiContext,
+			IConverterEditpart editpart) throws IllegalArgumentException {
+		for (IConverterFactory factory : delegates
+				.toArray(new IConverterFactory[delegates.size()])) {
+			if (factory.isFor(uiContext, editpart)) {
+				try {
+					Object result = factory
+							.createConverter(uiContext, editpart);
+					if (result != null) {
+						return result;
+					}
+				} catch (IllegalArgumentException e) {
+					// nothing to do. Try the next factory
+				}
+			}
+		}
+		LOGGER.error("No proper converterFactory found for elements {} {}",
+				new Object[] { uiContext, editpart });
+		return null;
+	}
+
+	/**
+	 * Will stash the current state. ONLY FOR TESTS!
+	 */
+	public void stash() {
+		if (stashed != null) {
+			return;
+		}
+		stashed = new ArrayList<IConverterFactory>(delegates);
+	}
+
+	/**
+	 * Will unstash the stashed state. ONLY FOR TESTS!
+	 */
+	public void unstash() {
+		if (stashed == null) {
+			return;
+		}
+		delegates.clear();
+		delegates.addAll(stashed);
+		stashed = null;
+	}
+
+	/**
+	 * Adds a new factory to the manager.
+	 * 
+	 * @param factory
+	 *            Factory to be added.
+	 */
+	public void addDelegate(IConverterFactory factory) {
+		if (!delegates.contains(factory)) {
+			delegates.add(factory);
+		}
+	}
+
+	/**
+	 * Removes the factory from the manager.
+	 * 
+	 * @param factory
+	 *            Factory to be removed.
+	 */
+	public void removeDelegate(IConverterFactory factory) {
+		if (factory == null) {
+			return;
+		}
+		delegates.remove(factory);
+	}
+
+	/**
+	 * OSGi-DS component.
+	 */
+	public static class ServiceComponent {
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            Component context
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void activate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("DelegatingPresenterFactory activated");
+		}
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            Component context
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void deactivate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("DelegatingPresenterFactory deactivated");
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 * 
+		 * @param factory
+		 *            Factory to be added
+		 */
+		protected void addDelegate(IConverterFactory factory) {
+			DelegatingConverterFactory.getInstance().addDelegate(factory);
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 * 
+		 * @param factory
+		 *            Factory to be added
+		 */
+		protected void removeDelegate(IConverterFactory factory) {
+			DelegatingConverterFactory.getInstance().removeDelegate(factory);
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/DelegatingPresenterFactory.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/DelegatingPresenterFactory.java
new file mode 100644
index 0000000..10b66d9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/DelegatingPresenterFactory.java
@@ -0,0 +1,189 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Delegates the calls to the implementing services provided by OSGi-DS.
+ */
+public final class DelegatingPresenterFactory implements IPresentationFactory {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(DelegatingPresenterFactory.class);
+	private static DelegatingPresenterFactory instance = new DelegatingPresenterFactory();
+
+	private final List<IPresentationFactory> delegates = Collections
+			.synchronizedList(new ArrayList<IPresentationFactory>());
+	private List<IPresentationFactory> stashed;
+
+	private DelegatingPresenterFactory() {
+	}
+
+	/**
+	 * Returns the instance of that manager.
+	 * 
+	 * @return the instance
+	 */
+	public static DelegatingPresenterFactory getInstance() {
+		return instance;
+	}
+
+	/**
+	 * Removes all factories. Should only be used very carefully
+	 */
+	public void clear() {
+		delegates.clear();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isFor(IViewContext uiContext, IElementEditpart editpart) {
+		for (IPresentationFactory factory : delegates
+				.toArray(new IPresentationFactory[delegates.size()])) {
+			if (factory.isFor(uiContext, editpart)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	@Override
+	public <A extends IWidgetPresentation<?>> A createPresentation(
+			IViewContext uiContext, IElementEditpart editpart) throws IllegalArgumentException {
+		for (IPresentationFactory factory : delegates
+				.toArray(new IPresentationFactory[delegates.size()])) {
+			if (factory.isFor(uiContext, editpart)) {
+				try {
+					A result = factory.createPresentation(uiContext, editpart);
+					if (result != null) {
+						return result;
+					}
+				} catch (IllegalArgumentException e) {
+					// nothing to do. Try the next factory
+				}
+			}
+		}
+		LOGGER.error("No proper presenterFactory found for elements {} {}",
+				new Object[] { uiContext, editpart });
+		return null;
+	}
+
+	/**
+	 * Will stash the current state. ONLY FOR TESTS!
+	 */
+	public void stash() {
+		if (stashed != null) {
+			return;
+		}
+		stashed = new ArrayList<IPresentationFactory>(delegates);
+	}
+
+	/**
+	 * Will unstash the stashed state. ONLY FOR TESTS!
+	 */
+	public void unstash() {
+		if (stashed == null) {
+			return;
+		}
+		delegates.clear();
+		delegates.addAll(stashed);
+		stashed = null;
+	}
+
+	/**
+	 * Adds a new factory to the manager.
+	 * 
+	 * @param factory
+	 *            Factory to be added.
+	 */
+	public void addDelegate(IPresentationFactory factory) {
+		if (!delegates.contains(factory)) {
+			delegates.add(factory);
+		}
+	}
+
+	/**
+	 * Removes the factory from the manager.
+	 * 
+	 * @param factory
+	 *            Factory to be removed.
+	 */
+	public void removeDelegate(IPresentationFactory factory) {
+		if (factory == null) {
+			return;
+		}
+		delegates.remove(factory);
+	}
+
+	/**
+	 * OSGi-DS component.
+	 */
+	public static class Component {
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            Component context
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void activate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("DelegatingPresenterFactory activated");
+		}
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            Component context
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void deactivate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("DelegatingPresenterFactory deactivated");
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 * 
+		 * @param factory
+		 *            Factory to be added
+		 */
+		protected void addDelegate(IPresentationFactory factory) {
+			DelegatingPresenterFactory.getInstance().addDelegate(factory);
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 * 
+		 * @param factory
+		 *            Factory to be added
+		 */
+		protected void removeDelegate(IPresentationFactory factory) {
+			DelegatingPresenterFactory.getInstance().removeDelegate(factory);
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IConverterFactory.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IConverterFactory.java
new file mode 100644
index 0000000..c26042e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IConverterFactory.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IConverterEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Is used to create UI-Kit specific converters.
+ */
+public interface IConverterFactory {
+
+	/**
+	 * Returns true, if the factory can be used for the given element.
+	 * 
+	 * @param uiContext
+	 *            contains information about the current ui instance
+	 * @param editpart
+	 *            the editpart for which a converter should be created.
+	 * @return result
+	 */
+	boolean isFor(IViewContext uiContext, IConverterEditpart editpart);
+
+	/**
+	 * Is used to create a new instance of a converter.
+	 *
+	 * @param uiContext
+	 *            contains information about the current ui instance
+	 * @param editpart
+	 *            the editpart for which a converter should be created.
+	 * @return converter
+	 * @throws IllegalArgumentException
+	 *             if no presentation could be created.
+	 */
+	Object createConverter(IViewContext uiContext, IConverterEditpart editpart)
+			throws IllegalArgumentException;
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IDialogPresentation.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IDialogPresentation.java
new file mode 100644
index 0000000..4f8069c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IDialogPresentation.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Needs to render a dialog.
+ *
+ * @param <C>
+ *            the generic type
+ */
+public interface IDialogPresentation<C> extends IWidgetPresentation<C> {
+
+	/**
+	 * Sets the content of the dialog.
+	 *
+	 * @param child
+	 *            the new content
+	 */
+	void setContent(IEmbeddableEditpart child);
+
+	/**
+	 * Sets the input data. The binding endpoint contains information about the
+	 * data that should be bound to the dialog.
+	 *
+	 * @param bindingEndpoint
+	 *            the new input data binding endpoint
+	 */
+	void setInputDataBindingEndpoint(IBindableEndpointEditpart bindingEndpoint);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IFieldPresentation.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IFieldPresentation.java
new file mode 100644
index 0000000..1bfec7e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IFieldPresentation.java
@@ -0,0 +1,123 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import org.eclipse.osbp.ecview.core.common.validation.IValidator;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * FieldPresentations are elements that display information but can not embed
+ * any further widgets like layouts.
+ *
+ * @param <C>
+ *            the generic type
+ */
+public interface IFieldPresentation<C> extends IWidgetPresentation<C> {
+
+	/**
+	 * Adds the validator to the field.
+	 *
+	 * @param validator
+	 *            the validator
+	 */
+	void addValidator(IValidator validator);
+
+	/**
+	 * Removes the validator from the field.
+	 *
+	 * @param validator
+	 *            the validator
+	 */
+	void removeValidator(IValidator validator);
+
+	/**
+	 * Sets the converter that should be used for this field to converter data
+	 * "from and to model" and "from and to UI".
+	 *
+	 * @param object
+	 *            the new converter
+	 */
+	void setConverter(Object object);
+
+	/**
+	 * Adds an external status to the validations of the field.
+	 *
+	 * @param status
+	 *            the status
+	 */
+	void addExternalStatus(IStatus status);
+
+	/**
+	 * Removes an external status from the validations of the field.
+	 *
+	 * @param status
+	 *            the status
+	 */
+	void removeExternalStatus(IStatus status);
+
+	/**
+	 * Resets all external status assigments.
+	 */
+	public void resetExternalStatus();
+
+	/**
+	 * An event to indicate added or removed validator.
+	 */
+	public static class Event {
+
+		/** The Constant ADD. */
+		public static final byte ADD = 0;
+		
+		/** The Constant REMOVE. */
+		public static final byte REMOVE = 1;
+
+		/** The type. */
+		private final short type;
+		
+		/** The validator. */
+		private final IValidator validator;
+
+		/**
+		 * Instantiates a new event.
+		 *
+		 * @param type
+		 *            the type
+		 * @param validator
+		 *            the validator
+		 */
+		public Event(byte type, IValidator validator) {
+			super();
+			this.type = type;
+			this.validator = validator;
+		}
+
+		/**
+		 * Returns the event. May be {@link #ADD} or {@link #REMOVE}.
+		 *
+		 * @return the type
+		 */
+		public short getType() {
+			return type;
+		}
+
+		/**
+		 * Returns the validator.
+		 *
+		 * @return the validator
+		 */
+		public IValidator getValidator() {
+			return validator;
+		}
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IInitializerService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IInitializerService.java
new file mode 100644
index 0000000..24d3d7a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IInitializerService.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Is used to initialize widgets after their creation.
+ */
+public interface IInitializerService {
+
+	/**
+	 * Will initialize the widget with predefined settings like minium size,...
+	 *
+	 * @param widget
+	 *            the widget
+	 * @param model
+	 *            the model
+	 */
+	void initialize(Object widget, Object model);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/ILayoutPresentation.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/ILayoutPresentation.java
new file mode 100644
index 0000000..629119e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/ILayoutPresentation.java
@@ -0,0 +1,110 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * LayoutPresentations are an abstraction above a layout an are responsible to
+ * create the UI-Kit specific elements and to handle them. One important thing
+ * to notice is, that the life cycle of editparts is handled by their edit
+ * parts. And so on editparts must never unrender or dispose its child
+ * editparts!
+ *
+ * @param <C>
+ *            the generic type
+ */
+public interface ILayoutPresentation<C> extends IWidgetPresentation<C> {
+
+	/**
+	 * Returns a list containing all child editparts.
+	 * 
+	 * @return children
+	 */
+	List<IEmbeddableEditpart> getChildren();
+
+	/**
+	 * Returns true, if the given child is contained as a children.
+	 * 
+	 * @param editpart
+	 *            The editpart
+	 * @return true if the editpart is contained as a children. False otherwise.
+	 */
+	boolean contains(IEmbeddableEditpart editpart);
+
+	/**
+	 * Adds a editpart to the this layout. Note, that the editpart can be of any
+	 * kind and it not parameterized.
+	 * 
+	 * @param editpart
+	 *            The editpart to be added
+	 */
+	void add(IEmbeddableEditpart editpart);
+
+	/**
+	 * Removes a editpart from this layout.
+	 * 
+	 * @param editpart
+	 *            The editpart to be removed
+	 */
+	void remove(IEmbeddableEditpart editpart);
+
+	/**
+	 * Inserts the given editpart at the index.
+	 * 
+	 * @param editpart
+	 *            The editpart to be inserted
+	 * @param index
+	 *            The index where the editpart should be inserted
+	 */
+	void insert(IEmbeddableEditpart editpart, int index);
+
+	/**
+	 * Moves the editpart from its current index to the given one.
+	 * 
+	 * @param editpart
+	 *            The editpart
+	 * @param index
+	 *            The index where the editpart should be moved to
+	 */
+	void move(IEmbeddableEditpart editpart, int index);
+
+	/**
+	 * Will render the child editparts.<br>
+	 * <ul>
+	 * <li><b>force == false:</b> Only elements will be rendered that are not
+	 * rendered yet. Already rendered elements will not be touched.</li>
+	 * <li><b>force == true:</b> First will unrender all child editparts and
+	 * afterward it will render them again.</li>
+	 * </ul>
+	 * 
+	 * @param force
+	 *            see method description
+	 */
+	void renderChildren(boolean force);
+
+	/**
+	 * Is called to update the cell style of a given child.
+	 *
+	 * @param child
+	 *            the child
+	 */
+	void updateCellStyle(YEmbeddable child);
+
+	/**
+	 * Is called to update the spacing and margin.
+	 */
+	void updateSpacings();
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IPresentationFactory.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IPresentationFactory.java
new file mode 100644
index 0000000..8291d02
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IPresentationFactory.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+
+/**
+ * Is responsible to return presenter based on the given element.
+ */
+public interface IPresentationFactory {
+
+	/**
+	 * Returns true, if the factory can be used for the given element.
+	 * 
+	 * @param uiContext
+	 *            contains information about the current ui instance
+	 * @param editpart
+	 *            the editpart for which a presenter should be created.
+	 * @return result
+	 */
+	boolean isFor(IViewContext uiContext, IElementEditpart editpart);
+
+	/**
+	 * Is used to create a new instance of a presenter.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IWidgetPresentation}
+	 * @param uiContext
+	 *            contains information about the current ui instance
+	 * @param editpart
+	 *            the editpart for which a presenter should be created.
+	 * @return presentation
+	 * 
+	 * @throws IllegalArgumentException
+	 *             if no presentation could be created.
+	 */
+	<A extends IWidgetPresentation<?>> A createPresentation(
+			IViewContext uiContext, IElementEditpart editpart)
+			throws IllegalArgumentException;
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IRenderer.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IRenderer.java
new file mode 100644
index 0000000..134fdb8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IRenderer.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import java.util.Map;
+
+import org.eclipse.osbp.ecview.core.common.context.ContextException;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+/**
+ * Is used to render the the given view part based on the information of the
+ * view context.
+ */
+public interface IRenderer {
+
+	/**
+	 * Renders the UI for the given componentContainer and UI model.
+	 * 
+	 * @param componentContainer
+	 *            The componentContainer the should be the parent for the
+	 *            rendered UI
+	 * @param yView
+	 *            The view model.
+	 * @param options
+	 *            rendering options
+	 * @return viewContext - the rendered view context
+	 * @throws ContextException
+	 *             e
+	 */
+	IViewContext render(Object rootContainer, YView yView,
+			Map<String, Object> options) throws ContextException;
+
+	/**
+	 * Is called to render the given view part based on the view context.
+	 * 
+	 * @param viewContext
+	 *            the context that is responsible to define the UI kit an to
+	 *            offer additional information to the edit part
+	 * @param rootLayout
+	 *            the root layout that should the base for all UI elements
+	 * @param options
+	 *            rendering options. Depend on the underlying UI-Kit
+	 * @throws ContextException
+	 *             if the view can not be rendered
+	 */
+	void render(IViewContext viewContext, Object rootLayout,
+			Map<String, Object> options) throws ContextException;
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IViewPresentation.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IViewPresentation.java
new file mode 100644
index 0000000..3d77b49
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IViewPresentation.java
@@ -0,0 +1,125 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import java.util.Map;
+import java.util.concurrent.Future;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.services.IUiKitBasedService;
+
+// TODO: Auto-generated Javadoc
+/**
+ * View presenters are used to render UIs based on a view.<br>
+ * Implementations are UI-kit specific.
+ *
+ * @param <C>
+ *            the generic type
+ */
+public interface IViewPresentation<C> extends IWidgetPresentation<C> {
+
+	/**
+	 * Is called to render the view.
+	 * 
+	 * @param options
+	 *            can contain different options used for rendering
+	 */
+	void render(Map<String, Object> options);
+
+	/**
+	 * Sets the editpart that should render the content.
+	 * 
+	 * @param editpart
+	 *            The content editpart
+	 */
+	void setContent(IEmbeddableEditpart editpart);
+
+	/**
+	 * Returns the editpart of the content.
+	 * 
+	 * @return editpart
+	 */
+	IEmbeddableEditpart getContent();
+	
+	/**
+	 * Is called to update the cell style of the content.
+	 */
+	void updateContentAlignment();
+	
+	/**
+	 * Is called to update the spacing and margin.
+	 */
+	void updateSpacings();
+
+	/**
+	 * Executes the given runnable. It is ensured that the runnable will be
+	 * executed within the context of the user interface related to this
+	 * context.
+	 *
+	 * @param runnable
+	 *            the runnable
+	 */
+	void exec(Runnable runnable);
+
+	/**
+	 * Executes the given runnable in a different thread. It is ensured that the
+	 * runnable will be executed within the context of the user interface
+	 * related to this context.
+	 *
+	 * @param runnable
+	 *            the runnable
+	 * @return the future
+	 */
+	Future<?> execAsync(Runnable runnable);
+
+	/**
+	 * Creates the fully configured service for the given service class.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param serviceClass
+	 *            the service class
+	 * @return the a
+	 */
+	<A extends IUiKitBasedService> A createService(Class<A> serviceClass);
+
+	/**
+	 * Opens the dialog.
+	 *
+	 * @param dialogEditpart
+	 *            the dialog editpart
+	 * @param inputData
+	 *            this object contains information about the input data of the
+	 *            target navigation page.
+	 */
+	void openDialog(IDialogEditpart dialogEditpart,
+			IBindableEndpointEditpart inputData);
+
+	/**
+	 * Closes the dialog.
+	 *
+	 * @param dialogEditpart
+	 *            the dialog editpart
+	 */
+	void closeDialog(IDialogEditpart dialogEditpart);
+
+	/**
+	 * Requests the focus for the given element.
+	 *
+	 * @param toFocus
+	 *            the to focus
+	 */
+	void requestFocus(IElementEditpart toFocus);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IWidgetPresentation.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IWidgetPresentation.java
new file mode 100644
index 0000000..399ed44
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/presentation/IWidgetPresentation.java
@@ -0,0 +1,107 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.presentation;
+
+import java.util.Set;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeChangeEvent;
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessable;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Widget presenter are used to create and provide widgets that will be
+ * assembled to an UI.<br>
+ * Implementations are UI-kit specific.
+ *
+ * @param <C>
+ *            the generic type
+ */
+public interface IWidgetPresentation<C> extends IDisposable,
+		IVisibilityProcessable {
+
+	/**
+	 * Returns the model associated with this presenter.<br>
+	 * Or <code>null</code> if the presenter is not based on a model.
+	 * 
+	 * @return the model or <code>null</code>
+	 */
+	Object getModel();
+
+	/**
+	 * Is called to create the widget described by the presenter. If an usable
+	 * instance is present then it has to be returned. Whether the child is
+	 * added to the parent depends on the underlying UI-Kit.
+	 * 
+	 * @param parent
+	 *            the parent where the widget should be placed in
+	 * @return the created widget
+	 */
+	C createWidget(Object parent);
+
+	/**
+	 * Is called to return the widget created by that presenter. If an usable
+	 * instance is present then it has to be returned. This method should never
+	 * create new instances of a widget.
+	 * 
+	 * @return the created widget
+	 */
+	C getWidget();
+
+	/**
+	 * The widget presenter will unrender its widget. It does not necessarily
+	 * have to dispose the widget but can do so. The kind of operation that will
+	 * be processed depends on the underlying UI-Kit.
+	 */
+	void unrender();
+
+	/**
+	 * Returns true, if the ui element of the presentation was rendered.
+	 * 
+	 * @return rendered
+	 */
+	boolean isRendered();
+
+	/**
+	 * Returns the view context that is responsible for the given context.
+	 *
+	 * @return the view context
+	 */
+	IViewContext getViewContext();
+
+	/**
+	 * Returns the observable that is related with the given model element.
+	 *
+	 * @param model
+	 *            The element representing the observable in the model.
+	 * @return the observable value
+	 */
+	IObservable getObservableValue(Object model);
+
+	/**
+	 * Returns all bindings that are attached to the UI element.
+	 *
+	 * @return the UI bindings
+	 */
+	Set<Binding> getUIBindings();
+
+	/**
+	 * Notifies the presentation about a changed datatype.
+	 *
+	 * @param event
+	 *            the event
+	 */
+	void notifyDatatypeChanged(DatatypeChangeEvent event);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/AbstractWidgetAssocationsService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/AbstractWidgetAssocationsService.java
new file mode 100644
index 0000000..e587631
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/AbstractWidgetAssocationsService.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.services;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public abstract class AbstractWidgetAssocationsService<UI, MODEL> implements
+		IWidgetAssocationsService<UI, MODEL> {
+
+	protected Map<UI, MODEL> associations = Collections
+			.synchronizedMap(new HashMap<UI, MODEL>());
+
+	@Override
+	public MODEL getModelElement(UI uiWidget) {
+		return associations.get(uiWidget);
+	}
+
+	@Override
+	public UI getWidget(MODEL modelElement) {
+		synchronized (associations) {
+			for (Map.Entry<UI, MODEL> entry : associations.entrySet()) {
+				if (entry.getValue() == modelElement) {
+					return entry.getKey();
+				}
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public void associate(UI uiWidget, MODEL modelElement) {
+		associations.put(uiWidget, modelElement);
+	}
+
+	@Override
+	public void remove(UI uiWidget) {
+		associations.remove(uiWidget);
+	}
+
+	@Override
+	public void clear() {
+		associations.clear();
+	}
+
+	@Override
+	public List<MODEL> getModelElements() {
+		return new ArrayList<MODEL>(associations.values());
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/DelegatingServiceProviderManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/DelegatingServiceProviderManager.java
new file mode 100644
index 0000000..deffdd0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/DelegatingServiceProviderManager.java
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) 2013 Loetz GmbH&Co.KG(Heidelberg). 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: Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.services;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.osbp.ecview.core.common.context.IContext;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Delegates the calls to the implementing services provided by OSGi-DS.
+ */
+public final class DelegatingServiceProviderManager implements IServiceProvider {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(DelegatingServiceProviderManager.class);
+
+	/** The instance. */
+	private static DelegatingServiceProviderManager instance = new DelegatingServiceProviderManager();
+
+	/** The view delegates. */
+	private final List<IServiceProvider> viewDelegates = Collections
+			.synchronizedList(new ArrayList<IServiceProvider>());
+
+	/** The view set delegates. */
+	private final List<IServiceProvider> viewSetDelegates = Collections
+			.synchronizedList(new ArrayList<IServiceProvider>());
+
+	/**
+	 * Instantiates a new delegating service provider manager.
+	 */
+	private DelegatingServiceProviderManager() {
+	}
+
+	/**
+	 * Returns the instance of that manager.
+	 * 
+	 * @return the instance
+	 */
+	public static DelegatingServiceProviderManager getInstance() {
+		return instance;
+	}
+
+	/**
+	 * Removes all factories. Should only be used very carefully
+	 */
+	public void clear() {
+		viewDelegates.clear();
+		viewSetDelegates.clear();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isFor(String selector, IContext context) {
+		if (context instanceof IViewContext) {
+			for (IServiceProvider factory : viewDelegates
+					.toArray(new IServiceProvider[viewDelegates.size()])) {
+				if (factory.isFor(selector, context)) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.osbp.ecview.core.common.services.IServiceProvider#createService
+	 * (java.lang.String, org.eclipse.osbp.ecview.core.common.context.IContext)
+	 */
+	@Override
+	public <A extends Object> A createService(String selector, IContext context) {
+		if (context instanceof IViewContext) {
+			for (IServiceProvider factory : viewDelegates
+					.toArray(new IServiceProvider[viewDelegates.size()])) {
+				if (factory.isFor(selector, context)) {
+					return factory.createService(selector, context);
+				}
+			}
+		}
+		LOGGER.debug("No proper serviceProvider found for element {}", selector);
+		return null;
+	}
+
+	/**
+	 * Adds a new delegate to the manager.
+	 *
+	 * @param delegate
+	 *            delegate to be added
+	 * @param properties
+	 *            the properties
+	 */
+	public void addDelegate(IServiceProvider delegate,
+			Map<String, Object> properties) {
+
+		if (properties == null
+				|| !properties.containsKey(IServiceProvider.OSGI_PROPERTY)
+				|| properties.get(IServiceProvider.OSGI_PROPERTY).equals(
+						IServiceProvider.LEVEL_VIEW)) {
+			if (!viewDelegates.contains(delegate)) {
+				viewDelegates.add(delegate);
+			}
+		} else {
+			if (!viewSetDelegates.contains(delegate)) {
+				viewSetDelegates.add(delegate);
+			}
+		}
+	}
+
+	/**
+	 * Removes the delegate from the manager.
+	 *
+	 * @param delegate
+	 *            delegate to be removed
+	 * @param properties
+	 *            the properties
+	 */
+	public void removeDelegate(IServiceProvider delegate,
+			Map<String, Object> properties) {
+		if (delegate == null) {
+			return;
+		}
+		viewDelegates.remove(delegate);
+		viewSetDelegates.remove(delegate);
+	}
+
+	/**
+	 * The OSGi component.
+	 */
+	public static class Component {
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            ComponentContext
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void activate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("ServiceProviderFactoryManager activated");
+		}
+
+		/**
+		 * Called by OSGi-DS.
+		 * 
+		 * @param context
+		 *            ComponentContext
+		 * @param properties
+		 *            Map of properties
+		 */
+		public void deactivate(ComponentContext context,
+				Map<String, Object> properties) {
+			LOGGER.debug("ServiceProviderFactoryManager deactivated");
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 *
+		 * @param delegate
+		 *            Manager to be added.
+		 * @param properties
+		 *            the properties
+		 */
+		protected void addDelegate(IServiceProvider delegate,
+				Map<String, Object> properties) {
+			DelegatingServiceProviderManager.getInstance().addDelegate(
+					delegate, properties);
+		}
+
+		/**
+		 * Called by OSGi DS.
+		 *
+		 * @param delegate
+		 *            Manager to be removed.
+		 * @param properties
+		 *            the properties
+		 */
+		protected void removeDelegate(IServiceProvider delegate,
+				Map<String, Object> properties) {
+			DelegatingServiceProviderManager.getInstance().removeDelegate(
+					delegate, properties);
+		}
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IServiceProvider.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IServiceProvider.java
new file mode 100644
index 0000000..eaf0f57
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IServiceProvider.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2013 Loetz GmbH&Co.KG(Heidelberg). 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: Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.common.services;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.osbp.ecview.core.common.context.IContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Provide services.
+ * 
+ * @author dominguez
+ * 
+ */
+public interface IServiceProvider {
+
+	/**
+	 * The property of the OSGi-service to assign the provider to view or
+	 * viewset level. No setting means view level.
+	 */
+	public static final String OSGI_PROPERTY = "ecview.serviceprovider.level";
+
+	/** The Constant LEVEL_VIEW. */
+	public static final String LEVEL_VIEW = "view";
+
+	/** The Constant LEVEL_VIEW_SET. */
+	public static final String LEVEL_VIEW_SET = "viewset";
+
+	/** The Constant VIEW_PROPERTIES. */
+	public static final Map<String, Object> VIEW_PROPERTIES = PropertiesInitializer
+			.createViewProperties();
+
+	/** The Constant VIEW_SET_PROPERTIES. */
+	public static final Map<String, Object> VIEW_SET_PROPERTIES = PropertiesInitializer
+			.createViewSetProperties();
+
+	/**
+	 * Returns true if the provider is responsible for creating services of the
+	 * given type for the context.
+	 *
+	 * @param selector
+	 *            the selector
+	 * @param context
+	 *            the context
+	 * @return true, if is for
+	 */
+	boolean isFor(String selector, IContext context);
+
+	/**
+	 * Returns the service of the given type for the context.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param selector
+	 *            the selector
+	 * @param context
+	 *            the context
+	 * @return the a
+	 */
+	<A> A createService(String selector, IContext context);
+
+	/**
+	 * The Class PropertiesInitializer.
+	 */
+	public static class PropertiesInitializer {
+
+		/**
+		 * Creates the properties to assign services to views.
+		 *
+		 * @return the map
+		 */
+		public static Map<String, Object> createViewProperties() {
+			Map<String, Object> props = new HashMap<String, Object>();
+			props.put(OSGI_PROPERTY, LEVEL_VIEW);
+			return Collections.unmodifiableMap(props);
+		}
+
+		/**
+		 * Creates the properties to assign services to views.
+		 *
+		 * @return the map
+		 */
+		public static Map<String, Object> createViewSetProperties() {
+			Map<String, Object> props = new HashMap<String, Object>();
+			props.put(OSGI_PROPERTY, LEVEL_VIEW_SET);
+			return Collections.unmodifiableMap(props);
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IServiceRegistry.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IServiceRegistry.java
new file mode 100644
index 0000000..245654d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IServiceRegistry.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.services;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The service registry. <br>
+ * Not intended to be subclassed.
+ */
+public interface IServiceRegistry {
+
+	/**
+	 * Defines the sequence of a service. It defined i which order the services
+	 * are called. Lower sequences will be called first. See
+	 * {@link #PROPERTY__DEFAULT_SQUENCE}.
+	 */
+	public static final String PROPERTY__SQUENCE = "service.sequence";
+
+	/**
+	 * Defines the default sequence used.
+	 */
+	public static final int PROPERTY__DEFAULT_SQUENCE = 100;
+
+	/**
+	 * Returns a service. It can be used to store transient values related to
+	 * the current view. All returned beans should offer PropertyChangeSupport.<br>
+	 * If an instance of a value bean for the given selector could be found, it
+	 * will be returned. Otherwise a new bean will be created an registered.
+	 * <p>
+	 * A common use case for value beans would be the sharing of a selected
+	 * value. For instance a selection event on a list may write the selection
+	 * to a value bean (selector="my.personlist.selection"). And a detail
+	 * component can observe this instance of the value bean and reflect its
+	 * values. To observe the value change eclipse data binding may be used.
+	 *
+	 * @param <S>
+	 *            the generic type
+	 * @param selector
+	 *            The selector string to identify the value bean instance.
+	 * @return valueBean
+	 */
+	public abstract <S> S getService(String selector);
+
+	/**
+	 * Registers an instance of a service to the context. It can be accessed by
+	 * the selector. See also {@link #getService(String) getService}.
+	 *
+	 * @param selector
+	 *            The selector string to identify the service instance.
+	 * @param service
+	 *            the service
+	 */
+	public abstract void registerService(String selector, Object service);
+
+	/**
+	 * Is called to unregister the service with the given selector.
+	 *
+	 * @param selector
+	 *            the selector
+	 */
+	public abstract void unregisterService(String selector);
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IThirdPartyServiceDelegate.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IThirdPartyServiceDelegate.java
new file mode 100644
index 0000000..09fc517
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IThirdPartyServiceDelegate.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.services;
+
+import org.eclipse.osbp.ecview.core.common.context.IContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Thirdparties may provide an implementation to the view context. The view
+ * context will try to find a service using this delegate.
+ */
+public interface IThirdPartyServiceDelegate {
+
+	/**
+	 * Returns true if the provider is responsible for creating services of the
+	 * given type for the context.
+	 *
+	 * @param selector
+	 *            the selector
+	 * @param context
+	 *            the context
+	 * @return true, if is for
+	 */
+	boolean isFor(String selector, IContext context);
+
+	/**
+	 * Returns the service of the given type for the context.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param selector
+	 *            the selector
+	 * @param context
+	 *            the context
+	 * @return the a
+	 */
+	<A> A createService(String selector, IContext context);
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IUiKitBasedService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IUiKitBasedService.java
new file mode 100644
index 0000000..cc64e80
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IUiKitBasedService.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.services;
+
+/**
+ * Marker interface to mark all services that are UI kit based. The view
+ * presentation is responsible to create instances for that services.
+ */
+public interface IUiKitBasedService {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IWidgetAssocationsService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IWidgetAssocationsService.java
new file mode 100644
index 0000000..be525ab
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/services/IWidgetAssocationsService.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.services;
+
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Is used to associate widgets with their model elements.
+ *
+ * @param <UI>
+ *            the generic type
+ * @param <MODEL>
+ *            the generic type
+ */
+public interface IWidgetAssocationsService<UI, MODEL> extends IUiKitBasedService {
+
+	/** The Constant ID. */
+	public static final String ID = IWidgetAssocationsService.class.getName();
+
+	/**
+	 * Returns the model element for the given ui widget.
+	 *
+	 * @param uiWidget
+	 *            the ui widget
+	 * @return the model element
+	 */
+	MODEL getModelElement(UI uiWidget);
+
+	/**
+	 * Returns the model element for the given id.
+	 *
+	 * @param id
+	 *            the id
+	 * @return the model element
+	 */
+	MODEL getModelElement(String id);
+
+	/**
+	 * Returns the editpart for the given id.
+	 *
+	 * @param id
+	 *            the id
+	 * @return the editpart
+	 */
+	IElementEditpart getEditpart(String id);
+
+	/**
+	 * Returns the widget for the given model element.
+	 *
+	 * @param modelElement
+	 *            the model element
+	 * @return the widget
+	 */
+	UI getWidget(MODEL modelElement);
+
+	/**
+	 * Associates the uiWidget with the given model element. One model element
+	 * can become assigned to different uiWidgets.
+	 *
+	 * @param uiWidget
+	 *            the ui widget
+	 * @param modelElement
+	 *            the model element
+	 */
+	void associate(UI uiWidget, MODEL modelElement);
+
+	/**
+	 * Removes the association for the given uiWidget.
+	 *
+	 * @param uiWidget
+	 *            the ui widget
+	 */
+	void remove(UI uiWidget);
+
+	/**
+	 * Returns all model elements.
+	 *
+	 * @return the model elements
+	 */
+	List<MODEL> getModelElements();
+
+	/**
+	 * Clears all associations.
+	 */
+	void clear();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/store/IViewStore.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/store/IViewStore.java
new file mode 100644
index 0000000..e03ccca
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/store/IViewStore.java
@@ -0,0 +1,86 @@
+/*
+ *                                                                            
+ *  Copyright (c) 2013, 2016 - Loetz GmbH&Co.KG, 69115 Heidelberg, Germany 
+ *                                                                            
+ *  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                                 
+ *                                                                            
+ *  Initial contribution:                                                      
+ *     Loetz GmbH & Co. KG                               
+ * 
+ */
+package org.eclipse.osbp.ecview.core.common.store;
+
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+
+// TODO: check reference in class description
+/**
+ * A store to access saved views.
+ */
+public interface IViewStore {
+
+	/**
+	 * Returns the most recent view. If no save view could be found, the
+	 * {link org.eclipse.osbp.ecview.extension.api.IECViewCache} is used to
+	 * find a proper view.
+	 *
+	 * @param userId
+	 *            the user id
+	 * @param id
+	 *            the id
+	 * @return the most recent view
+	 */
+	YView getMostRecentView(String userId, String id);
+ 
+	/**
+	 * Saves the given view.
+	 *
+	 * @param userId
+	 *            the user id
+	 * @param yView
+	 *            the y view
+	 */
+	void saveView(String userId, YView yView);
+
+	/**
+	 * Returns all available view versions for the given user id and the view
+	 * id.
+	 *
+	 * @param userId
+	 *            the user id
+	 * @param id
+	 *            the id
+	 * @return the all view versions
+	 */
+	List<YView> getAllViewVersions(String userId, String id);
+
+	/**
+	 * Deletes the view with the given parameters.
+	 *
+	 * @param userId
+	 *            the user id
+	 * @param id
+	 *            the id
+	 * @param version
+	 *            the version
+	 */
+	void deleteView(String userId, String id, String version);
+
+	/**
+	 * Exports the given view to the folder. If generateDialog is true, an
+	 * additional file for the dialog dsl will be generated.
+	 *
+	 * @param view
+	 *            the view
+	 * @param folder
+	 *            the folder
+	 * @param generateDialog
+	 *            the generate dialog
+	 */
+	void export(YView view, String folder, boolean generateDialog);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/tooling/IWidgetMouseClickService.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/tooling/IWidgetMouseClickService.java
new file mode 100644
index 0000000..ca8412b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/tooling/IWidgetMouseClickService.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.tooling;
+
+import org.eclipse.osbp.ecview.core.common.services.IUiKitBasedService;
+import org.eclipse.osbp.runtime.common.event.IEventBroker;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Is used to become notified about click events on elements. Attention: On
+ * activating that service, ALL mouse events will be sent to the listener.
+ */
+public interface IWidgetMouseClickService extends IUiKitBasedService {
+
+	/** The Constant ID. */
+	public static final String ID = IWidgetMouseClickService.class.getName();
+	
+	/**
+	 * If a mouse click occured, then an event is sent to this topic by
+	 * {@link IEventBroker}, if the event broker is available.<br>
+	 * As data a map is sent with the keys {@value #PROP_WIDGET} and {@value #PROP_MODEL_ELEMENT}
+	 */
+	public static final String EVENT_TOPIC = "ecview/mouseclick";
+	
+	/** The Constant PROP_WIDGET. */
+	public static final String PROP_WIDGET = "widget";
+	
+	/** The Constant PROP_MODEL_ELEMENT. */
+	public static final String PROP_MODEL_ELEMENT = "modelElement";
+
+	/**
+	 * Activates the service. All mouse events will be forwarded to the
+	 * listeners.
+	 */
+	void activate();
+
+	/**
+	 * Dectivates the service. Mouse events will not be forwarded to the
+	 * listeners.
+	 */
+	void dactivate();
+
+	/**
+	 * Adds a mouse click listener.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	void addListener(Listener listener);
+
+	/**
+	 * Removes the mouse click listener.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	void removeListener(Listener listener);
+
+	/**
+	 * Resolves the model element for the given UI element.
+	 */
+	interface ModelResolver {
+
+		/**
+		 * Returns the model element for the given ui element.
+		 *
+		 * @param uiWidget
+		 *            the ui widget
+		 * @return the object
+		 */
+		Object resolve(Object uiWidget);
+
+	}
+
+	/**
+	 * The Interface Listener.
+	 */
+	interface Listener {
+
+		/**
+		 * Notifies.
+		 *
+		 * @param modelElement
+		 *            the model element
+		 */
+		void clicked(Object modelElement);
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/AbstractScope.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/AbstractScope.java
new file mode 100644
index 0000000..a82d1f6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/AbstractScope.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.uri;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * Abstract class to unify all the methods used in the extended scope classes.
+ *
+ * @author dominguez
+ */
+public abstract class AbstractScope implements IURIScope {
+
+	/** The segment. */
+	private String segment;
+
+	/**
+	 * Instantiates a new abstract scope.
+	 */
+	protected AbstractScope() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.uri.IURIScope#getURISegment()
+	 */
+	public String getURISegment() {
+		return segment;
+	}
+
+	/**
+	 * Sets the URI segment. See {@link #getURISegment()}.
+	 *
+	 * @param segment
+	 *            the new URI segment
+	 */
+	protected void setURISegment(String segment) {
+		this.segment = segment;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/AccessibleScope.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/AccessibleScope.java
new file mode 100644
index 0000000..3577c82
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/AccessibleScope.java
@@ -0,0 +1,209 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.uri;
+
+import java.net.URI;
+
+import org.eclipse.osbp.ecview.core.common.IAccessible;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class AccessibleScope.
+ */
+public abstract class AccessibleScope extends AbstractScope {
+
+	/** The Constant logger. */
+	private static final Logger logger = LoggerFactory
+			.getLogger(AccessibleScope.class);
+
+	/** The bean scope. */
+	protected BeanScope beanScope;
+	
+	/** The service scope. */
+	protected ServiceScope serviceScope;
+
+	/**
+	 * Instantiates a new accessible scope.
+	 *
+	 * @param schema
+	 *            the schema
+	 */
+	protected AccessibleScope(String schema) {
+		setURISegment(schema);
+	}
+
+	/**
+	 * Replaces the fragment token that is used to access the bean in the slot.
+	 * <p>
+	 * For instance: <br>
+	 * <code>value.person.address</code> will be changed to
+	 * <code>person.address</code>
+	 *
+	 * @param beanFragment
+	 *            the bean fragment
+	 * @return the string
+	 */
+	public static String removeSlotValueFragmentToken(String beanFragment) {
+		if (beanFragment.startsWith("value.")) {
+			beanFragment = beanFragment.replaceFirst("value.", "");
+		} else if (beanFragment.equals("value")) {
+			beanFragment = "";
+		}
+		return beanFragment;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.uri.IURIScope#root()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends AccessibleScope> A root() {
+		return (A) this;
+	}
+
+	/**
+	 * Returns an URI that points to the most deep element expressed in that
+	 * scope.
+	 *
+	 * @return the uri
+	 */
+	public URI toFullURI() {
+		if (beanScope != null) {
+			FragmentScope fragmentScope = beanScope.getFragmentScope();
+			return fragmentScope != null ? fragmentScope.toURI() : beanScope
+					.toURI();
+		} else if (serviceScope != null) {
+			return serviceScope.toURI();
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the bean scope. If the scope does not have a bean scope then
+	 * <code>null</code> is returned.
+	 *
+	 * @return the bean scope
+	 */
+	public BeanScope getBeanScope() {
+		return beanScope;
+	}
+
+	/**
+	 * Returns the service scope. If the scope does not have a service scope
+	 * then <code>null</code> is returned.
+	 *
+	 * @return the service scope
+	 */
+	public ServiceScope getServiceScope() {
+		return serviceScope;
+	}
+
+	/**
+	 * Creates a bean scope for the given selector.
+	 *
+	 * @param selector
+	 *            the selector
+	 * @return the bean scope
+	 */
+	public BeanScope bean(String selector) {
+		if (serviceScope != null) {
+			logger.error("ServiceScope was already defined!");
+		}
+		// TODO check bean scope exists
+		beanScope = new BeanScope(this, selector);
+		return beanScope;
+	}
+
+	/**
+	 * Creates a service scope for the given selector.
+	 *
+	 * @param selector
+	 *            the selector
+	 * @return the service scope
+	 */
+	public ServiceScope service(String selector) {
+		if (beanScope != null) {
+			logger.error("BeanScope was already defined!");
+		}
+		// TODO check bean scope exists
+		serviceScope = new ServiceScope(this, selector);
+		return serviceScope;
+	}
+
+	/**
+	 * Accesses the object in the given context that is described by the uri of
+	 * this scope.
+	 *
+	 * @param context
+	 *            the context
+	 * @return the object
+	 */
+	public abstract Object access(IAccessible context);
+
+	/**
+	 * Returns the URI representation of the bean scope string token if exists.
+	 * Otherwise it returns 'null'
+	 * 
+	 * @return URI
+	 */
+	public URI toBeanURI() {
+		return beanScope != null ? beanScope.toURI() : null;
+	}
+
+	/**
+	 * Returns the URI representation of the bean fragment scope string token if
+	 * exists. Otherwise it returns 'null'
+	 * 
+	 * @return URI
+	 */
+	public URI toBeanFragmentURI() {
+		if (beanScope != null) {
+			FragmentScope fragmentScope = beanScope.getFragmentScope();
+			return fragmentScope != null ? fragmentScope.toURI() : null;
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the String representation of the fragment scope string token
+	 * within the bean scope if exists. Otherwise it returns 'null'
+	 * 
+	 * @return URI
+	 */
+	public String getBeanFragment() {
+		if (beanScope != null) {
+			FragmentScope fragmentScope = beanScope.getFragmentScope();
+			return fragmentScope != null ? fragmentScope.getFragmentContent()
+					: "";
+		}
+		return "";
+	}
+
+	/**
+	 * Returns the URI representation of the service scope string token if
+	 * exists. Otherwise it returns 'null'
+	 * 
+	 * @return URI
+	 */
+	public URI toServiceURI() {
+		return serviceScope != null ? serviceScope.toURI() : null;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString() {
+		return toFullURI().toString();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/BeanScope.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/BeanScope.java
new file mode 100644
index 0000000..f312f2c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/BeanScope.java
@@ -0,0 +1,192 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.uri;
+
+import java.net.URI;
+
+import org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class BeanScope.
+ */
+public class BeanScope extends AbstractScope {
+
+	/** The Constant URI_AUTHORITY. */
+	public static final String URI_AUTHORITY = "bean";
+	
+	/** The Constant SEGMENT_TEMPLATE. */
+	private static final String SEGMENT_TEMPLATE = "bean/%s";
+	
+	/** The parent. */
+	private final AccessibleScope parent;
+	
+	/** The selector. */
+	private final String selector;
+
+	/** The fragment scope. */
+	private FragmentScope fragmentScope;
+
+	/**
+	 * Instantiates a new bean scope.
+	 *
+	 * @param parent
+	 *            the parent
+	 * @param selector
+	 *            the selector
+	 */
+	public BeanScope(AccessibleScope parent, String selector) {
+		this.parent = parent;
+		this.selector = selector;
+
+		setURISegment(String.format(SEGMENT_TEMPLATE, selector));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.uri.IURIScope#root()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends AccessibleScope> A root() {
+		return (A) parent;
+	}
+
+	/**
+	 * Gets the view scope.
+	 *
+	 * @return the view scope
+	 */
+	protected AccessibleScope getViewScope() {
+		return root();
+	}
+
+	/**
+	 * Returns the URI representation of this bean scope.
+	 * 
+	 * @return URI
+	 */
+	public URI toURI() {
+		return URI.create(toURIString());
+	}
+
+	/**
+	 * Returns the URI string of the produced string token.
+	 * 
+	 * @return String string
+	 */
+	public String toURIString() {
+		return parent.getURISegment().concat(getURISegment());
+	}
+
+	/**
+	 * Returns the fragment scope including the given fragment. <br>
+	 * Is part of fluent API.
+	 *
+	 * @param fragment
+	 *            the fragment
+	 * @return the fragment scope
+	 */
+	public FragmentScope fragment(String fragment) {
+		if (fragment == null || fragment.equals("")) {
+			return null;
+		}
+
+		fragmentScope = new FragmentScope(this, fragment);
+		return fragmentScope;
+	}
+
+	/**
+	 * Accesses the object in the given context that is described by the uri
+	 * segment of this scope. Also delegates to fragment scope if exists.
+	 *
+	 * @param accessible
+	 *            the accessible
+	 * @return the object
+	 */
+	public Object access(IBeanRegistry accessible) {
+		Object result = null;
+		Object bean = accessible.getBeanSlot(selector);
+		if (fragmentScope != null) {
+			result = fragmentScope.access(bean);
+		} else {
+			result = bean;
+		}
+		return result;
+	}
+
+	/**
+	 * Accesses the bean slot in the given context and returns its value. URI
+	 * fragments are ignored.
+	 *
+	 * @param accessible
+	 *            the accessible
+	 * @return the object
+	 */
+	public Object accessBean(IBeanRegistry accessible) {
+		return accessBeanSlot(accessible).getValue();
+	}
+
+	/**
+	 * Accesses the bean slot in the given context and returns it. URI fragments
+	 * are ignored.
+	 *
+	 * @param accessible
+	 *            the accessible
+	 * @return the i slot
+	 */
+	public ISlot accessBeanSlot(IBeanRegistry accessible) {
+		return accessible.getBeanSlot(selector);
+	}
+
+	/**
+	 * Creates a new bean slot if not present yet.
+	 *
+	 * @param accessible
+	 *            the accessible
+	 * @param type
+	 *            The type of the object that will be stored in the bean slot
+	 * @return the i slot
+	 */
+	public ISlot createBeanSlot(IBeanRegistry accessible, Class<?> type) {
+		ISlot slot = accessible.getBeanSlot(selector);
+		if (slot == null) {
+			slot = accessible.createBeanSlot(selector, type);
+		}
+		return slot;
+	}
+
+	/**
+	 * Returns the selector that points to the target value in the bean scope.
+	 *
+	 * @return the selector
+	 */
+	public String getSelector() {
+		return selector;
+	}
+
+	/**
+	 * Returns the fragment scope.
+	 *
+	 * @return FragmentScope
+	 */
+	public FragmentScope getFragmentScope() {
+		return fragmentScope;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString() {
+		return toURIString();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/FragmentScope.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/FragmentScope.java
new file mode 100644
index 0000000..337304f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/FragmentScope.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.uri;
+
+import java.lang.reflect.InvocationTargetException;
+import java.net.URI;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class FragmentScope.
+ */
+public class FragmentScope extends AbstractScope {
+
+	/** The Constant logger. */
+	private static final Logger logger = LoggerFactory
+			.getLogger(FragmentScope.class);
+
+	/** The Constant SEGMENT_TEMPLATE. */
+	private static final String SEGMENT_TEMPLATE = "#%s";
+	
+	/** The parent. */
+	private final BeanScope parent;
+	
+	/** The selector. */
+	private final String selector;
+
+	/**
+	 * Instantiates a new fragment scope.
+	 *
+	 * @param parent
+	 *            the parent
+	 * @param selector
+	 *            the selector
+	 */
+	public FragmentScope(BeanScope parent, String selector) {
+		this.parent = parent;
+		this.selector = selector;
+
+		setURISegment(String.format(SEGMENT_TEMPLATE, selector));
+	}
+
+	/**
+	 * Returns the URI representation of this bean scope.
+	 * 
+	 * @return URI
+	 */
+	public URI toURI() {
+		return URI.create(toURIString());
+	}
+
+	/**
+	 * Returns the URI string of the produced string token.
+	 * 
+	 * @return String string
+	 */
+	public String toURIString() {
+		return parent.toURIString().concat(getURISegment());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.uri.IURIScope#root()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends AccessibleScope> A root() {
+		return (A) parent.getViewScope();
+	}
+
+	/**
+	 * Access.
+	 *
+	 * @param bean
+	 *            the bean
+	 * @return the object
+	 */
+	public Object access(Object bean) {
+		Object result = null;
+		try {
+			result = PropertyUtils.getProperty(bean, selector);
+		} catch (IllegalAccessException e) {
+			logger.error("{}", e);
+			e.printStackTrace();
+		} catch (InvocationTargetException e) {
+			logger.error("{}", e);
+			e.printStackTrace();
+		} catch (NoSuchMethodException e) {
+			logger.error("{}", e);
+			e.printStackTrace();
+		}
+		return result;
+	}
+
+	/**
+	 * Returns the URISegment but removing the first #.
+	 *
+	 * @return the fragment content
+	 */
+	public String getFragmentContent() {
+		return getURISegment().replace("#", "");
+	}
+
+	/* (non-Javadoc)
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString() {
+		return toURIString();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/IURIScope.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/IURIScope.java
new file mode 100644
index 0000000..0ef4ba1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/IURIScope.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.uri;
+
+// TODO: Auto-generated Javadoc
+/**
+ * URI scopes are used to build an accessor for a given URI.
+ */
+public interface IURIScope {
+
+	/**
+	 * Returns the segment that is contributed by the current scope to the
+	 * resulting URI.
+	 * <p>
+	 * For that scope may provide "bean/org.my.bean" to an URI that results in
+	 * <code>"view://bean/org.my.bean#person.address.country"</code>.
+	 * 
+	 * @return String
+	 */
+	public String getURISegment();
+
+	/**
+	 * Returns the view scope or view set scope. <br>
+	 * Is part of fluent API.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @return root scope
+	 */
+	public <A extends AccessibleScope> A root();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/ServiceScope.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/ServiceScope.java
new file mode 100644
index 0000000..09caace
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/ServiceScope.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.uri;
+
+import java.net.URI;
+
+import org.eclipse.osbp.ecview.core.common.services.IServiceRegistry;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ServiceScope.
+ */
+public class ServiceScope extends AbstractScope {
+
+	/** The Constant URI_AUTHORITY. */
+	public static final String URI_AUTHORITY = "service";
+	
+	/** The Constant SEGMENT_TEMPLATE. */
+	private static final String SEGMENT_TEMPLATE = "service/%s";
+	
+	/** The parent. */
+	private final AccessibleScope parent;
+	
+	/** The selector. */
+	private final String selector;
+
+	/**
+	 * Instantiates a new service scope.
+	 *
+	 * @param parent
+	 *            the parent
+	 * @param selector
+	 *            the selector
+	 */
+	public ServiceScope(AccessibleScope parent, String selector) {
+		this.parent = parent;
+		this.selector = selector;
+
+		setURISegment(String.format(SEGMENT_TEMPLATE, selector));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.uri.IURIScope#root()
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends AccessibleScope> A root() {
+		return (A) parent;
+	}
+
+	/**
+	 * Gets the view scope.
+	 *
+	 * @return the view scope
+	 */
+	protected AccessibleScope getViewScope() {
+		return root();
+	}
+
+	/**
+	 * Returns the URI representation of this bean scope.
+	 * 
+	 * @return URI
+	 */
+	public URI toURI() {
+		return URI.create(toURIString());
+	}
+
+	/**
+	 * Returns the URI string of the produced string token.
+	 * 
+	 * @return String string
+	 */
+	public String toURIString() {
+		return parent.getURISegment().concat(getURISegment());
+	}
+
+	/**
+	 * Accesses the object in the given context that is described by the uri
+	 * segment of this scope.
+	 *
+	 * @param context
+	 *            the context
+	 * @return the object
+	 */
+	public Object access(IServiceRegistry context) {
+		return context.getService(selector);
+	}
+
+	/* (non-Javadoc)
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString() {
+		return toURIString();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/URIHelper.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/URIHelper.java
new file mode 100644
index 0000000..b91d519
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/URIHelper.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.uri;
+
+import java.net.URI;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class URIHelper.
+ */
+public class URIHelper {
+
+	/** The Constant logger. */
+	@SuppressWarnings("unused")
+	private static final Logger logger = LoggerFactory
+			.getLogger(URIHelper.class);
+
+	/**
+	 * Creates a new view context scope.
+	 *
+	 * @return the view scope
+	 */
+	public static ViewScope view() {
+		return new ViewScope();
+	}
+
+	/**
+	 * Uses the uriString to create the {@link AccessibleScope} based on that
+	 * information.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param uriString
+	 *            the uri string
+	 * @return the a
+	 */
+	public static <A extends AccessibleScope> A toScope(String uriString) {
+		return toScope(URI.create(uriString));
+	}
+
+	/**
+	 * Uses the uri to create the {@link AccessibleScope} based on that
+	 * information.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param uri
+	 *            the uri
+	 * @return the a
+	 */
+	public static <A extends AccessibleScope> A toScope(URI uri) {
+		A scope = null;
+		if (ViewScope.SCHEMA.equals(uri.getScheme())) {
+			scope = parse(uri, view());
+		}
+		return scope;
+	}
+
+	/**
+	 * Parses the uri and invokes the related methods on the viewScope.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param uri
+	 *            the uri
+	 * @param viewScope
+	 *            the view scope
+	 * @return the a
+	 */
+	@SuppressWarnings("unchecked")
+	private static <A extends AccessibleScope> A parse(URI uri,
+			AccessibleScope viewScope) {
+
+		// uri.getPath() always starts with "/", but as selector within the
+		// context it is used without therefor the creation of selector-String
+		//
+		String selector = uri.getPath().substring(1);
+		if (BeanScope.URI_AUTHORITY.equals(uri.getAuthority())) {
+			viewScope.bean(selector).fragment(uri.getFragment());
+		} else if (ServiceScope.URI_AUTHORITY.equals(uri.getAuthority())) {
+			viewScope.service(selector);
+		}
+		return (A) viewScope;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/URIMapper.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/URIMapper.java
new file mode 100644
index 0000000..e1b9087
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/URIMapper.java
@@ -0,0 +1,290 @@
+/*
+ *                                                                            
+ *  Copyright (c) 2011, 2014 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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                                 
+ *                                                                            
+ *  Initial contribution:                                                      
+ *     Loetz GmbH & Co. KG                               
+ * 
+ */
+
+
+package org.eclipse.osbp.ecview.core.common.uri;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Added URI will be transformed to the most pathed way or fragmented way.
+ * <h3>pathed URI</h3>
+ * This means, that the URI-fragment is shorten to the first element and the
+ * rest of the URI-Elements are placed at path structure.
+ * <p>
+ * For instance<br>
+ * input =
+ * <code>view://bean/root/invoiceInfo#value.customer.address.country</code><br>
+ * pathed =
+ * <code>view://bean/root/invoiceInfo/customer/address#value.country</code>
+ * 
+ * <h3>fragmented URI</h3> This means, that the URI-path is shorten to the first
+ * element and the rest of the URI-Elements are placed at fragment structure.
+ * <p>
+ * 
+ * For instance<br>
+ * input =
+ * <code>view://bean/root/invoiceInfo#value.customer.address.country</code><br>
+ * fragmented =
+ * <code>view://bean/root#value.invoiceInfo.customer.address.country</code>
+ * 
+ * @author dominguez
+ * 
+ */
+public class URIMapper {
+
+	/** The uri schema delimiter. */
+	private final String URI_SCHEMA_DELIMITER = "://";
+	
+	/** The uri path delimiter. */
+	private final String URI_PATH_DELIMITER = "/";
+	
+	/** The uri fragment delimiter. */
+	private final String URI_FRAGMENT_DELIMITER = ".";
+	
+	/** The uri fragment path delimiter. */
+	private final String URI_FRAGMENT_PATH_DELIMITER = "#";
+	
+	/** The mapping. */
+	private Mapping mapping;
+
+	/** The Constant logger. */
+	private static final Logger logger = LoggerFactory
+			.getLogger(URIMapper.class);
+
+	/**
+	 * Adds the uri.
+	 *
+	 * @param uri
+	 *            the uri
+	 * @return the mapping
+	 */
+	public Mapping addURI(URI uri) {
+		mapping = new Mapping(uri);
+		return mapping;
+	}
+
+	/**
+	 * Activate.
+	 */
+	public void activate() {
+		mapping.activate = true;
+	}
+
+	/**
+	 * Deactivate.
+	 */
+	public void deactivate() {
+		mapping.activate = false;
+	}
+
+	/**
+	 * The Class Mapping.
+	 */
+	public class Mapping {
+		
+		/** The uri. */
+		private final URI uri;
+		
+		/** The path elems. */
+		private final String[] pathElems;
+		
+		/** The fragments. */
+		private final String[] fragments;
+		
+		/** The uri elems. */
+		private final List<String> uriElems;
+		
+		/** The activate. */
+		private boolean activate;
+
+		/**
+		 * Instantiates a new mapping.
+		 *
+		 * @param uri
+		 *            the uri
+		 */
+		public Mapping(URI uri) {
+			this.uri = uri;
+			pathElems = uri.getPath().split("/");
+			fragments = uri.getFragment().split("\\.");
+			uriElems = new ArrayList<String>(pathElems.length
+					+ fragments.length - 2);
+			uriElems.addAll(Arrays.asList(Arrays.copyOfRange(pathElems, 1,
+					pathElems.length)));
+			uriElems.addAll(Arrays.asList(Arrays.copyOfRange(fragments, 1,
+					fragments.length)));
+		}
+
+		/**
+		 * Gets the uri.
+		 *
+		 * @return the uri
+		 */
+		public URI getUri() {
+			return uri;
+		}
+
+		/**
+		 * Gets the URI prefix.
+		 *
+		 * @return the URI prefix
+		 */
+		private StringBuffer getURIPrefix() {
+			StringBuffer strBuf = new StringBuffer();
+			String schema = uri.getScheme();
+			String auth = uri.getAuthority();
+			strBuf.append(schema).append(URI_SCHEMA_DELIMITER).append(auth);
+			return strBuf;
+		}
+
+		/**
+		 * Provides the URI in the most fragmented way. This means, that the
+		 * URI-path is shorten to the first element and the rest of the
+		 * URI-Elements are placed at fragment structure.
+		 * 
+		 * @return URI
+		 */
+		public URI getFragmentedURI() {
+			StringBuffer strBuf = getURIPrefix();
+			// not starting at pathElems[0], because that Element is blank.
+			strBuf.append(URI_PATH_DELIMITER).append(pathElems[1])
+					.append(URI_FRAGMENT_PATH_DELIMITER).append(fragments[0]);
+			combineURI(strBuf, 1, pathElems.length, URI_FRAGMENT_DELIMITER);
+			combineURI(strBuf, pathElems.length, uriElems.size(),
+					URI_FRAGMENT_DELIMITER);
+			logger.debug("getFragmentedURI() - strBuf: " + strBuf);
+			return URI.create(strBuf.toString());
+		}
+
+		/**
+		 * Combine uri.
+		 *
+		 * @param strBuf
+		 *            the str buf
+		 * @param pathStart
+		 *            the path start
+		 * @param pathEnd
+		 *            the path end
+		 * @param delimiter
+		 *            the delimiter
+		 * @return the string buffer
+		 */
+		private StringBuffer combineURI(StringBuffer strBuf, int pathStart,
+				int pathEnd, String delimiter) {
+			if (validateStartEnd(uriElems, pathStart, pathEnd)) {
+				for (int i = pathStart; i < pathEnd; i++) {
+					String pathElemsSplit = uriElems.get(i);
+					strBuf.append(delimiter).append(pathElemsSplit);
+				}
+			}
+			return strBuf;
+		}
+
+		/**
+		 * Validate start end.
+		 *
+		 * @param list
+		 *            the list
+		 * @param listStart
+		 *            the list start
+		 * @param listEnd
+		 *            the list end
+		 * @return true, if successful
+		 */
+		private boolean validateStartEnd(Collection<String> list,
+				int listStart, int listEnd) {
+			if (listStart < 0 || listEnd > list.size()) {
+				return false;
+			}
+			return true;
+		}
+
+		/**
+		 * Provides the URI in the most pathed way. This means, that the
+		 * URI-fragment is shorten to the first element and the rest of the
+		 * URI-Elements are placed at path structure.
+		 * 
+		 * @return URI
+		 */
+		public URI getPathedURI() {
+			StringBuffer strBuf = getURIPrefix();
+			strBuf.append(uri.getPath());
+			combineURI(strBuf, pathElems.length - 1, uriElems.size() - 1,
+					URI_PATH_DELIMITER);
+			strBuf.append(URI_FRAGMENT_PATH_DELIMITER).append(fragments[0]);
+			// the first fragmentElement is already in the URi
+			if ((fragments.length - 1) > 0) {
+				strBuf.append(URI_FRAGMENT_DELIMITER).append(
+						fragments[fragments.length - 1]);
+			}
+			logger.debug("getPathedURI() - strBuf: " + strBuf);
+			return URI.create(strBuf.toString());
+		}
+
+		/**
+		 * Helper method to prepare the mappings.
+		 *
+		 * @return List<Mapping>
+		 */
+		private List<Mapping> getAllMappings() {
+			int idx = uriElems.size();
+			List<Mapping> mappings = new ArrayList<Mapping>(idx + 1);
+			int start = 0;
+			int end = idx;
+			for (int i = 0; i < idx; i++) {
+				StringBuffer strBuf = getURIPrefix();
+				// first path element is always required
+				int pathEnd = end - 1;
+				if (end == 1) {
+					pathEnd = end;
+				}
+				combineURI(strBuf, start, pathEnd, URI_PATH_DELIMITER);
+				strBuf.append(URI_FRAGMENT_PATH_DELIMITER).append(fragments[0]);
+				// no more fragment available
+				if (end > 1) {
+					combineURI(strBuf, pathEnd, end, URI_FRAGMENT_DELIMITER);
+				}
+				Mapping mapping = new Mapping(URI.create(strBuf.toString()));
+				mappings.add(mapping);
+				end--;
+			}
+			return mappings;
+		}
+
+		/**
+		 * Returns all the mappings contained in this mapper.
+		 *
+		 * @return List&lt;Mapping&gt;
+		 */
+		public List<Mapping> getMappings() {
+			if (!activate) {
+				List<Mapping> mappings = new ArrayList<URIMapper.Mapping>(1);
+				mappings.add(this);
+				return mappings;
+			} else {
+				return getAllMappings();
+			}
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/ViewScope.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/ViewScope.java
new file mode 100644
index 0000000..4b26a34
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/ViewScope.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.uri;
+
+import org.eclipse.osbp.ecview.core.common.IAccessible;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ViewScope.
+ */
+public class ViewScope extends AccessibleScope {
+
+	/** The Constant SCHEMA. */
+	public static final String SCHEMA = "view";
+	
+	/** The Constant URI_SEGMENT. */
+	private static final String URI_SEGMENT = SCHEMA + "://";
+
+	/**
+	 * Instantiates a new view scope.
+	 */
+	public ViewScope() {
+		super(URI_SEGMENT);
+	}
+
+	/**
+	 * Accesses the object in the given context that is described by the uri of
+	 * this scope.
+	 *
+	 * @param context
+	 *            the context
+	 * @return the object
+	 */
+	public Object access(IViewContext context) {
+		if (beanScope != null) {
+			return beanScope.access(context);
+		} else if (serviceScope != null) {
+			return serviceScope.access(context);
+		}
+
+		return null;
+	}
+
+	/**
+	 * Accesses the object in the given context that is described by the uri of
+	 * this scope.
+	 *
+	 * @param accessible
+	 *            the accessible
+	 * @return the object
+	 */
+	public Object access(IAccessible accessible) {
+
+		if (!(accessible instanceof IViewContext)) {
+			throw new IllegalStateException(String.format(
+					"%s is not a legal accessible!", accessible.getClass()
+							.getName()));
+		}
+
+		return access((IViewContext) accessible);
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/binding.txt b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/binding.txt
new file mode 100644
index 0000000..6ed3f1d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/uri/binding.txt
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+	partner												root
+	partner.deliveryInfo								root/deliveryInfo
+	partner.invoiceInfo									root/invoiceInfo
+	partner.invoiceInfo.customer.address.country		root/invoiceInfo/customer/address/country
+	
+	
+	
+	
+	
+	
+	
+	Version 1:
+	UI
+	YText isocode		view://bean/root#invoiceInfo.customer.address.country.isocode
+	...
+	..
+	
+	30x
+	..
+	...
+	
+	
+	BeansObservable.observeDetail(root, "invoiceInfo.customer.address.country.isocode")
+	...
+	..
+	30x
+	...
+	...
+	
+	
+	
+	Version 2:
+	UI
+	YText paymentTerm		bindsTo = view://bean/root#invoiceInfo.customer.address.country.isocode
+	
+	
+	dbc.bind(ContextObservable.observe(view://bean/root#invoiceInfo), ContextObservable.observe(view://bean/root/invoiceInfo#value)
+	dbc.bind(ContextObservable.observe(view://bean/root/invoiceInfo#customer), ContextObservable.observe(view://bean/root/invoiceInfo/customer#value)
+	
+	
+	Transformation:
+	a = view://bean/root#invoiceInfo.customer.address.country.isocode	
+	a' = view://bean/root/invoiceInfo/customer/address/country#isocode
+	
+	mapping = URIMapper.addURI(a)
+	a' = mapping.getPathedURI()
+	a = mapping.getFragmentedURI()
+	
+	URIMapper.getMappings()
+	
+	URIMapper.activate()
+	
+	view://bean/root/invoiceInfo/customer/address/country#isocode
+	view://bean/root/invoiceInfo/customer/address#country
+	view://bean/root/invoiceInfo/customer#address
+	view://bean/root/invoiceInfo#customer
+	view://bean/root#invoiceInfo
+	view://bean/root
+	
+	
+	URIMapper.deactivate()
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/AbstractCollectingValidator.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/AbstractCollectingValidator.java
new file mode 100644
index 0000000..9a4146c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/AbstractCollectingValidator.java
@@ -0,0 +1,48 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.common.validation;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+
+public abstract class AbstractCollectingValidator extends AbstractDisposable
+		implements IValidator {
+
+	protected Set<IStatus> currentStatus = new HashSet<IStatus>();
+
+	@Override
+	public Set<IStatus> getCurrentStatus() {
+		return currentStatus;
+	}
+
+	protected void resetCurrentStatus() {
+		currentStatus.clear();
+	}
+
+	protected void addCurrentStatus(IStatus status) {
+		currentStatus.add(status);
+	}
+	
+	protected void addCurrentStatus(Set<IStatus> status) {
+		currentStatus.addAll(status);
+	}
+
+	protected void internalDispose() {
+		currentStatus.clear();
+		currentStatus = null;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IFieldValidationManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IFieldValidationManager.java
new file mode 100644
index 0000000..d41ef05
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IFieldValidationManager.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.validation;
+
+import java.util.List;
+
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This class is responsible to handle validation results on UI level.
+ */
+public interface IFieldValidationManager extends IDisposable {
+
+	/**
+	 * Register validation status for the given context.
+	 *
+	 * @param context
+	 *            the context
+	 * @param status
+	 *            the status
+	 */
+	void registerResult(Object context, List<IStatus> status);
+
+	/**
+	 * Returns all validation results for the given context.
+	 *
+	 * @param context
+	 *            the context
+	 * @return the results
+	 */
+	List<IStatus> getResults(Object context);
+
+	/**
+	 * Sets the enhancer.
+	 *
+	 * @param enhancer
+	 *            the new enhancer
+	 */
+	void setEnhancer(Enhancer enhancer);
+
+	/**
+	 * Adds a new validation listener.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	void addListener(Listener listener);
+
+	/**
+	 * Removes the given validation listener.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	void removeListener(Listener listener);
+
+	/**
+	 * An enhancer may be used, to enhance the IStatus with additional
+	 * information. For instance a property for the currently active view.
+	 */
+	interface Enhancer {
+
+		/**
+		 * Enhances the status.
+		 *
+		 * @param status
+		 *            the status
+		 */
+		void enhance(IStatus status);
+
+	}
+
+	/**
+	 * Notifies the listener about a changed validation.
+	 */
+	interface Listener {
+
+		/**
+		 * Is called, if the status changed.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void validationChanged(Event event);
+	}
+
+	/**
+	 * The Class Event.
+	 */
+	public static class Event {
+
+		/** The context. */
+		private final Object context;
+		
+		/** The old status. */
+		private final List<IStatus> oldStatus;
+		
+		/** The new status. */
+		private final List<IStatus> newStatus;
+
+		/**
+		 * Instantiates a new event.
+		 *
+		 * @param context
+		 *            the context
+		 * @param oldStatus
+		 *            the old status
+		 * @param newStatus
+		 *            the new status
+		 */
+		public Event(Object context, List<IStatus> oldStatus,
+				List<IStatus> newStatus) {
+			super();
+			this.context = context;
+			this.oldStatus = oldStatus;
+			this.newStatus = newStatus;
+		}
+
+		/**
+		 * Gets the context.
+		 *
+		 * @return the context
+		 */
+		public Object getContext() {
+			return context;
+		}
+
+		/**
+		 * Gets the old status.
+		 *
+		 * @return the oldStatus
+		 */
+		public List<IStatus> getOldStatus() {
+			return oldStatus;
+		}
+
+		/**
+		 * Gets the new status.
+		 *
+		 * @return the newStatus
+		 */
+		public List<IStatus> getNewStatus() {
+			return newStatus;
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidationCodes.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidationCodes.java
new file mode 100644
index 0000000..ecc486c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidationCodes.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.validation;
+
+/**
+ * The validation codes defined in this bundle.
+ */
+public interface IValidationCodes {
+
+	public static final String STRING_MIN_LENGTH = "001";
+	public static final String STRING_MAX_LENGTH = "002";
+	public static final String STRING_REGEXP = "003";
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidationConfig.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidationConfig.java
new file mode 100644
index 0000000..fbcd03d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidationConfig.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.validation;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+
+/**
+ * A validation config marks a class that it provides information how to
+ * validate an element. For instance datatype editparts may implement that
+ * interface.
+ */
+public interface IValidationConfig {
+
+	/**
+	 * Returns the setting of the config. The type of the return value depends
+	 * on the implementation of the editpart.
+	 *
+	 * @return the validation settings
+	 */
+	Object getValidationSettings();
+	
+	/**
+	 * Returns the view context.
+	 * @return
+	 */
+	IViewContext getContext();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidator.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidator.java
new file mode 100644
index 0000000..9830f28
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidator.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.validation;
+
+import java.util.Locale;
+import java.util.Set;
+
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A validator is used to validate the given value.
+ */
+public interface IValidator extends IDisposable {
+
+	/**
+	 * Is called to update the validation parameter of this validator. For
+	 * instance the minLength of a MinLengthValidator.
+	 *
+	 * @param model
+	 *            the model
+	 */
+	void updateParameter(Object model);
+
+	/**
+	 * Checks if the given value is valid.
+	 *
+	 * @param value
+	 *            the value
+	 * @return the i status
+	 */
+	IStatus validateValue(Object value);
+
+	/**
+	 * Returns all currently collected status instances.
+	 *
+	 * @return the current status
+	 */
+	Set<IStatus> getCurrentStatus();
+
+	/**
+	 * Returns true, if isTypeValid() should be checked by this validator.
+	 *
+	 * @return true, if is check valid type
+	 */
+	boolean isCheckValidType();
+
+	/**
+	 * Returns the expected type of the value. If <code>null</code> is returned,
+	 * the type will not become checked.
+	 * 
+	 * @return type - the expected type of the value or <code>null</code>
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the locale the messages should be shown in.
+	 *
+	 * @param locale
+	 *            the new locale
+	 */
+	void setLocale(Locale locale);
+
+	/**
+	 * Sets the i18n service to translate the messages.
+	 *
+	 * @param i18nService
+	 *            the new i18n service
+	 */
+	void setI18nService(II18nService i18nService);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidatorManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidatorManager.java
new file mode 100644
index 0000000..79b4075
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/IValidatorManager.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.validation;
+
+/**
+ * Is responsible to return validators based on the given element.
+ */
+public interface IValidatorManager {
+
+	/**
+	 * Returns true, if the factory can be used for the given element.
+	 * 
+	 * @param modelElement
+	 *            Any kind of object that contains information how to create the
+	 *            validators.
+	 * @return result True if the manager can be used for the modelElement
+	 */
+	boolean isFor(Object modelElement);
+
+	/**
+	 * Tries to create an validator for the given element.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IValidator}
+	 * @param modelElement
+	 *            Any kind of object that contains information how to create the
+	 *            validator.
+	 * @return validator The created validator.
+	 */
+	<A extends IValidator> A createValidator(Object modelElement);
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/StringValidator.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/StringValidator.java
new file mode 100644
index 0000000..54663c4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/StringValidator.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.validation;
+
+import java.util.Locale;
+
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A validator that returns true by default, if the given value is not a String.
+ */
+public abstract class StringValidator extends AbstractCollectingValidator
+		implements IValidator {
+
+	/** The error code. */
+	protected final String errorCode;
+	
+	/** The locale. */
+	protected Locale locale;
+	
+	/** The i18n service. */
+	protected II18nService i18nService;
+
+	/**
+	 * Instantiates a new string validator.
+	 *
+	 * @param errorCode
+	 *            the error code
+	 */
+	public StringValidator(String errorCode) {
+		this.errorCode = errorCode;
+	}
+
+	/**
+	 * Returns the raw message containing replacement patterns.
+	 *
+	 * @return the message
+	 */
+	protected String getMessage() {
+		String result = null;
+		if (i18nService != null) {
+			if (isStringValid(errorCode)) {
+				result = i18nService.getValue(errorCode, locale);
+			}
+			if (!isStringValid(result)) {
+				result = getDefaultMessage();
+			}
+			if (!isStringValid(result)) {
+				result = i18nService.getValue(getDefaultErrorCode(), locale);
+			}
+			if (!isStringValid(result)) {
+				result = "Error message missing for " + getDefaultErrorCode();
+			}
+		} else {
+			result = getDefaultMessage();
+		}
+
+		return result;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#isCheckValidType()
+	 */
+	@Override
+	public boolean isCheckValidType() {
+		return true;
+	}
+
+	/**
+	 * Checks if is string valid.
+	 *
+	 * @param result
+	 *            the result
+	 * @return true, if is string valid
+	 */
+	protected boolean isStringValid(String result) {
+		return result != null && !result.equals("");
+	}
+
+	/**
+	 * Returns the default error code.
+	 *
+	 * @return the default error code
+	 */
+	protected abstract String getDefaultErrorCode();
+
+	/**
+	 * Returns the default message.
+	 *
+	 * @return the default message
+	 */
+	protected abstract String getDefaultMessage();
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#getType()
+	 */
+	@Override
+	public Class<?> getType() {
+		return String.class;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#validateValue(java.lang.Object)
+	 */
+	@Override
+	public IStatus validateValue(Object value) {
+		if (!(value instanceof String)) {
+			return IStatus.OK;
+		}
+
+		IStatus result = doValidate((String) value);
+		resetCurrentStatus();
+		addCurrentStatus(result);
+		return result;
+	}
+
+	/**
+	 * Delegates the given value.
+	 *
+	 * @param value
+	 *            the value
+	 * @return IStatus - the validation status.
+	 */
+	protected abstract IStatus doValidate(String value);
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#setLocale(java.util.Locale)
+	 */
+	@Override
+	public void setLocale(Locale locale) {
+		this.locale = locale;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.IValidator#setI18nService(org.eclipse.osbp.runtime.common.i18n.II18nService)
+	 */
+	@Override
+	public void setI18nService(II18nService i18nService) {
+		this.i18nService = i18nService;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.validation.AbstractCollectingValidator#internalDispose()
+	 */
+	@Override
+	protected void internalDispose() {
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/impl/FieldValidationManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/impl/FieldValidationManager.java
new file mode 100644
index 0000000..27749e1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/impl/FieldValidationManager.java
@@ -0,0 +1,147 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.common.validation.impl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.databinding.observable.Diffs;
+import org.eclipse.core.databinding.observable.list.ListDiff;
+import org.eclipse.osbp.ecview.core.common.validation.IFieldValidationManager;
+import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable;
+import org.eclipse.osbp.runtime.common.validation.IStatus;
+
+public class FieldValidationManager extends AbstractDisposable implements
+		IFieldValidationManager {
+
+	private Map<Object, List<IStatus>> results;
+	private Enhancer enhancer;
+	private List<IFieldValidationManager.Listener> listeners;
+
+	@Override
+	public void registerResult(Object context, List<IStatus> newStatus) {
+		checkDisposed();
+
+		if (results == null) {
+			results = new HashMap<Object, List<IStatus>>();
+		}
+
+		if (newStatus == null) {
+			newStatus = Collections.emptyList();
+		}
+
+		// create a list with old status
+		List<IStatus> oldStatus = results.get(context);
+		if (oldStatus == null) {
+			oldStatus = Collections.emptyList();
+		} else {
+			oldStatus = new ArrayList<IStatus>(oldStatus);
+		}
+
+		// if new status are empty, remove the context
+		if (newStatus.isEmpty()) {
+			results.remove(context);
+		} else {
+			// create an entry
+			if (!results.containsKey(context)) {
+				results.put(context, new ArrayList<IStatus>());
+			}
+
+			List<IStatus> tempStatus = results.get(context);
+			tempStatus.clear();
+
+			// call the enhancer
+			if (enhancer != null) {
+				for (IStatus status : newStatus) {
+					enhancer.enhance(status);
+				}
+			}
+
+			tempStatus.addAll(newStatus);
+		}
+
+		ListDiff diff = Diffs.computeListDiff(oldStatus, newStatus);
+		if (!diff.isEmpty()) {
+			notifyListeners(context, oldStatus,
+					Collections.unmodifiableList(newStatus));
+		}
+
+	}
+
+	private void notifyListeners(Object context, List<IStatus> oldStatus,
+			List<IStatus> newStatus) {
+		if (listeners == null) {
+			return;
+		}
+
+		for (IFieldValidationManager.Listener listener : new ArrayList<IFieldValidationManager.Listener>(
+				listeners)) {
+			listener.validationChanged(new Event(context, oldStatus, newStatus));
+		}
+	}
+
+	@Override
+	public List<IStatus> getResults(Object context) {
+		checkDisposed();
+
+		if (results == null) {
+			return Collections.emptyList();
+		}
+
+		List<IStatus> result = results.get(context);
+		return result != null ? Collections.unmodifiableList(result)
+				: Collections.<IStatus> emptyList();
+	}
+
+	@Override
+	protected void internalDispose() {
+		if (results != null) {
+			results.clear();
+			results = null;
+		}
+
+		if (listeners != null) {
+			listeners.clear();
+			listeners = null;
+		}
+	}
+
+	@Override
+	public void setEnhancer(Enhancer enhancer) {
+		this.enhancer = enhancer;
+	}
+
+	@Override
+	public void addListener(IFieldValidationManager.Listener listener) {
+		if (listeners == null) {
+			listeners = new ArrayList<IFieldValidationManager.Listener>();
+		}
+
+		if (!listeners.contains(listener)) {
+			listeners.add(listener);
+		}
+	}
+
+	@Override
+	public void removeListener(IFieldValidationManager.Listener listener) {
+		if (listeners == null) {
+			return;
+		}
+		listeners.remove(listener);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/impl/FieldValidationManagerProvider.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/impl/FieldValidationManagerProvider.java
new file mode 100644
index 0000000..51fa6e7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/validation/impl/FieldValidationManagerProvider.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.validation.impl;
+
+import org.eclipse.osbp.ecview.core.common.context.IContext;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.services.IServiceProvider;
+import org.eclipse.osbp.ecview.core.common.validation.IFieldValidationManager;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Provides the {@link IFieldValidationManager} implementation to the services of
+ * {@link IViewContext}.
+ */
+@Component
+public class FieldValidationManagerProvider implements IServiceProvider {
+
+	@Override
+	public boolean isFor(String selector, IContext context) {
+		return selector.equals(IFieldValidationManager.class.getName());
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A> A createService(String selector, IContext context) {
+		return (A) new FieldValidationManager();
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/Color.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/Color.java
new file mode 100644
index 0000000..6ced2ba
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/Color.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.visibility;
+
+@SuppressWarnings("all")
+public enum Color {
+
+	UNDEFINED,
+
+	RED,
+
+	GREEN,
+
+	BLUE,
+	
+	YELLOW,
+
+	WHITE,
+
+	BLACK,
+
+	GRAY,
+
+	LIGHT_GRAY,
+
+	DARK_GRAY;
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/IVisibilityHandler.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/IVisibilityHandler.java
new file mode 100644
index 0000000..4235d7a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/IVisibilityHandler.java
@@ -0,0 +1,276 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.visibility;
+
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IUiElementAccess;
+
+// TODO: Auto-generated Javadoc
+/**
+ * VisibilityHandlers are used to apply visibility options to the underlying UI
+ * element. Getters do not return the values contained in the UI element, but
+ * instead return the values set in this instance of handler.
+ * <p>
+ * To access information about the underlying UI element, use
+ * {@link #getUiAccess()}.
+ */
+public interface IVisibilityHandler {
+
+	/**
+	 * Returns an instance to access information about the underlying UI
+	 * element.
+	 *
+	 * @return the ui access
+	 */
+	IUiElementAccess getUiAccess();
+
+	/**
+	 * Resets the options to their default values.
+	 */
+	void reset();
+
+	/**
+	 * Returns the foregroundColor property or <code>null</code> if not present.
+	 *
+	 * @return the foreground color
+	 */
+	Color getForegroundColor();
+
+	/**
+	 * Sets the <code>foregroundColor</code> property to this instance.
+	 * 
+	 * @param foregroundColor
+	 *            - the property
+	 * 
+	 */
+	void setForegroundColor(final Color foregroundColor);
+
+	/**
+	 * Returns the backgroundColor property or <code>null</code> if not present.
+	 *
+	 * @return the background color
+	 */
+	Color getBackgroundColor();
+
+	/**
+	 * Sets the <code>backgroundColor</code> property to this instance.
+	 * 
+	 * @param backgroundColor
+	 *            - the property
+	 */
+	void setBackgroundColor(final Color backgroundColor);
+
+	/**
+	 * Returns the foregroundColorCode property or <code>null</code> if not
+	 * present.
+	 *
+	 * @return the foreground color code
+	 */
+	String getForegroundColorCode();
+
+	/**
+	 * Sets the <code>foregroundColorCode</code> property to this instance.
+	 * 
+	 * @param foregroundColorCode
+	 *            - the property
+	 * 
+	 */
+	void setForegroundColorCode(String foregroundColorCode);
+
+	/**
+	 * Returns the backgroundColorCode property or <code>null</code> if not
+	 * present.
+	 *
+	 * @return the background color code
+	 */
+	String getBackgroundColorCode();
+
+	/**
+	 * Sets the <code>backgroundColorCode</code> property to this instance.
+	 *
+	 * @param backgroundColor
+	 *            the new background color code
+	 */
+	void setBackgroundColorCode(final String backgroundColor);
+
+	/**
+	 * Returns the editable property or <code>null</code> if not present.
+	 *
+	 * @return true, if is editable
+	 */
+	boolean isEditable();
+
+	/**
+	 * Sets the <code>editable</code> property to this instance.
+	 * 
+	 * @param editable
+	 *            - the property
+	 */
+	void setEditable(final boolean editable);
+
+	/**
+	 * Returns the enabled property or <code>null</code> if not present.
+	 *
+	 * @return true, if is enabled
+	 */
+	boolean isEnabled();
+
+	/**
+	 * Sets the <code>enabled</code> property to this instance.
+	 * 
+	 * @param enabled
+	 *            - the property
+	 */
+	void setEnabled(final boolean enabled);
+
+	/**
+	 * Returns the visible property or <code>null</code> if not present.
+	 *
+	 * @return true, if is visible
+	 */
+	boolean isVisible();
+
+	/**
+	 * Sets the <code>visible</code> property to this instance.
+	 * 
+	 * @param visible
+	 *            - the property
+	 */
+	void setVisible(final boolean visible);
+
+	/**
+	 * Returns the bold property or <code>null</code> if not present.
+	 *
+	 * @return true, if is bold
+	 */
+	boolean isBold();
+
+	/**
+	 * Sets the <code>bold</code> property to this instance.
+	 * 
+	 * @param bold
+	 *            - the property
+	 */
+	void setBold(final boolean bold);
+
+	/**
+	 * Returns the border property or <code>null</code> if not present.
+	 *
+	 * @return true, if is border
+	 */
+	boolean isBorder();
+
+	/**
+	 * Sets the <code>border</code> property to this instance.
+	 * 
+	 * @param border
+	 *            - the property
+	 */
+	void setBorder(final boolean border);
+
+	/**
+	 * Returns the italic property or <code>null</code> if not present.
+	 *
+	 * @return true, if is italic
+	 */
+	boolean isItalic();
+
+	/**
+	 * Sets the <code>italic</code> property to this instance.
+	 * 
+	 * @param italic
+	 *            - the property
+	 */
+	void setItalic(final boolean italic);
+
+	/**
+	 * Returns the strikethrough property or <code>null</code> if not present.
+	 *
+	 * @return true, if is strikethrough
+	 */
+	boolean isStrikethrough();
+
+	/**
+	 * Sets the <code>strikethrough</code> property to this instance.
+	 * 
+	 * @param strikethrough
+	 *            - the property
+	 */
+	void setStrikethrough(final boolean strikethrough);
+
+	/**
+	 * Returns the underline property or <code>null</code> if not present.
+	 *
+	 * @return true, if is underline
+	 */
+	boolean isUnderline();
+
+	/**
+	 * Sets the <code>underline</code> property to this instance.
+	 * 
+	 * @param underline
+	 *            - the property
+	 */
+	void setUnderline(final boolean underline);
+
+	/**
+	 * Returns the css value or <code>null</code> if not present.
+	 *
+	 * @return the css class
+	 */
+	String getCssClass();
+
+	/**
+	 * Sets the <code>cssClass</code> property to this instance.
+	 * 
+	 * @param cssClass
+	 *            - the property
+	 * 
+	 */
+	void setCssClass(String cssClass);
+
+	/**
+	 * Returns the css ID or <code>null</code> if not present.
+	 *
+	 * @return the css id
+	 */
+	String getCssId();
+
+	/**
+	 * Sets the <code>cssId</code> property to this instance.
+	 * 
+	 * @param cssId
+	 *            - the property
+	 * 
+	 */
+	void setCssId(String cssId);
+
+	/**
+	 * Applies the options to the assigned UI element.
+	 */
+	void apply();
+
+	/**
+	 * The Class NotValidProcessableException.
+	 */
+	public class NotValidProcessableException extends Exception {
+
+		/**
+		 * Instantiates a new not valid processable exception.
+		 *
+		 * @param message
+		 *            the message
+		 */
+		public NotValidProcessableException(String message) {
+			super(message);
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/IVisibilityManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/IVisibilityManager.java
new file mode 100644
index 0000000..44dc922
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/IVisibilityManager.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.visibility;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface IVisibilityManager.
+ */
+public interface IVisibilityManager {
+
+	/**
+	 * Returns the view context.
+	 *
+	 * @return the view context
+	 */
+	IViewContext getViewContext();
+
+	/**
+	 * Returns the visibility handler for the given id. Or <code>null</code> if
+	 * no element could be found, or if the element is not a valid
+	 * IVisibilityProcessable.
+	 *
+	 * @param id
+	 *            the id
+	 * @return the by id
+	 */
+	IVisibilityHandler getById(String id);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/IVisibilityProcessor.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/IVisibilityProcessor.java
new file mode 100644
index 0000000..53f51d4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/IVisibilityProcessor.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.visibility;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface IVisibilityProcessor.
+ */
+public interface IVisibilityProcessor {
+
+	/**
+	 * Is called to initialize the visibility processor.
+	 *
+	 * @param manager
+	 *            the manager
+	 */
+	void init(final IVisibilityManager manager);
+
+	/**
+	 * Fires the visibility processor.
+	 */
+	void fire();
+
+	/**
+	 * Sets the current input that triggers the visibility processor.
+	 *
+	 * @param input
+	 *            the new input
+	 */
+	void setInput(Object input);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/impl/VisibilityHandler.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/impl/VisibilityHandler.java
new file mode 100644
index 0000000..97eef68
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/impl/VisibilityHandler.java
@@ -0,0 +1,485 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.visibility.impl;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IUiElementAccess;
+import org.eclipse.osbp.ecview.core.common.editpart.visibility.IVisibilityProcessable;
+import org.eclipse.osbp.ecview.core.common.services.IWidgetAssocationsService;
+import org.eclipse.osbp.ecview.core.common.visibility.Color;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class VisibilityHandler.
+ */
+public class VisibilityHandler implements IVisibilityHandler {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(VisibilityHandler.class);
+
+	/** The associations. */
+	private final IWidgetAssocationsService<?, ?> associations;
+	
+	/** The id. */
+	private final String id;
+
+	/** The foreground color. */
+	private Color foregroundColor;
+	
+	/** The background color. */
+	private Color backgroundColor;
+	
+	/** The foreground color code. */
+	private String foregroundColorCode;
+	
+	/** The background color code. */
+	private String backgroundColorCode;
+	
+	/** The editable. */
+	private boolean editable;
+	
+	/** The enabled. */
+	private boolean enabled;
+	
+	/** The visible. */
+	private boolean visible;
+	
+	/** The bold. */
+	private boolean bold;
+	
+	/** The border. */
+	private boolean border;
+	
+	/** The italic. */
+	private boolean italic;
+	
+	/** The strikethrough. */
+	private boolean strikethrough;
+	
+	/** The underline. */
+	private boolean underline;
+
+	/** The css class. */
+	private String cssClass;
+
+	/** The css id. */
+	private String cssId;
+
+	/**
+	 * Instantiates a new visibility handler.
+	 *
+	 * @param associations
+	 *            the associations
+	 * @param id
+	 *            the id
+	 * @throws NotValidProcessableException
+	 *             the not valid processable exception
+	 */
+	public VisibilityHandler(IWidgetAssocationsService<?, ?> associations,
+			String id) throws NotValidProcessableException {
+		this.associations = associations;
+		this.id = id;
+
+		// access the processable. Exception is thrown if not a valid element.
+		getProcessable();
+
+		reset();
+	}
+
+	/**
+	 * Returns the {@link IVisibilityProcessable} for the id.
+	 *
+	 * @return the processable
+	 * @throws NotValidProcessableException
+	 *             the not valid processable exception
+	 */
+	protected IVisibilityProcessable getProcessable()
+			throws NotValidProcessableException {
+		IElementEditpart editpart = associations.getEditpart(id);
+		if (editpart == null || !(editpart instanceof IVisibilityProcessable)) {
+			throw new IllegalArgumentException(id
+					+ " is not a valid IVisibilityProcessable");
+		}
+
+		return (IVisibilityProcessable) editpart;
+	}
+
+	/**
+	 * Returns the {@link IUiElementAccess} for the id.
+	 *
+	 * @return the i ui element access
+	 * @throws NotValidProcessableException
+	 *             the not valid processable exception
+	 */
+	protected IUiElementAccess internalGetUiAccess()
+			throws NotValidProcessableException {
+		IElementEditpart editpart = associations.getEditpart(id);
+		if (editpart == null || !(editpart instanceof IUiElementAccess)) {
+			throw new IllegalArgumentException(id
+					+ " is not a valid IUiElementAccess");
+		}
+
+		return (IUiElementAccess) editpart;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler#reset()
+	 */
+	@Override
+	public void reset() {
+		foregroundColor = Color.UNDEFINED;
+		backgroundColor = Color.UNDEFINED;
+		foregroundColorCode = "";
+		backgroundColorCode = "";
+		editable = true;
+		enabled = true;
+		visible = true;
+		bold = false;
+		border = false;
+		italic = false;
+		strikethrough = false;
+		underline = false;
+	}
+
+	/**
+	 * Gets the foreground color.
+	 *
+	 * @return the foregroundColor
+	 */
+	public Color getForegroundColor() {
+		return foregroundColor;
+	}
+
+	/**
+	 * Sets the foreground color.
+	 *
+	 * @param foregroundColor
+	 *            the foregroundColor to set
+	 */
+	public void setForegroundColor(Color foregroundColor) {
+		this.foregroundColor = foregroundColor;
+	}
+
+	/**
+	 * Gets the background color.
+	 *
+	 * @return the backgroundColor
+	 */
+	public Color getBackgroundColor() {
+		return backgroundColor;
+	}
+
+	/**
+	 * Sets the background color.
+	 *
+	 * @param backgroundColor
+	 *            the backgroundColor to set
+	 */
+	public void setBackgroundColor(Color backgroundColor) {
+		this.backgroundColor = backgroundColor;
+	}
+
+	/**
+	 * Gets the foreground color code.
+	 *
+	 * @return the foregroundColorCode
+	 */
+	public String getForegroundColorCode() {
+		return foregroundColorCode;
+	}
+
+	/**
+	 * Sets the foreground color code.
+	 *
+	 * @param foregroundColorCode
+	 *            the foregroundColorCode to set
+	 */
+	public void setForegroundColorCode(String foregroundColorCode) {
+		this.foregroundColorCode = foregroundColorCode;
+	}
+
+	/**
+	 * Gets the background color code.
+	 *
+	 * @return the backgroundColorCode
+	 */
+	public String getBackgroundColorCode() {
+		return backgroundColorCode;
+	}
+
+	/**
+	 * Sets the background color code.
+	 *
+	 * @param backgroundColorCode
+	 *            the backgroundColorCode to set
+	 */
+	public void setBackgroundColorCode(String backgroundColorCode) {
+		this.backgroundColorCode = backgroundColorCode;
+	}
+
+	/**
+	 * Checks if is editable.
+	 *
+	 * @return the editable
+	 */
+	public boolean isEditable() {
+		return editable;
+	}
+
+	/**
+	 * Sets the editable.
+	 *
+	 * @param editable
+	 *            the editable to set
+	 */
+	public void setEditable(boolean editable) {
+		this.editable = editable;
+	}
+
+	/**
+	 * Checks if is enabled.
+	 *
+	 * @return the enabled
+	 */
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	/**
+	 * Sets the enabled.
+	 *
+	 * @param enabled
+	 *            the enabled to set
+	 */
+	public void setEnabled(boolean enabled) {
+		this.enabled = enabled;
+	}
+
+	/**
+	 * Checks if is visible.
+	 *
+	 * @return the visible
+	 */
+	public boolean isVisible() {
+		return visible;
+	}
+
+	/**
+	 * Sets the visible.
+	 *
+	 * @param visible
+	 *            the visible to set
+	 */
+	public void setVisible(boolean visible) {
+		this.visible = visible;
+	}
+
+	/**
+	 * Checks if is bold.
+	 *
+	 * @return the bold
+	 */
+	public boolean isBold() {
+		return bold;
+	}
+
+	/**
+	 * Sets the bold.
+	 *
+	 * @param bold
+	 *            the bold to set
+	 */
+	public void setBold(boolean bold) {
+		this.bold = bold;
+	}
+
+	/**
+	 * Checks if is border.
+	 *
+	 * @return the border
+	 */
+	public boolean isBorder() {
+		return border;
+	}
+
+	/**
+	 * Sets the border.
+	 *
+	 * @param border
+	 *            the border to set
+	 */
+	public void setBorder(boolean border) {
+		this.border = border;
+	}
+
+	/**
+	 * Checks if is italic.
+	 *
+	 * @return the italic
+	 */
+	public boolean isItalic() {
+		return italic;
+	}
+
+	/**
+	 * Sets the italic.
+	 *
+	 * @param italic
+	 *            the italic to set
+	 */
+	public void setItalic(boolean italic) {
+		this.italic = italic;
+	}
+
+	/**
+	 * Checks if is strikethrough.
+	 *
+	 * @return the strikethrough
+	 */
+	public boolean isStrikethrough() {
+		return strikethrough;
+	}
+
+	/**
+	 * Sets the strikethrough.
+	 *
+	 * @param strikethrough
+	 *            the strikethrough to set
+	 */
+	public void setStrikethrough(boolean strikethrough) {
+		this.strikethrough = strikethrough;
+	}
+
+	/**
+	 * Checks if is underline.
+	 *
+	 * @return the underline
+	 */
+	public boolean isUnderline() {
+		return underline;
+	}
+
+	/**
+	 * Sets the underline.
+	 *
+	 * @param underline
+	 *            the underline to set
+	 */
+	public void setUnderline(boolean underline) {
+		this.underline = underline;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler#getCssClass()
+	 */
+	@Override
+	public String getCssClass() {
+		return cssClass;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler#setCssClass(java.lang.String)
+	 */
+	@Override
+	public void setCssClass(String cssClass) {
+		this.cssClass = cssClass;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler#getCssId()
+	 */
+	@Override
+	public String getCssId() {
+		return cssId;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler#setCssId(java.lang.String)
+	 */
+	@Override
+	public void setCssId(String cssId) {
+		this.cssId = cssId;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler#apply()
+	 */
+	@Override
+	public void apply() {
+		try {
+			getProcessable().apply(this);
+		} catch (Exception e) {
+			LOGGER.error("{}", e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler#getUiAccess()
+	 */
+	@Override
+	public IUiElementAccess getUiAccess() {
+		try {
+			return new UiElementAccessImpl(internalGetUiAccess());
+		} catch (Exception e) {
+			LOGGER.error("{}", e);
+		}
+		return null;
+	}
+
+	/**
+	 * The Class UiElementAccessImpl.
+	 */
+	private static class UiElementAccessImpl implements IUiElementAccess {
+
+		/** The access. */
+		private final IUiElementAccess access;
+
+		/**
+		 * Instantiates a new ui element access impl.
+		 *
+		 * @param access
+		 *            the access
+		 */
+		public UiElementAccessImpl(IUiElementAccess access) {
+			this.access = access;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.osbp.ecview.core.common.editpart.visibility.IUiElementAccess#containsTag(java.lang.String)
+		 */
+		@Override
+		public boolean containsTag(String tag) {
+			return access.containsTag(tag);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.osbp.ecview.core.common.editpart.visibility.IUiElementAccess#containsProperty(java.lang.String)
+		 */
+		@Override
+		public boolean containsProperty(String key) {
+			return access.containsProperty(key);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.osbp.ecview.core.common.editpart.visibility.IUiElementAccess#getPropertyValue(java.lang.String)
+		 */
+		@Override
+		public String getPropertyValue(String key) {
+			return access.getPropertyValue(key);
+		}
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/impl/VisibilityManager.java b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/impl/VisibilityManager.java
new file mode 100644
index 0000000..9b08348
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.common/src/org/eclipse/osbp/ecview/core/common/visibility/impl/VisibilityManager.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.common.visibility.impl;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.services.IWidgetAssocationsService;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityHandler;
+import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class VisibilityManager implements IVisibilityManager {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(VisibilityManager.class);
+
+	private IWidgetAssocationsService<?, ?> associations;
+	private IViewContext context;
+
+	public VisibilityManager(IViewContext context) {
+		this.context = context;
+		this.associations = context.getService(IWidgetAssocationsService.ID);
+	}
+
+	@Override
+	public IViewContext getViewContext() {
+		return context;
+	}
+
+	@Override
+	public IVisibilityHandler getById(String id) {
+		try {
+			return new VisibilityHandler(associations, id);
+		} catch (Exception e) {
+			LOGGER.error("{}", e);
+		}
+
+		return null;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/.project b/org.eclipse.osbp.ecview.core.databinding.beans/.project
new file mode 100644
index 0000000..68dbacf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.databinding.beans</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/LICENSE.txt b/org.eclipse.osbp.ecview.core.databinding.beans/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.databinding.beans/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5d05d80
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.databinding.beans
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.databinding.beans
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Require-Bundle: org.eclipse.core.databinding.beans;bundle-version="[1.2.200,1.5.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.1,1.5.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.200,1.5.0)",
+ org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.apache.commons.beanutils;bundle-version="1.9.2"
+Service-Component: OSGI-INF/beanBindingDelegate.xml,
+ OSGI-INF/pojoBindingDelegate.xml
+Export-Package: org.eclipse.osbp.ecview.core.databinding.beans.context;x-internal:="true";version="0.9.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-ActivationPolicy: lazy
+Import-Package: org.slf4j;version="1.7.2"
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/OSGI-INF/beanBindingDelegate.xml b/org.eclipse.osbp.ecview.core.databinding.beans/OSGI-INF/beanBindingDelegate.xml
new file mode 100644
index 0000000..2b0c6c6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/OSGI-INF/beanBindingDelegate.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.databinding.beans.context">
+   <implementation class="org.eclipse.osbp.ecview.core.databinding.beans.context.ContextBeanBindingDelegate"/>
+   <service>
+      <provide interface="org.eclipse.osbp.ecview.core.common.binding.observables.IContextBindingDelegate"/>
+   </service>
+   <property name="service.sequence" type="Integer" value="20"/>
+</scr:component>
+ 
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/OSGI-INF/pojoBindingDelegate.xml b/org.eclipse.osbp.ecview.core.databinding.beans/OSGI-INF/pojoBindingDelegate.xml
new file mode 100644
index 0000000..a7a5287
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/OSGI-INF/pojoBindingDelegate.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.databinding.pojo.context">
+   <implementation class="org.eclipse.osbp.ecview.core.databinding.beans.context.ContextPojoBindingDelegate"/>
+   <service>
+      <provide interface="org.eclipse.osbp.ecview.core.common.binding.observables.IContextBindingDelegate"/>
+   </service>
+   <property name="service.sequence" type="Integer" value="30"/>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/about.html b/org.eclipse.osbp.ecview.core.databinding.beans/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/about.ini b/org.eclipse.osbp.ecview.core.databinding.beans/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/about.mappings b/org.eclipse.osbp.ecview.core.databinding.beans/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/about.properties b/org.eclipse.osbp.ecview.core.databinding.beans/about.properties
new file mode 100644
index 0000000..a9ae1cb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.databinding.beans
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/build.properties b/org.eclipse.osbp.ecview.core.databinding.beans/build.properties
new file mode 100644
index 0000000..0d4e3ab
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               OSGI-INF/,\
+               LICENSE.txt,\
+               license.html
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/license.html b/org.eclipse.osbp.ecview.core.databinding.beans/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/pom.xml b/org.eclipse.osbp.ecview.core.databinding.beans/pom.xml
new file mode 100644
index 0000000..f9e8aa4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.osbp.ecview.core</groupId>
+    <artifactId>org.eclipse.osbp.ecview.core</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>org.eclipse.osbp.ecview.core.databinding.beans</artifactId>
+  <packaging>eclipse-plugin</packaging>
+  <description>Beans and POJO binding delegate for ECView</description>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/context/ContextBeanBindingDelegate.java b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/context/ContextBeanBindingDelegate.java
new file mode 100644
index 0000000..777e96a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/context/ContextBeanBindingDelegate.java
@@ -0,0 +1,182 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.beans.context;
+
+import java.beans.PropertyChangeListener;
+import java.net.URI;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.binding.observables.ContextBindingDelegate;
+import org.eclipse.osbp.ecview.core.common.uri.AccessibleScope;
+import org.eclipse.osbp.ecview.core.common.uri.BeanScope;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ContextBeanBindingDelegate extends ContextBindingDelegate {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(ContextBeanBindingDelegate.class);
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isFor(IBeanRegistry registry, URI bindingURI) {
+		AccessibleScope scope = URIHelper.toScope(bindingURI);
+		BeanScope beanScope = scope.getBeanScope();
+		if (beanScope == null) {
+			return false;
+		}
+		ISlot slot = beanScope.accessBeanSlot(registry);
+		// TODO: if attribute.path == 1 --> use bean binding since slot is
+		// observable
+		if (slot == null || !hasPropertyChangeSupport(slot.getValueType())) {
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Returns true, if the bean has property change support.
+	 * 
+	 * @param valueType
+	 * @return
+	 */
+	protected boolean hasPropertyChangeSupport(Class<?> valueType) {
+		if (valueType == null) {
+			return false;
+		}
+		try {
+			try {
+				valueType.getMethod("addPropertyChangeListener", new Class[] {
+						String.class, PropertyChangeListener.class });
+				return true;
+			} catch (NoSuchMethodException e) {
+				valueType.getMethod("addPropertyChangeListener",
+						new Class[] { PropertyChangeListener.class });
+				return true;
+			}
+		} catch (SecurityException e) {
+			LOGGER.error("{}", e);
+			throw new IllegalStateException(e);
+		} catch (NoSuchMethodException e) {
+		} catch (Exception e) {
+			LOGGER.error("{}", e);
+			throw new IllegalStateException(e);
+		}
+		return false;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IObservableValue observeValue(IBeanRegistry registry, URI bindingURI) {
+		return observeValue(Realm.getDefault(), registry, bindingURI);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IObservableValue observeValue(Realm realm, IBeanRegistry registry,
+			URI bindingURI) {
+		AccessibleScope scope = URIHelper.toScope(bindingURI);
+		ISlot slot = scope.getBeanScope().accessBeanSlot(registry);
+
+		if (slot == null) {
+			throw new IllegalArgumentException("Bean slot must be available!");
+		}
+
+		String beanFragment = scope.getBeanFragment();
+
+		// if value-property was references inside the slot, then return the
+		// observable
+		if (beanFragment == null || beanFragment.equals("")
+				|| beanFragment.equals(ISlot.PROP_VALUE)) {
+			return BeanProperties.value(slot.getClass(), ISlot.PROP_VALUE,
+					slot.getValueType()).observe(realm, slot);
+		} else {
+			// normalize bean fragment
+			beanFragment = AccessibleScope
+					.removeSlotValueFragmentToken(beanFragment);
+			if (beanFragment.equals("")) {
+				// if no bean fragment was specified, then the bean slot is
+				// addressed and it can not be observed since it is stable.
+				return null;
+			} else {
+				// observe master
+				//
+				IObservableValue slotObservable = BeansObservables
+						.observeValue(realm, slot, ISlot.PROP_VALUE);
+
+				// observe detail
+				//
+				return BeansObservables.observeDetailValue(slotObservable,
+						slot.getValueType(), beanFragment, null);
+			}
+		}
+	}
+
+	@Override
+	public IObservableList observeList(IBeanRegistry registry, URI bindingURI,
+			Class<?> elementType) {
+		return observeList(Realm.getDefault(), registry, bindingURI,
+				elementType);
+	}
+
+	@Override
+	public IObservableList observeList(Realm realm, IBeanRegistry registry,
+			URI bindingURI, Class<?> elementType) {
+		AccessibleScope scope = URIHelper.toScope(bindingURI);
+		ISlot slot = scope.getBeanScope().accessBeanSlot(registry);
+
+		if (slot == null) {
+			throw new IllegalArgumentException("Bean slot must be available!");
+		}
+
+		String beanFragment = scope.getBeanFragment();
+		// if value-property was references inside the slot, then return the
+		// observable
+		if (beanFragment.equals(ISlot.PROP_VALUE)) {
+			return BeanProperties.list(slot.getClass(), ISlot.PROP_VALUE,
+					elementType).observe(realm, slot);
+		} else {
+			// normalize bean fragment
+			beanFragment = AccessibleScope
+					.removeSlotValueFragmentToken(beanFragment);
+			if (beanFragment.equals("")) {
+				// if no bean fragment was specified, then the bean slot is
+				// addressed and it can not be observed since it is stable.
+				return null;
+			} else {
+				// observe master
+				//
+				IObservableValue slotObservable = BeanProperties.value(
+						slot.getClass(), ISlot.PROP_VALUE, slot.getValueType())
+						.observe(realm, slot);
+
+				// observe detail
+				//
+				return BeansObservables.observeDetailList(slotObservable,
+						beanFragment, elementType);
+			}
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/context/ContextPojoBindingDelegate.java b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/context/ContextPojoBindingDelegate.java
new file mode 100644
index 0000000..7e98759
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/context/ContextPojoBindingDelegate.java
@@ -0,0 +1,142 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.beans.context;
+
+import java.net.URI;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.binding.observables.ContextBindingDelegate;
+import org.eclipse.osbp.ecview.core.common.uri.AccessibleScope;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+
+public class ContextPojoBindingDelegate extends ContextBindingDelegate {
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isFor(IBeanRegistry registry, URI bindingURI) {
+		// thats the default
+		return true;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IObservableValue observeValue(IBeanRegistry registry, URI bindingURI) {
+		return observeValue(Realm.getDefault(), registry, bindingURI);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IObservableValue observeValue(Realm realm, IBeanRegistry registry,
+			URI bindingURI) {
+		AccessibleScope scope = URIHelper.toScope(bindingURI);
+		ISlot slot = scope.getBeanScope().accessBeanSlot(registry);
+
+		if (slot == null) {
+			throw new IllegalArgumentException("Bean slot must be available!");
+		}
+
+		String beanFragment = scope.getBeanFragment();
+
+		// if value-property was references inside the slot, then return the
+		// observable
+		if (beanFragment.equals(ISlot.PROP_VALUE)) {
+			// in that special case do not use PojoBinding since slot is
+			// observable!
+			return BeansObservables.observeValue(realm, slot, ISlot.PROP_VALUE);
+		} else {
+			// normalize bean fragment
+			beanFragment = AccessibleScope
+					.removeSlotValueFragmentToken(beanFragment);
+			if (beanFragment.equals("")) {
+				// if no bean fragment was specified, then the bean slot is
+				// addressed and it can not be observed since it is stable.
+				return null;
+			} else {
+				// observe master
+				// Note: slot (master) is observable!
+				//
+				IObservableValue slotObservable = BeansObservables
+						.observeValue(realm, slot, ISlot.PROP_VALUE);
+
+				// observe detail
+				//
+				// from PojoObservables.observeDetailValue...
+				return PojoProperties.value(slot.getValueType(), beanFragment,
+						null).observeDetail(slotObservable);
+			}
+		}
+	}
+
+	@Override
+	public IObservableList observeList(IBeanRegistry registry, URI bindingURI,
+			Class<?> elementType) {
+		return observeList(Realm.getDefault(), registry, bindingURI,
+				elementType);
+	}
+
+	@Override
+	public IObservableList observeList(Realm realm, IBeanRegistry registry,
+			URI bindingURI, Class<?> elementType) {
+		AccessibleScope scope = URIHelper.toScope(bindingURI);
+		ISlot slot = scope.getBeanScope().accessBeanSlot(registry);
+
+		if (slot == null) {
+			throw new IllegalArgumentException("Bean slot must be available!");
+		}
+
+		String beanFragment = scope.getBeanFragment();
+
+		// if value-property was references inside the slot, then return the
+		// observable
+		if (beanFragment.equals(ISlot.PROP_VALUE)) {
+			// in that special case do not use PojoBinding since slot is
+			// observable!
+			return BeansObservables.observeList(realm, slot, ISlot.PROP_VALUE,
+					slot.getValueType());
+		} else {
+			// normalize bean fragment
+			beanFragment = AccessibleScope
+					.removeSlotValueFragmentToken(beanFragment);
+			if (beanFragment.equals("")) {
+				// if no bean fragment was specified, then the bean slot is
+				// addressed and it can not be observed since it is stable.
+				return null;
+			} else {
+				// observe master
+				// Note: slot (master) is observable!
+				//
+				IObservableValue slotObservable = BeanProperties.value(
+						slot.getClass(), ISlot.PROP_VALUE, slot.getValueType())
+						.observe(realm, slot);
+
+				// observe detail
+				//
+				// from PojoObservables.observeDetailValue...
+				return PojoProperties.list(slot.getValueType(), beanFragment,
+						elementType).observeDetail(slotObservable);
+			}
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/observables/ECViewBeanProperties.java b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/observables/ECViewBeanProperties.java
new file mode 100644
index 0000000..0557e05
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/observables/ECViewBeanProperties.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.beans.observables;
+
+import java.beans.PropertyDescriptor;
+
+import org.eclipse.core.databinding.beans.IBeanListProperty;
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.internal.databinding.beans.AnonymousBeanListProperty;
+import org.eclipse.core.internal.databinding.beans.BeanListPropertyDecorator;
+import org.eclipse.core.internal.databinding.beans.BeanPropertyHelper;
+import org.eclipse.osbp.ecview.core.databinding.beans.observables.properties.ECViewBeanListProperty;
+
+@SuppressWarnings("restriction")
+public class ECViewBeanProperties {
+
+	/**
+	 * Returns a list property for the given property name of the given bean
+	 * class.
+	 * 
+	 * @param beanClass
+	 *            the bean class
+	 * @param propertyName
+	 *            the property name
+	 * @param elementType
+	 *            the element type of the returned list property
+	 * @return a list property for the given property name of the given bean
+	 *         class.
+	 */
+	public static IBeanListProperty list(Class<?> beanClass,
+			String propertyName, Class<?> elementType) {
+		PropertyDescriptor propertyDescriptor;
+		IListProperty property;
+		if (beanClass == null) {
+			propertyDescriptor = null;
+			property = new AnonymousBeanListProperty(propertyName, elementType);
+		} else {
+			propertyDescriptor = BeanPropertyHelper.getPropertyDescriptor(
+					beanClass, propertyName);
+			if(propertyDescriptor.getWriteMethod() == null){
+				
+			}
+			property = new ECViewBeanListProperty(propertyDescriptor,
+					elementType);
+		}
+		return new BeanListPropertyDecorator(property, propertyDescriptor);
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/observables/ECViewBeansObservables.java b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/observables/ECViewBeansObservables.java
new file mode 100644
index 0000000..e3b064c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/observables/ECViewBeansObservables.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.beans.observables;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+
+public class ECViewBeansObservables {
+
+	/**
+	 * Helper method for
+	 * <code>MasterDetailObservables.detailList(master, listFactory(master.getRealm(), propertyName, propertyType), propertyType)</code>
+	 * 
+	 * @param master
+	 * @param propertyName
+	 * @param propertyType
+	 *            can be <code>null</code>
+	 * @return an observable list that tracks the named property for the current
+	 *         value of the master observable value
+	 * 
+	 * @see MasterDetailObservables
+	 * @since 1.2
+	 */
+	@SuppressWarnings("rawtypes")
+	public static IObservableList observeDetailList(IObservableValue master,
+			String propertyName, Class propertyType) {
+		Class beanClass = null;
+		if (master.getValueType() instanceof Class)
+			beanClass = (Class) master.getValueType();
+		return BeanProperties.list(beanClass, propertyName, propertyType)
+				.observeDetail(master);
+	}
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/observables/properties/ECViewBeanListProperty.java b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/observables/properties/ECViewBeanListProperty.java
new file mode 100644
index 0000000..af1e5b4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.beans/src/org/eclipse/osbp/ecview/core/databinding/beans/observables/properties/ECViewBeanListProperty.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.beans.observables.properties;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Array;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.Diffs;
+import org.eclipse.core.databinding.observable.IDiff;
+import org.eclipse.core.databinding.observable.list.ListDiff;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
+import org.eclipse.core.databinding.property.list.SimpleListProperty;
+import org.eclipse.core.internal.databinding.beans.BeanPropertyHelper;
+import org.eclipse.core.internal.databinding.beans.BeanPropertyListener;
+
+@SuppressWarnings({ "restriction", "rawtypes" })
+public class ECViewBeanListProperty extends SimpleListProperty {
+	private final PropertyDescriptor propertyDescriptor;
+	private final Class<?> elementType;
+
+	/**
+	 * @param propertyDescriptor
+	 * @param elementType
+	 */
+	public ECViewBeanListProperty(PropertyDescriptor propertyDescriptor,
+			Class<?> elementType) {
+		this.propertyDescriptor = propertyDescriptor;
+		this.elementType = elementType == null ? getCollectionPropertyElementType(propertyDescriptor)
+				: elementType;
+	}
+
+	/**
+	 * Returns the element type of the given collection-typed property for the
+	 * given bean.
+	 * 
+	 * @param descriptor
+	 *            the property being inspected
+	 * @return the element type of the given collection-typed property if it is
+	 *         an array property, or Object.class otherwise.
+	 * 
+	 *         Copied from
+	 *         org.eclipse.core.internal.databinding.beans.BeanPropertyHelper
+	 *         branch R4_2_maintenance.
+	 */
+	public static Class<?> getCollectionPropertyElementType(
+			PropertyDescriptor descriptor) {
+		Class<?> propertyType = descriptor.getPropertyType();
+		return propertyType.isArray() ? propertyType.getComponentType()
+				: Object.class;
+	}
+
+	public Object getElementType() {
+		return elementType;
+	}
+
+	protected List<?> doGetList(Object source) {
+		return asList(BeanPropertyHelper.readProperty(source,
+				propertyDescriptor));
+	}
+
+	@SuppressWarnings("unchecked")
+	private List<Object> asList(Object propertyValue) {
+		if (propertyValue == null)
+			return Collections.emptyList();
+		if (propertyDescriptor.getPropertyType().isArray())
+			return Arrays.asList((Object[]) propertyValue);
+		return (List<Object>) propertyValue;
+	}
+
+	protected void doSetList(Object source, List list, ListDiff diff) {
+		doSetList(source, list);
+	}
+
+	protected void doSetList(Object source, List list) {
+		BeanPropertyHelper.writeProperty(source, propertyDescriptor,
+				convertListToBeanPropertyType(list));
+	}
+
+	private Object convertListToBeanPropertyType(List<?> list) {
+		Object propertyValue = list;
+		if (propertyDescriptor.getPropertyType().isArray()) {
+			Class<?> componentType = propertyDescriptor.getPropertyType()
+					.getComponentType();
+			Object[] array = (Object[]) Array.newInstance(componentType,
+					list.size());
+			list.toArray(array);
+			propertyValue = array;
+		}
+		return propertyValue;
+	}
+
+	public INativePropertyListener adaptListener(
+			final ISimplePropertyListener listener) {
+		return new BeanPropertyListener(this, propertyDescriptor, listener) {
+			protected IDiff computeDiff(Object oldValue, Object newValue) {
+				return Diffs
+						.computeListDiff(asList(oldValue), asList(newValue));
+			}
+		};
+	}
+
+	public String toString() {
+		String s = BeanPropertyHelper.propertyName(propertyDescriptor) + "[]"; //$NON-NLS-1$
+		if (elementType != null)
+			s += "<" + BeanPropertyHelper.shortClassName(elementType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
+		return s;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/.project b/org.eclipse.osbp.ecview.core.databinding.emf/.project
new file mode 100644
index 0000000..3e623ee
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.databinding.emf</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/LICENSE.txt b/org.eclipse.osbp.ecview.core.databinding.emf/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.databinding.emf/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4f4985d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.databinding.emf
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.databinding.emf
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emf.databinding;bundle-version="[1.3.0,1.5.0)",
+ org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.core.databinding.beans;bundle-version="[1.2.200,1.5.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.200,1.5.0)",
+ com.ibm.icu,
+ org.eclipse.core.runtime;bundle-version="3.10.0"
+Export-Package: org.eclipse.osbp.ecview.core.databinding.emf.common;
+  uses:="org.eclipse.core.databinding.observable.set,
+   org.eclipse.core.databinding.observable,
+   org.eclipse.core.databinding,
+   org.eclipse.emf.databinding,
+   org.eclipse.core.databinding.observable.value,
+   org.eclipse.core.databinding.conversion,
+   org.eclipse.core.databinding.observable.list";version="0.9.0",
+ org.eclipse.osbp.ecview.core.databinding.emf.context;x-internal:=true;version="0.9.0",
+ org.eclipse.osbp.ecview.core.databinding.emf.model;x-internal:=true;version="0.9.0"
+Service-Component: OSGI-INF/emfBindingDelegate.xml
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/OSGI-INF/emfBindingDelegate.xml b/org.eclipse.osbp.ecview.core.databinding.emf/OSGI-INF/emfBindingDelegate.xml
new file mode 100644
index 0000000..ea5f43a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/OSGI-INF/emfBindingDelegate.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.databinding.emf.context">
+   <implementation class="org.eclipse.osbp.ecview.core.databinding.emf.context.ContextEMFBindingDelegate"/>
+   <property name="service.sequence" type="Integer" value="10"/>
+   <service>
+      <provide interface="org.eclipse.osbp.ecview.core.common.binding.observables.IContextBindingDelegate"/>
+   </service>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/about.html b/org.eclipse.osbp.ecview.core.databinding.emf/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/about.ini b/org.eclipse.osbp.ecview.core.databinding.emf/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/about.mappings b/org.eclipse.osbp.ecview.core.databinding.emf/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/about.properties b/org.eclipse.osbp.ecview.core.databinding.emf/about.properties
new file mode 100644
index 0000000..d80a861
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.databinding.emf
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/build.properties b/org.eclipse.osbp.ecview.core.databinding.emf/build.properties
new file mode 100644
index 0000000..9feb623
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               OSGI-INF/,\
+               license.html,\
+               LICENSE.txt
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/license.html b/org.eclipse.osbp.ecview.core.databinding.emf/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/pom.xml b/org.eclipse.osbp.ecview.core.databinding.emf/pom.xml
new file mode 100644
index 0000000..1740999
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.osbp.ecview.core</groupId>
+    <artifactId>org.eclipse.osbp.ecview.core</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>org.eclipse.osbp.ecview.core.databinding.emf</artifactId>
+  <packaging>eclipse-plugin</packaging>
+  <description>EMF databinding delegate</description>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewDatabindingContext.java b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewDatabindingContext.java
new file mode 100644
index 0000000..27e3929
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewDatabindingContext.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.emf.common;
+
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
+
+public class ECViewDatabindingContext extends EMFDataBindingContext {
+
+	public ECViewDatabindingContext() {
+		super();
+	}
+
+	public ECViewDatabindingContext(Realm validationRealm) {
+		super(validationRealm);
+	}
+
+	 @Override
+	  protected UpdateValueStrategy createModelToTargetUpdateValueStrategy(IObservableValue fromValue, IObservableValue toValue)
+	  {
+	    return new ECViewUpdateValueStrategy();
+	  }
+
+	  @Override
+	  protected UpdateValueStrategy createTargetToModelUpdateValueStrategy(IObservableValue fromValue, IObservableValue toValue)
+	  {
+	    return new ECViewUpdateValueStrategy();
+	  }
+	
+	
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewUpdateListStrategy.java b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewUpdateListStrategy.java
new file mode 100644
index 0000000..d125557
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewUpdateListStrategy.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.emf.common;
+
+import org.eclipse.emf.databinding.EMFUpdateListStrategy;
+
+public class ECViewUpdateListStrategy extends EMFUpdateListStrategy {
+
+	public ECViewUpdateListStrategy() {
+		super();
+	}
+
+	public ECViewUpdateListStrategy(boolean provideDefaults, int updatePolicy) {
+		super(provideDefaults, updatePolicy);
+	}
+
+	public ECViewUpdateListStrategy(int updatePolicy) {
+		super(updatePolicy);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewUpdateSetStrategy.java b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewUpdateSetStrategy.java
new file mode 100644
index 0000000..60304de
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewUpdateSetStrategy.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.emf.common;
+
+import org.eclipse.core.databinding.UpdateSetStrategy;
+
+public class ECViewUpdateSetStrategy extends UpdateSetStrategy {
+
+	public ECViewUpdateSetStrategy() {
+		super();
+	}
+
+	public ECViewUpdateSetStrategy(boolean provideDefaults, int updatePolicy) {
+		super(provideDefaults, updatePolicy);
+	}
+
+	public ECViewUpdateSetStrategy(int updatePolicy) {
+		super(updatePolicy);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewUpdateValueStrategy.java b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewUpdateValueStrategy.java
new file mode 100644
index 0000000..541648d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/ECViewUpdateValueStrategy.java
@@ -0,0 +1,311 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.emf.common;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.sql.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.internal.databinding.conversion.NumberToBigDecimalConverter;
+import org.eclipse.core.internal.databinding.conversion.NumberToBigIntegerConverter;
+import org.eclipse.core.internal.databinding.conversion.NumberToByteConverter;
+import org.eclipse.core.internal.databinding.conversion.NumberToDoubleConverter;
+import org.eclipse.core.internal.databinding.conversion.NumberToFloatConverter;
+import org.eclipse.core.internal.databinding.conversion.NumberToIntegerConverter;
+import org.eclipse.core.internal.databinding.conversion.NumberToLongConverter;
+import org.eclipse.core.internal.databinding.conversion.NumberToShortConverter;
+import org.eclipse.core.internal.databinding.conversion.ObjectToStringConverter;
+import org.eclipse.emf.databinding.EMFUpdateValueStrategy;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EDataType;
+
+import com.ibm.icu.text.NumberFormat;
+
+@SuppressWarnings("restriction")
+public class ECViewUpdateValueStrategy extends EMFUpdateValueStrategy {
+
+	private static final Map<ConverterKey, IConverter> converterMap = new HashMap<ConverterKey, IConverter>();
+	static {
+
+		NumberFormat integerFormat = NumberFormat.getIntegerInstance();
+		NumberFormat numberFormat = NumberFormat.getNumberInstance();
+
+		converterMap.put(new ConverterKey(Number.class, BigDecimal.class),
+				new NumberToBigDecimalConverter(numberFormat, Number.class));
+		converterMap.put(new ConverterKey(Number.class, BigInteger.class),
+				new NumberToBigIntegerConverter(integerFormat, Number.class));
+
+		converterMap.put(new ConverterKey(Number.class, Byte.class),
+				new NumberToByteConverter(integerFormat, Number.class, false));
+		converterMap.put(new ConverterKey(Number.class, Byte.TYPE),
+				new NumberToByteConverter(integerFormat, Number.class, true));
+
+		converterMap.put(new ConverterKey(Number.class, Double.class),
+				new NumberToDoubleConverter(numberFormat, Number.class, false));
+		converterMap.put(new ConverterKey(Number.class, Double.TYPE),
+				new NumberToDoubleConverter(numberFormat, Number.class, true));
+
+		converterMap.put(new ConverterKey(Number.class, Float.class),
+				new NumberToFloatConverter(numberFormat, Number.class, false));
+		converterMap.put(new ConverterKey(Number.class, Float.TYPE),
+				new NumberToFloatConverter(numberFormat, Number.class, true));
+
+		converterMap
+				.put(new ConverterKey(Number.class, Integer.class),
+						new NumberToIntegerConverter(integerFormat,
+								Number.class, false));
+		converterMap
+				.put(new ConverterKey(Number.class, Integer.TYPE),
+						new NumberToIntegerConverter(integerFormat,
+								Number.class, true));
+
+		converterMap.put(new ConverterKey(Number.class, Long.class),
+				new NumberToLongConverter(integerFormat, Number.class, false));
+		converterMap.put(new ConverterKey(Number.class, Long.TYPE),
+				new NumberToLongConverter(integerFormat, Number.class, true));
+
+		converterMap.put(new ConverterKey(Number.class, Short.class),
+				new NumberToShortConverter(integerFormat, Number.class, false));
+		converterMap.put(new ConverterKey(Number.class, Short.TYPE),
+				new NumberToShortConverter(integerFormat, Number.class, true));
+
+	}
+
+	public ECViewUpdateValueStrategy() {
+		super();
+	}
+
+	public ECViewUpdateValueStrategy(boolean provideDefaults, int updatePolicy) {
+		super(provideDefaults, updatePolicy);
+	}
+
+	public ECViewUpdateValueStrategy(int updatePolicy) {
+		super(updatePolicy);
+	}
+
+	@Override
+	protected IConverter createConverter(Object fromType, Object toType) {
+
+		/*
+		 * Try to find an number converter for EAttributes
+		 */
+		if (fromType instanceof EAttribute && toType instanceof EAttribute) {
+			final EAttribute fromEAttribute = (EAttribute) fromType;
+			final EAttribute toEAttribute = (EAttribute) toType;
+
+			if (isNumber(fromEAttribute) && isNumber(toEAttribute)) {
+				final EDataType fromEDataType = fromEAttribute
+						.getEAttributeType();
+				final Class<?> fromTypeClass = fromEDataType.getInstanceClass();
+
+				final EDataType toEDataType = toEAttribute.getEAttributeType();
+				final Class<?> toTypeClass = toEDataType.getInstanceClass();
+
+				IConverter converter = findNumberToNumberConverter(toTypeClass,
+						fromTypeClass);
+				if (converter != null) {
+					return converter;
+				}
+			}
+		}
+
+		/*
+		 * Try to find further converters
+		 */
+		if (toType instanceof EAttribute) {
+			final EAttribute eAttribute = (EAttribute) toType;
+			final EDataType eDataType = eAttribute.getEAttributeType();
+			final Class<?> toTypeClass = eDataType.getInstanceClass();
+			if (isNumber(fromType)) {
+				if (isNumber(toTypeClass)) {
+					final Class<?> fromTypeClass = (Class<?>) fromType;
+					IConverter converter = findNumberToNumberConverter(
+							toTypeClass, fromTypeClass);
+					if (converter != null) {
+						return converter;
+					}
+				} else if (toTypeClass == String.class) {
+					return new ObjectToStringConverter();
+				}
+			} else if (fromType == String.class
+					&& (toTypeClass == String.class || toTypeClass == Object.class)) {
+				return null;
+			}
+		} else if (fromType instanceof EAttribute) {
+			final EAttribute eAttribute = (EAttribute) fromType;
+			final EDataType eDataType = eAttribute.getEAttributeType();
+			final Class<?> fromTypeClass = eDataType.getInstanceClass();
+			if (isNumber(toType)) {
+				// if eAttribute == number
+				if (isNumber(fromTypeClass)) {
+					final Class<?> toTypeClass = (Class<?>) toType;
+					IConverter converter = findNumberToNumberConverter(
+							toTypeClass, fromTypeClass);
+					if (converter != null) {
+						return converter;
+					}
+				}
+			} else if (toType == String.class
+					&& (fromTypeClass == String.class || fromTypeClass == Object.class)) {
+				return null;
+			}
+		}
+		return super.createConverter(fromType, toType);
+	}
+
+	/**
+	 * Tries to find a proper number converter.
+	 * 
+	 * @param toTypeClass
+	 * @param fromTypeClass
+	 * @return
+	 */
+	private IConverter findNumberToNumberConverter(final Class<?> toTypeClass,
+			final Class<?> fromTypeClass) {
+		// if (toTypeClass == BigDecimal.class)
+		// return new NumberToBigDecimalConverter(
+		// NumberFormat.getNumberInstance(), fromTypeClass);
+		// if (toTypeClass == BigInteger.class)
+		// return new NumberToBigIntegerConverter(
+		// NumberFormat.getNumberInstance(), fromTypeClass);
+		// if (toTypeClass == Byte.class || toTypeClass == Byte.TYPE)
+		// return new NumberToByteConverter(NumberFormat.getNumberInstance(),
+		// fromTypeClass, toTypeClass.isPrimitive());
+		// if (toTypeClass == Double.class || toTypeClass == Double.TYPE)
+		// return new NumberToDoubleConverter(
+		// NumberFormat.getNumberInstance(), fromTypeClass,
+		// toTypeClass.isPrimitive());
+		// if (toTypeClass == Float.class || toTypeClass == Float.TYPE)
+		// return new NumberToFloatConverter(NumberFormat.getNumberInstance(),
+		// fromTypeClass, toTypeClass.isPrimitive());
+		// if (toTypeClass == Integer.class || toTypeClass == Integer.TYPE)
+		// return new NumberToIntegerConverter(
+		// NumberFormat.getNumberInstance(), fromTypeClass,
+		// toTypeClass.isPrimitive());
+		// if (toTypeClass == Long.class || toTypeClass == Long.TYPE)
+		// return new NumberToLongConverter(NumberFormat.getNumberInstance(),
+		// fromTypeClass, toTypeClass.isPrimitive());
+		// if (toTypeClass == Short.class || toTypeClass == Short.TYPE)
+		// return new NumberToShortConverter(NumberFormat.getNumberInstance(),
+		// fromTypeClass, toTypeClass.isPrimitive());
+
+		return converterMap.get(new ConverterKey(Number.class, toTypeClass));
+	}
+
+	/**
+	 * Returns true, if the given type is a number.
+	 * 
+	 * @param type
+	 * @return
+	 */
+	private boolean isNumber(Object type) {
+		return type instanceof Class
+				&& (((Class<?>) type).isAssignableFrom(Number.class) || isPrimitiveNumber((Class<?>) type));
+	}
+
+	private boolean isNumber(EAttribute eAttribute) {
+		final EDataType eDataType = eAttribute.getEAttributeType();
+		final Class<?> fromTypeClass = eDataType.getInstanceClass();
+		return isNumber(fromTypeClass);
+	}
+
+	/**
+	 * Returns true, if the given type is a date.
+	 * 
+	 * @param type
+	 * @return
+	 */
+	@SuppressWarnings("unused")
+	private boolean isDate(Object type) {
+		return type instanceof Class
+				&& (((Class<?>) type).isAssignableFrom(Date.class));
+	}
+
+	/**
+	 * Returns true, if the given type is a string.
+	 * 
+	 * @param type
+	 * @return
+	 */
+	@SuppressWarnings("unused")
+	private boolean isString(Object type) {
+		return type == String.class;
+	}
+
+	/**
+	 * Returns true, if the given type is a primitive number.
+	 * 
+	 * @param type
+	 * @return
+	 */
+	private boolean isPrimitiveNumber(Class<?> type) {
+		if (type.isPrimitive()) {
+			return type == Short.TYPE || type == Byte.TYPE
+					|| type == Double.TYPE || type == Float.TYPE
+					|| type == Integer.TYPE || type == Long.TYPE;
+		}
+		return false;
+	}
+
+	/**
+	 * A key to access the converter map.
+	 */
+	private static final class ConverterKey {
+
+		private final Class<?> fromType;
+		private final Class<?> toType;
+
+		public ConverterKey(Class<?> fromType, Class<?> toType) {
+			super();
+			this.fromType = fromType;
+			this.toType = toType;
+		}
+
+		@Override
+		public int hashCode() {
+			final int prime = 31;
+			int result = 1;
+			result = prime * result
+					+ ((fromType == null) ? 0 : fromType.hashCode());
+			result = prime * result
+					+ ((toType == null) ? 0 : toType.hashCode());
+			return result;
+		}
+
+		@Override
+		public boolean equals(Object obj) {
+			if (this == obj)
+				return true;
+			if (obj == null)
+				return false;
+			if (getClass() != obj.getClass())
+				return false;
+			ConverterKey other = (ConverterKey) obj;
+			if (fromType == null) {
+				if (other.fromType != null)
+					return false;
+			} else if (!fromType.equals(other.fromType))
+				return false;
+			if (toType == null) {
+				if (other.toType != null)
+					return false;
+			} else if (!toType.equals(other.toType))
+				return false;
+			return true;
+		}
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/SetToListAdapter.java b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/SetToListAdapter.java
new file mode 100644
index 0000000..89ec917
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/common/SetToListAdapter.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.emf.common;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.Diffs;
+import org.eclipse.core.databinding.observable.list.ObservableList;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.set.ISetChangeListener;
+import org.eclipse.core.databinding.observable.set.SetChangeEvent;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class SetToListAdapter.
+ */
+@SuppressWarnings({ "rawtypes", "unchecked" })
+public class SetToListAdapter extends ObservableList {
+
+	/** The set. */
+	private final IObservableSet set;
+
+	/** The listener. */
+	private ISetChangeListener listener = new ISetChangeListener() {
+
+		public void handleSetChange(SetChangeEvent event) {
+			List originalList = new ArrayList(wrappedList);
+			for (Object addedElement : event.diff.getAdditions()) {
+				if (!wrappedList.contains(addedElement)) {
+					wrappedList.add(addedElement);
+				}
+			}
+			for (Object removedElement : event.diff.getRemovals()) {
+				wrappedList.remove(removedElement);
+			}
+			fireListChange(Diffs.computeListDiff(originalList, wrappedList));
+		}
+	};
+
+	/**
+	 * Instantiates a new sets the to list adapter.
+	 *
+	 * @param set
+	 *            the set
+	 */
+	public SetToListAdapter(IObservableSet set) {
+		super(set.getRealm(), new ArrayList(), set.getElementType());
+		this.set = set;
+		wrappedList.addAll(set);
+		this.set.addSetChangeListener(listener);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.databinding.observable.list.ObservableList#dispose()
+	 */
+	public synchronized void dispose() {
+		super.dispose();
+		if (set != null && listener != null) {
+			set.removeSetChangeListener(listener);
+			listener = null;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/context/ContextEMFBindingDelegate.java b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/context/ContextEMFBindingDelegate.java
new file mode 100644
index 0000000..818bda9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/context/ContextEMFBindingDelegate.java
@@ -0,0 +1,187 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.emf.context;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.FeaturePath;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.ecview.core.common.beans.IBeanRegistry;
+import org.eclipse.osbp.ecview.core.common.beans.ISlot;
+import org.eclipse.osbp.ecview.core.common.binding.observables.ContextBindingDelegate;
+import org.eclipse.osbp.ecview.core.common.uri.AccessibleScope;
+import org.eclipse.osbp.ecview.core.common.uri.BeanScope;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+
+public class ContextEMFBindingDelegate extends ContextBindingDelegate {
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean isFor(IBeanRegistry registry, URI bindingURI) {
+		AccessibleScope scope = URIHelper.toScope(bindingURI);
+		BeanScope beanScope = scope.getBeanScope();
+		if (beanScope == null) {
+			return false;
+		}
+		ISlot slot = beanScope.accessBeanSlot(registry);
+		if (slot == null
+				|| !EObject.class.isAssignableFrom(slot.getValueType())) {
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public IObservableValue observeValue(IBeanRegistry registry, URI bindingURI) {
+		return observeValue(Realm.getDefault(), registry, bindingURI);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public IObservableValue observeValue(Realm realm, IBeanRegistry registry,
+			URI bindingURI) {
+		AccessibleScope scope = URIHelper.toScope(bindingURI);
+		ISlot slot = scope.getBeanScope().accessBeanSlot(registry);
+
+		if (slot == null) {
+			throw new IllegalArgumentException("Bean slot must be available!");
+		}
+
+		// normalize bean fragment
+		String beanFragment = AccessibleScope
+				.removeSlotValueFragmentToken(scope.getBeanFragment());
+
+		IObservableValue observabelValue = null;
+		// no fragment specified
+		if (beanFragment.equals("")) {
+			observabelValue = BeansObservables.observeValue(realm, slot,
+					ISlot.PROP_VALUE);
+		} else {
+			EObject eObject = (EObject) slot.getValue();
+
+			// build the feature path
+			//
+			EClass eClass = eObject.eClass();
+			List<EStructuralFeature> features = new ArrayList<EStructuralFeature>();
+			String[] properties = beanFragment.split("\\.");
+			for (String property : properties) {
+				EStructuralFeature feature = eClass
+						.getEStructuralFeature(property);
+				if (feature == null) {
+					throw new IllegalStateException(String.format(
+							"%s is not a valid feature for %s!", property,
+							eClass.getName()));
+				}
+
+				features.add(feature);
+				if (feature instanceof EReference) {
+					EReference eReference = (EReference) feature;
+					eClass = eReference.getEReferenceType();
+				}
+			}
+
+			FeaturePath path = FeaturePath.fromList(features
+					.toArray(new EStructuralFeature[features.size()]));
+
+			// observe detail
+			//
+			IObservableValue masterObservable = BeansObservables.observeValue(
+					realm, slot, ISlot.PROP_VALUE);
+			observabelValue = EMFProperties.value(path).observeDetail(
+					masterObservable);
+		}
+		return observabelValue;
+	}
+
+	@Override
+	public IObservableList observeList(IBeanRegistry registry, URI bindingURI,
+			Class<?> elementType) {
+		return observeList(Realm.getDefault(), registry, bindingURI, elementType);
+	}
+
+	@Override
+	public IObservableList observeList(Realm realm, IBeanRegistry registry,
+			URI bindingURI, Class<?> elementType) {
+
+		AccessibleScope scope = URIHelper.toScope(bindingURI);
+		ISlot slot = scope.getBeanScope().accessBeanSlot(registry);
+
+		if (slot == null) {
+			throw new IllegalArgumentException("Bean slot must be available!");
+		}
+
+		// normalize bean fragment
+		String beanFragment = AccessibleScope
+				.removeSlotValueFragmentToken(scope.getBeanFragment());
+
+		IObservableList observabelList = null;
+		// no fragment specified
+		if (beanFragment.equals("")) {
+			return BeanProperties.list(slot.getClass(), ISlot.PROP_VALUE,
+					elementType).observe(realm, slot);
+		} else {
+			EObject eObject = (EObject) slot.getValue();
+
+			// build the feature path
+			//
+			EClass eClass = eObject.eClass();
+			List<EStructuralFeature> features = new ArrayList<EStructuralFeature>();
+			String[] properties = beanFragment.split("\\.");
+			for (String property : properties) {
+				EStructuralFeature feature = eClass
+						.getEStructuralFeature(property);
+				if (feature == null) {
+					throw new IllegalStateException(String.format(
+							"%s is not a valid feature for %s!", property,
+							eClass.getName()));
+				}
+
+				features.add(feature);
+				if (feature instanceof EReference) {
+					EReference eReference = (EReference) feature;
+					eClass = eReference.getEReferenceType();
+				}
+			}
+
+			FeaturePath path = FeaturePath.fromList(features
+					.toArray(new EStructuralFeature[features.size()]));
+
+			// observe detail
+			//
+			IObservableValue masterObservable = BeanProperties.value(
+					slot.getClass(), ISlot.PROP_VALUE, slot.getValueType()).observe(
+					realm, slot);
+			observabelList = EMFProperties.list(path).observeDetail(
+					masterObservable);
+		}
+		return observabelList;
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/model/ECViewModelBindable.java b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/model/ECViewModelBindable.java
new file mode 100644
index 0000000..e087b88
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.emf/src/org/eclipse/osbp/ecview/core/databinding/emf/model/ECViewModelBindable.java
@@ -0,0 +1,468 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.emf.model;
+
+import java.beans.PropertyChangeListener;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.FeaturePath;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This class is responsible to bind values inside the ECView UI model.
+ * <p>
+ * For now, 3 different types are known:<br>
+ * In all cases the given bean is an EObject, since the ECView model is based on
+ * Ecore. But there may be 3 different types of values contained in the EObject.
+ * <br>
+ * Example based on YList#selection. And the selection is an instance of
+ * ItemDTO. And we'd like to bind "selection.group.name"<br>
+ * ItemDTO can be of type...
+ * <ul>
+ * <li>EObject - then we need to use EMFBinding to bind the nested attributes.</li>
+ * <li>Bean- then we need to use EMFBinding to create a master binding value for
+ * YList#selection, and this binding is input for a Bean-DetailBinding.</li>
+ * <li>Pojo - then we need to use EMFBinding to create a master binding value
+ * for YList#selection, and this binding is input for a Pojo-DetailBinding.</li>
+ * </ul>
+ */
+public class ECViewModelBindable {
+
+	/**
+	 * Returns an observable value tracking the attribute path.
+	 *
+	 * @param yElement
+	 *            - The ECView model element
+	 * @param attributePath
+	 *            - The attribute path being tracked
+	 * @param elementType
+	 *            - The type that is contained in the yElement. For instance if
+	 *            YList#selection is of type Item.class, then this property is
+	 *            Item.class.
+	 * @param emfNsURI
+	 *            - The namespace URI of the EMF package, if the elementType is
+	 *            provided by emf. Required to get the EClass for the given
+	 *            elementType. May be <code>null</code> if the elementType is
+	 *            not related to emf.
+	 * @return the i observable value
+	 */
+	public static IObservableValue observeValue(EObject yElement,
+			String attributePath, Class<?> elementType, String emfNsURI) {
+		return observeValue(Realm.getDefault(), yElement, attributePath,
+				elementType, emfNsURI);
+	}
+
+	/**
+	 * Returns an observable value tracking the attribute path.
+	 *
+	 * @param realm
+	 *            - The realm
+	 * @param yElement
+	 *            - The ECView model element
+	 * @param attributePath
+	 *            - The attribute path being tracked
+	 * @param elementType
+	 *            - The type that is contained in the yElement. For instance if
+	 *            YList#selection is of type Item.class, then this property is
+	 *            Item.class.
+	 * @param emfNsURI
+	 *            - The namespace URI of the EMF package, if the elementType is
+	 *            provided by emf. Required to get the EClass for the given
+	 *            elementType. May be <code>null</code> if the elementType is
+	 *            not related to emf.
+	 * @return the i observable value
+	 */
+	public static IObservableValue observeValue(Realm realm, EObject yElement,
+			String attributePath, Class<?> elementType, String emfNsURI) {
+
+		if (elementType != null && EObject.class.isAssignableFrom(elementType)) {
+			EPackage ePkg = EPackage.Registry.INSTANCE.getEPackage(emfNsURI);
+			if (ePkg == null) {
+				throw new IllegalArgumentException(emfNsURI
+						+ " is not a valid EPackage!");
+			}
+
+			EClass eClass = (EClass) ePkg.getEClassifier(elementType
+					.getSimpleName());
+			if (eClass == null) {
+				throw new IllegalArgumentException(elementType.getSimpleName()
+						+ " is not contained in the EPackage for nsURI "
+						+ emfNsURI);
+			}
+
+			FeaturePath path = getFeaturePath(attributePath, yElement.eClass(),
+					eClass);
+			return observeValue(realm, yElement, path);
+		} else {
+			return doObserveValue(yElement, attributePath, elementType);
+		}
+
+	}
+
+	/**
+	 * See {@link #observeValue(Realm, EObject, String, Class, String)}.
+	 *
+	 * @param yElement
+	 *            the y element
+	 * @param attributePath
+	 *            the attribute path
+	 * @param elementType
+	 *            the element type
+	 * @return the i observable value
+	 */
+	protected static IObservableValue doObserveValue(EObject yElement,
+			String attributePath, Class<?> elementType) {
+		if (yElement == null) {
+			throw new IllegalArgumentException(
+					"ECView model element must not be null!");
+		}
+
+		if (attributePath == null || attributePath.equals("")) {
+			throw new IllegalArgumentException(
+					"Attribute path must not be empty!");
+		}
+
+		int separatorIndex = attributePath.indexOf(".");
+		String subPath = attributePath.substring(separatorIndex + 1);
+
+		EClass eClass = yElement.eClass();
+		String[] properties = attributePath.split("\\.");
+		EStructuralFeature feature = eClass
+				.getEStructuralFeature(properties[0]);
+		if (feature == null) {
+			throw new IllegalStateException(String.format(
+					"%s is not a valid feature for %s!", properties[0],
+					eClass.getName()));
+		}
+
+		if (elementType != null && EObject.class.isAssignableFrom(elementType)) {
+			throw new IllegalStateException(
+					"Please use observeValue(EObject, FeaturePath)");
+		}
+
+		if (properties.length == 1) {
+			return EMFProperties.value(feature).observe(yElement);
+		} else if (hasPropertyChangeSupport(elementType)) {
+			IObservableValue masterObservable = EMFProperties.value(feature)
+					.observe(yElement);
+			return BeanProperties.value(elementType, subPath).observeDetail(
+					masterObservable);
+		} else {
+			IObservableValue masterObservable = EMFProperties.value(feature)
+					.observe(yElement);
+			return PojoProperties.value(elementType, subPath).observeDetail(
+					masterObservable);
+		}
+	}
+
+	/**
+	 * Returns an observable value tracking the attribute path. The difference
+	 * to {@link #observeValue(Realm, EObject, FeaturePath)} is, that the object
+	 * located in the given yElement is an EObject.
+	 *
+	 * @param yElement
+	 *            - The ECView model element
+	 * @param path
+	 *            - The feature path being tracked
+	 * @return the i observable value
+	 */
+	public static IObservableValue observeValue(EObject yElement,
+			FeaturePath path) {
+		return observeValue(Realm.getDefault(), yElement, path);
+	}
+
+	/**
+	 * Returns an observable value tracking the attribute path. The difference
+	 * to {@link #observeValue(EObject, String, Class, String)} is, that the object
+	 * located in the given yElement is an EObject.
+	 *
+	 * @param realm
+	 *            - The realm.
+	 * @param yElement
+	 *            - The ECView model element
+	 * @param path
+	 *            - The feature path being tracked
+	 * @return the i observable value
+	 */
+	public static IObservableValue observeValue(Realm realm, EObject yElement,
+			FeaturePath path) {
+		if (yElement == null) {
+			throw new IllegalArgumentException(
+					"ECView model element must not be null!");
+		}
+
+		if (path == null || path.getFeaturePath().length == 0) {
+			throw new IllegalArgumentException(
+					"Feature path must not be empty!");
+		}
+
+		return EMFProperties.value(path).observe(yElement);
+	}
+
+	/**
+	 * Returns a feature path required for EMF databinding.
+	 *
+	 * @param features
+	 *            - The features
+	 * @return the feature path
+	 */
+	public static FeaturePath getFeaturePath(List<EStructuralFeature> features) {
+		return FeaturePath.fromList(features
+				.toArray(new EStructuralFeature[features.size()]));
+	}
+
+	/**
+	 * Returns a feature path required for EMF databinding.
+	 *
+	 * @param path
+	 *            - A dot notated path
+	 * @param yElementClass
+	 *            - the EClass of the yElement. See
+	 *            {@link #observeValue(EObject, FeaturePath)}
+	 * @param yElementTypeClass
+	 *            - the EClass of the object contained in the yElement for the
+	 *            first path-segment.
+	 * @return the feature path
+	 */
+	public static FeaturePath getFeaturePath(String path, EClass yElementClass,
+			EClass yElementTypeClass) {
+		return getFeaturePath(path.split("\\."), yElementClass,
+				yElementTypeClass);
+	}
+
+	/**
+	 * Returns a feature path required for EMF databinding.
+	 *
+	 * @param path
+	 *            the path
+	 * @param yElementClass
+	 *            - the EClass of the yElement. See
+	 *            {@link #observeValue(EObject, FeaturePath)}
+	 * @param yElementTypeClass
+	 *            - the EClass of the object contained in the yElement for the
+	 *            first path-segment.
+	 * @return the feature path
+	 */
+	public static FeaturePath getFeaturePath(String[] path,
+			EClass yElementClass, EClass yElementTypeClass) {
+
+		if (path.length == 0) {
+			throw new IllegalArgumentException("Not a valid path");
+		}
+
+		// handle the first feature
+		List<EStructuralFeature> features = new ArrayList<EStructuralFeature>();
+		EStructuralFeature firstFeature = yElementClass
+				.getEStructuralFeature(path[0]);
+		features.add(firstFeature);
+
+		// handle all other
+		EClass currentClass = yElementTypeClass;
+		for (int i = 1; i < path.length && currentClass != null; i++) {
+			String string = path[i];
+
+			EStructuralFeature feature = currentClass
+					.getEStructuralFeature(string);
+			features.add(feature);
+
+			if (feature instanceof EReference) {
+				EReference eReference = (EReference) feature;
+				currentClass = eReference.getEReferenceType();
+			} else {
+				currentClass = null;
+			}
+		}
+
+		return FeaturePath.fromList(features
+				.toArray(new EStructuralFeature[features.size()]));
+
+	}
+
+	/**
+	 * Returns an observable list tracking the attribute path.
+	 *
+	 * @param yElement
+	 *            - The ECView model element
+	 * @param attributePath
+	 *            - The attribute path being tracked
+	 * @param elementType
+	 *            - The type that is contained in the yElement. For instance if
+	 *            YList#selection is of type Item.class, then this property is
+	 *            Item.class.
+	 * @return the i observable list
+	 */
+	public static IObservableList observeList(EObject yElement,
+			String attributePath, Class<?> elementType) {
+		return observeList(Realm.getDefault(), yElement, attributePath,
+				elementType);
+	}
+
+	/**
+	 * Returns an observable list tracking the attribute path.
+	 *
+	 * @param realm
+	 *            - The realm
+	 * @param yElement
+	 *            - The ECView model element
+	 * @param attributePath
+	 *            - The attribute path being tracked
+	 * @param elementType
+	 *            - The type that is contained in the yElement. For instance if
+	 *            YList#selection is of type Item.class, then this property is
+	 *            Item.class.
+	 * @return the i observable list
+	 */
+	public static IObservableList observeList(Realm realm, EObject yElement,
+			String attributePath, Class<?> elementType) {
+		if (yElement == null) {
+			throw new IllegalArgumentException(
+					"ECView model element must not be null!");
+		}
+
+		if (attributePath == null || attributePath.equals("")) {
+			throw new IllegalArgumentException(
+					"Attribute path must not be empty!");
+		}
+
+		int separatorIndex = attributePath.indexOf(".");
+		String subPath = attributePath.substring(separatorIndex + 1);
+
+		EClass eClass = yElement.eClass();
+		String[] properties = attributePath.split("\\.");
+		EStructuralFeature feature = eClass
+				.getEStructuralFeature(properties[0]);
+		if (feature == null) {
+			throw new IllegalStateException(String.format(
+					"%s is not a valid feature for %s!", properties[0],
+					eClass.getName()));
+		}
+
+		if (EObject.class.isAssignableFrom(elementType)) {
+			throw new IllegalStateException("Please use observeEmfValue");
+		}
+
+		if (properties.length == 1) {
+			return EMFProperties.list(feature).observe(yElement);
+		} else if (hasPropertyChangeSupport(elementType)) {
+			IObservableValue masterObservable = EMFProperties.value(feature)
+					.observe(yElement);
+			return BeanProperties.list(elementType, subPath).observeDetail(
+					masterObservable);
+		} else {
+			IObservableValue masterObservable = EMFProperties.value(feature)
+					.observe(yElement);
+			return PojoProperties.list(elementType, subPath).observeDetail(
+					masterObservable);
+		}
+	}
+
+	/**
+	 * Returns an observable list tracking the attribute path. The difference to
+	 * {@link #observeList(EObject, String, Class)} is, that the object located
+	 * in the given yElement is an EObject.
+	 *
+	 * @param yElement
+	 *            - The ECView model element
+	 * @param path
+	 *            - The feature path being tracked
+	 * @return the i observable list
+	 */
+	public static IObservableList observeList(EObject yElement, FeaturePath path) {
+		return observeList(Realm.getDefault(), yElement, path);
+	}
+
+	/**
+	 * Returns an observable list tracking the attribute path. The difference to
+	 * {@link #observeList(EObject, String, Class)} is, that the object located
+	 * in the given yElement is an EObject.
+	 *
+	 * @param realm
+	 *            - The realm.
+	 * @param yElement
+	 *            - The ECView model element
+	 * @param path
+	 *            - The feature path being tracked
+	 * @return the i observable list
+	 */
+	public static IObservableList observeList(Realm realm, EObject yElement,
+			FeaturePath path) {
+		if (yElement == null) {
+			throw new IllegalArgumentException(
+					"ECView model element must not be null!");
+		}
+
+		if (path == null || path.getFeaturePath().length == 0) {
+			throw new IllegalArgumentException(
+					"Feature path must not be empty!");
+		}
+
+		return EMFProperties.list(path).observe(yElement);
+	}
+
+	/**
+	 * Returns true, if the bean has property change support.
+	 *
+	 * @param valueType
+	 *            the value type
+	 * @return true, if successful
+	 */
+	public static boolean hasPropertyChangeSupport(Class<?> valueType) {
+		@SuppressWarnings("unused")
+		Method method = null;
+		try {
+			try {
+				method = valueType.getMethod("addPropertyChangeListener",
+						new Class[] { String.class,
+								PropertyChangeListener.class });
+				return true;
+			} catch (NoSuchMethodException e) {
+				method = valueType.getMethod("addPropertyChangeListener",
+						new Class[] { PropertyChangeListener.class });
+				return true;
+			}
+		} catch (SecurityException e) {
+		} catch (NoSuchMethodException e) {
+		}
+		return false;
+	}
+
+	/**
+	 * Creates an attribute path that may be used for bindings in that class.
+	 *
+	 * @param eFeature
+	 *            the e feature
+	 * @param path
+	 *            the path
+	 * @return the attribute path
+	 */
+	public static String getAttributePath(EStructuralFeature eFeature,
+			String path) {
+		if (path == null || path.equals("")) {
+			return eFeature.getName();
+		} else {
+			return eFeature.getName() + "." + path;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/.project b/org.eclipse.osbp.ecview.core.databinding.tests/.project
new file mode 100644
index 0000000..a3b3670
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.databinding.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/LICENSE.txt b/org.eclipse.osbp.ecview.core.databinding.tests/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.databinding.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f0acb72
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.databinding.tests
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.databinding.tests;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.ecview.core.databinding.tests.emf.model;version="0.9.0",
+ org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl;version="0.9.0",
+ org.eclipse.osbp.ecview.core.databinding.tests.emf.model.util;version="0.9.0"
+Require-Bundle: org.eclipse.osbp.ecview.core.databinding.beans;bundle-version="[0.9.0,0.10.0)",
+ org.junit;bundle-version="4.10.0",
+ org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.osbp.ecview.core.databinding.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.core.databinding;bundle-version="1.4.1",
+ org.eclipse.core.databinding.beans;bundle-version="1.2.200",
+ org.eclipse.core.databinding.observable;bundle-version="1.4.1",
+ org.eclipse.core.databinding.property;bundle-version="1.4.200",
+ org.eclipse.emf.databinding;bundle-version="1.3.0",
+ org.apache.commons.beanutils;bundle-version="1.9.2",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)"
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/about.html b/org.eclipse.osbp.ecview.core.databinding.tests/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/about.ini b/org.eclipse.osbp.ecview.core.databinding.tests/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/about.mappings b/org.eclipse.osbp.ecview.core.databinding.tests/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/about.properties b/org.eclipse.osbp.ecview.core.databinding.tests/about.properties
new file mode 100644
index 0000000..6792946
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.databinding.tests
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/build.properties b/org.eclipse.osbp.ecview.core.databinding.tests/build.properties
new file mode 100644
index 0000000..ffeb7b7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/build.properties
@@ -0,0 +1,14 @@
+#
+
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               license.html,\
+               LICENSE.txt
+jars.compile.order = .
+source.. = src/
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/license.html b/org.eclipse.osbp.ecview.core.databinding.tests/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/model/model.ecore b/org.eclipse.osbp.ecview.core.databinding.tests/model/model.ecore
new file mode 100644
index 0000000..977a435
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/model/model.ecore
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://eclipse.org/emf/ecp/ecview/databinding/emf/test"
+    nsPrefix="model">
+  <eClassifiers xsi:type="ecore:EClass" name="TPerson">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="address" eType="#//TAddress"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TAddress">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="country" eType="#//TCountry"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TCountry">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isoCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cities" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TList">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tObject" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/model/model.genmodel b/org.eclipse.osbp.ecview.core.databinding.tests/model/model.genmodel
new file mode 100644
index 0000000..dfd8414
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/model/model.genmodel
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.lunifera.ecview.core.databinding.tests/src"
+    modelPluginID="org.lunifera.ecview.core.databinding.tests" modelName="Model"
+    rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore"
+    complianceLevel="6.0" copyrightFields="false" operationReflection="true" importOrganizing="true">
+  <foreignModel>model.ecore</foreignModel>
+  <genPackages prefix="Testmodel" basePackage="org.lunifera.ecview.core.databinding.tests.emf"
+      disposableProviderFactory="true" ecorePackage="model.ecore#/">
+    <genClasses ecoreClass="model.ecore#//Person">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model.ecore#//Person/address"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//Address">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model.ecore#//Address/country"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//Country">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//Country/isoCode"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/plugin.properties b/org.eclipse.osbp.ecview.core.databinding.tests/plugin.properties
new file mode 100644
index 0000000..855ef12
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = Databinding tests
+providerName = 
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/plugin.xml b/org.eclipse.osbp.ecview.core.databinding.tests/plugin.xml
new file mode 100644
index 0000000..30a3525
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated model -->
+      <package
+            uri="http://eclipse.org/emf/ecp/ecview/databinding/emf/test"
+            class="org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage"
+            genModel="model/model.genmodel"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/pom.xml b/org.eclipse.osbp.ecview.core.databinding.tests/pom.xml
new file mode 100644
index 0000000..b670770
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.osbp.ecview.core</groupId>
+    <artifactId>org.eclipse.osbp.ecview.core</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>org.eclipse.osbp.ecview.core.databinding.tests</artifactId>
+  <packaging>eclipse-plugin</packaging>
+  <description>Databinding tests</description>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/BeanBindingDelegateTest.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/BeanBindingDelegateTest.java
new file mode 100644
index 0000000..59452fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/BeanBindingDelegateTest.java
@@ -0,0 +1,218 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests;
+
+import static org.junit.Assert.fail;
+
+import java.net.URI;
+
+import junit.framework.Assert;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.databinding.beans.context.ContextBeanBindingDelegate;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.BAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.BCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.BPerson;
+import org.junit.Before;
+import org.junit.Test;
+
+@SuppressWarnings("restriction")
+public class BeanBindingDelegateTest {
+
+	private boolean changed;
+	private ContextBeanBindingDelegate binder;
+	private IViewContext context;
+
+	@Before
+	public void setup() {
+		new TestRealm();
+		binder = new ContextBeanBindingDelegate();
+		context = new TestViewContext();
+	}
+
+	/**
+	 * Tests the binding of bean slot.
+	 */
+	@Test
+	public void test_bindSlot() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input"));
+		Assert.assertNull(value);
+	}
+
+	/**
+	 * Tests the binding of values.
+	 */
+	@Test
+	public void test_bindValue() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		context.getBeanSlot("input").setValue(new BPerson());
+		Assert.assertTrue(changed);
+	}
+
+	/**
+	 * Tests what happens if a binding is done, but no bean slot was prepared so
+	 * far.
+	 */
+	@SuppressWarnings("unused")
+	@Test
+	public void test_bindValue_NoSlotAvailable() {
+		try {
+			IObservableValue value = binder.observeValue(context,
+					URI.create("view://bean/input#value"));
+			Assert.fail();
+		} catch (IllegalArgumentException e) {
+		}
+	}
+
+	/**
+	 * Test changing the bean in the slot.
+	 */
+	@Test
+	public void test_bindValue_nested() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+		context.setBean("input", new BPerson());
+		Assert.assertTrue(changed);
+	}
+
+	/**
+	 * Tests changing the observed element.
+	 */
+	@Test
+	public void test_bindValue_nested_target() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address.country.isoCode"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		person.getAddress().getCountry().setIsoCode("EN");
+		Assert.assertTrue(changed);
+	}
+
+	/**
+	 * Tests changing an object in the observer chain.
+	 */
+	@Test
+	public void test_bindValue_nested_middleOfChain() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address.country.isoCode"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		// change the address in person
+		//
+		BAddress address = new BAddress();
+		BCountry country = new BCountry();
+		country.setIsoCode("EN");
+		address.setCountry(country);
+
+		person.setAddress(address);
+		Assert.assertTrue(changed);
+	}
+
+	@Test
+	public void test_bindValue_nested_property() {
+		BPerson person = BPerson.newInstance("AT");
+		IObservableValue value = BeanProperties.value(BPerson.class,
+				"address.country").observe(person);
+		Assert.assertSame(person.getAddress().getCountry(), value.getValue());
+
+		BCountry other = new BCountry();
+		other.setIsoCode("Other");
+		person.getAddress().setCountry(other);
+		Assert.assertSame(person.getAddress().getCountry(), value.getValue());
+
+		BAddress address = new BAddress();
+		BCountry another = new BCountry();
+		another.setIsoCode("Another");
+		address.setCountry(another);
+		person.setAddress(address);
+		Assert.assertSame(person.getAddress().getCountry(), value.getValue());
+	}
+	
+	public void test_bindList(){
+		fail("Implement!");
+	}
+	
+	public void test_bindList_nested(){
+		fail("Implement!");
+	}
+
+	private static class TestRealm extends Realm {
+
+		private TestRealm() {
+			setDefault(this);
+		}
+
+		public boolean isCurrent() {
+			return true;
+		}
+
+		public void asyncExec(final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+
+		public void timerExec(int milliseconds, final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/ContextObservablesTest.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/ContextObservablesTest.java
new file mode 100644
index 0000000..882d947
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/ContextObservablesTest.java
@@ -0,0 +1,316 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.net.URI;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.osbp.ecview.core.common.binding.observables.ContextObservables;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.databinding.beans.context.ContextBeanBindingDelegate;
+import org.eclipse.osbp.ecview.core.databinding.beans.context.ContextPojoBindingDelegate;
+import org.eclipse.osbp.ecview.core.databinding.emf.context.ContextEMFBindingDelegate;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.BPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelFactory;
+import org.eclipse.osbp.ecview.core.databinding.tests.pojo.model.PPerson;
+import org.junit.Before;
+import org.junit.Test;
+
+@SuppressWarnings("restriction")
+public class ContextObservablesTest {
+
+	private TestmodelFactory factory = TestmodelFactory.eINSTANCE;
+	private boolean changed;
+
+	@Before
+	public void setup() {
+		ContextObservables.getInstance().clear();
+	}
+
+	/**
+	 * Tests the sequence.
+	 */
+	@Test
+	public void test_getSequence() {
+		ContextBeanBindingDelegate delegate10 = new ContextBeanBindingDelegate();
+		ContextBeanBindingDelegate delegate20 = new ContextBeanBindingDelegate();
+		ContextBeanBindingDelegate delegate30 = new ContextBeanBindingDelegate();
+
+		ContextObservables.getInstance().addDelegate(30, delegate30);
+		ContextObservables.getInstance().addDelegate(10, delegate10);
+		ContextObservables.getInstance().addDelegate(20, delegate20);
+
+		assertEquals(10,
+				ContextObservables.getInstance().getSequence(delegate10));
+		assertEquals(20,
+				ContextObservables.getInstance().getSequence(delegate20));
+		assertEquals(30,
+				ContextObservables.getInstance().getSequence(delegate30));
+
+		ContextObservables.getInstance().removeDelegate(delegate30);
+		assertEquals(-1,
+				ContextObservables.getInstance().getSequence(delegate30));
+	}
+
+	/**
+	 * Tests the sequence.
+	 */
+	@Test
+	public void test_addRemove() {
+		ContextBeanBindingDelegate delegate10 = new ContextBeanBindingDelegate();
+
+		ContextObservables.getInstance().addDelegate(10, delegate10);
+
+		assertEquals(10,
+				ContextObservables.getInstance().getSequence(delegate10));
+
+		ContextObservables.getInstance().removeDelegate(delegate10);
+		assertEquals(-1,
+				ContextObservables.getInstance().getSequence(delegate10));
+	}
+
+	/**
+	 * Tests the binding of values.
+	 */
+	@Test
+	public void test_getBeanDelegate() {
+		ContextBeanBindingDelegate expected = new ContextBeanBindingDelegate();
+		ContextObservables.getInstance().addDelegate(10,
+				new ContextEMFBindingDelegate());
+		ContextObservables.getInstance().addDelegate(20, expected);
+		ContextObservables.getInstance().addDelegate(30,
+				new ContextPojoBindingDelegate());
+
+		TestViewContext context = new TestViewContext();
+		context.setBean("input", BPerson.newInstance("AT"));
+
+		assertSame(
+				expected,
+				ContextObservables.getInstance().getDelegate(context,
+						URI.create("view://bean/input#value")));
+	}
+
+	/**
+	 * Tests the binding of values.
+	 */
+	@Test
+	public void test_getBeanDelegate_ButFindsPojoDelegate() {
+		ContextPojoBindingDelegate expected = new ContextPojoBindingDelegate();
+		ContextObservables.getInstance().addDelegate(10,
+				new ContextEMFBindingDelegate());
+		ContextObservables.getInstance().addDelegate(20, expected);
+		ContextObservables.getInstance().addDelegate(30,
+				new ContextBeanBindingDelegate());
+
+		TestViewContext context = new TestViewContext();
+		context.setBean("input", BPerson.newInstance("AT"));
+
+		assertSame(
+				expected,
+				ContextObservables.getInstance().getDelegate(context,
+						URI.create("view://bean/input#value")));
+	}
+
+	/**
+	 * Tests the binding of values.
+	 */
+	@Test
+	public void test_getPojoDelegate() {
+		ContextPojoBindingDelegate expected = new ContextPojoBindingDelegate();
+		ContextObservables.getInstance().addDelegate(10,
+				new ContextEMFBindingDelegate());
+		ContextObservables.getInstance().addDelegate(20,
+				new ContextBeanBindingDelegate());
+		ContextObservables.getInstance().addDelegate(30, expected);
+
+		TestViewContext context = new TestViewContext();
+		context.setBean("input", PPerson.newInstance("AT"));
+
+		assertSame(
+				expected,
+				ContextObservables.getInstance().getDelegate(context,
+						URI.create("view://bean/input#value")));
+	}
+
+	/**
+	 * Tests the binding of values.
+	 */
+	@Test
+	public void test_getEMFDelegate() {
+		ContextEMFBindingDelegate expected = new ContextEMFBindingDelegate();
+		ContextObservables.getInstance().addDelegate(10, expected);
+		ContextObservables.getInstance().addDelegate(20,
+				new ContextBeanBindingDelegate());
+		ContextObservables.getInstance().addDelegate(30,
+				new ContextPojoBindingDelegate());
+
+		TestViewContext context = new TestViewContext();
+		context.setBean("input", newPerson("AT"));
+
+		assertSame(
+				expected,
+				ContextObservables.getInstance().getDelegate(context,
+						URI.create("view://bean/input#value")));
+	}
+
+	/**
+	 * Test changing the bean in the slot.
+	 */
+	@Test
+	public void test_bean_bindValue_nested() {
+		ContextObservables.getInstance().addDelegate(10,
+				new ContextEMFBindingDelegate());
+		ContextObservables.getInstance().addDelegate(20,
+				new ContextBeanBindingDelegate());
+		ContextObservables.getInstance().addDelegate(30,
+				new ContextPojoBindingDelegate());
+
+		ViewContext context = new TestViewContext();
+		new TestRealm();
+
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = ContextObservables.observeValue(context,
+				URI.create("view://bean/input#value.address"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+		context.setBean("input", new BPerson());
+		assertTrue(changed);
+	}
+
+	/**
+	 * Test changing the bean in the slot.
+	 */
+	@Test
+	public void test_emf_bindValue_nested() {
+		ContextObservables.getInstance().addDelegate(10,
+				new ContextEMFBindingDelegate());
+		ContextObservables.getInstance().addDelegate(20,
+				new ContextBeanBindingDelegate());
+		ContextObservables.getInstance().addDelegate(30,
+				new ContextPojoBindingDelegate());
+
+		ViewContext context = new TestViewContext();
+		new TestRealm();
+
+		TPerson person = newPerson("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = ContextObservables.observeValue(context,
+				URI.create("view://bean/input#value.address"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+		context.setBean("input", newPerson("AT"));
+		assertTrue(changed);
+	}
+
+	/**
+	 * Test changing the bean in the slot.
+	 */
+	@Test
+	public void test_pojo_bindValue_nested() {
+		ContextObservables.getInstance().addDelegate(10,
+				new ContextEMFBindingDelegate());
+		ContextObservables.getInstance().addDelegate(20,
+				new ContextBeanBindingDelegate());
+		ContextObservables.getInstance().addDelegate(30,
+				new ContextPojoBindingDelegate());
+
+		ViewContext context = new TestViewContext();
+		new TestRealm();
+
+		PPerson person = PPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = ContextObservables.observeValue(context,
+				URI.create("view://bean/input#value.address"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+		context.setBean("input", new PPerson());
+
+		assertTrue(changed);
+	}
+
+	public void test_bindList() {
+		fail("Implement!");
+	}
+
+	public void test_bindList_nested() {
+		fail("Implement!");
+	}
+
+	/**
+	 * Creates a new instance of person. All references are properly setup and
+	 * the isoCode of the country is set to the given value.
+	 * 
+	 * @param isoCode
+	 * @return
+	 */
+	public TPerson newPerson(String isoCode) {
+		TPerson person = factory.createTPerson();
+		TAddress address = factory.createTAddress();
+		person.setAddress(address);
+		TCountry country = factory.createTCountry();
+		country.setIsoCode(isoCode);
+		address.setCountry(country);
+		return person;
+	}
+
+	private static class TestRealm extends Realm {
+
+		private TestRealm() {
+			setDefault(this);
+		}
+
+		public boolean isCurrent() {
+			return true;
+		}
+
+		public void asyncExec(final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+
+		public void timerExec(int milliseconds, final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/ECViewModelListBindableTests.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/ECViewModelListBindableTests.java
new file mode 100644
index 0000000..30a2af2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/ECViewModelListBindableTests.java
@@ -0,0 +1,180 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IListChangeListener;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.ListChangeEvent;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.osbp.ecview.core.databinding.emf.model.ECViewModelBindable;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.BPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelFactory;
+import org.eclipse.osbp.ecview.core.databinding.tests.pojo.model.PPerson;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ECViewModelListBindableTests {
+
+	private TestmodelFactory factory = TestmodelFactory.eINSTANCE;
+	private TList tList;
+
+	@Before
+	public void setup() {
+		new TestRealm();
+		tList = factory.createTList();
+
+	}
+
+	@SuppressWarnings("restriction")
+	@Test
+	public void test_EMF_list_binding() {
+		TPerson tPerson = factory.createTPerson();
+		TAddress tAddress = factory.createTAddress();
+		TCountry tCountry = factory.createTCountry();
+		tCountry.setIsoCode("AT");
+		tCountry.getCities().add("Vienna");
+		tCountry.getCities().add("Graz");
+		tCountry.getCities().add("Salzburg");
+		tAddress.setCountry(tCountry);
+		tPerson.setAddress(tAddress);
+
+		IObservableList observableList = ECViewModelBindable.observeList(tList,
+				ECViewModelBindable.getFeaturePath(
+						"tObject.address.country.cities", tList.eClass(),
+						tPerson.eClass()));
+		final int[] counter = new int[1];
+		observableList.addListChangeListener(new IListChangeListener() {
+			@Override
+			public void handleListChange(ListChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+
+		tList.setTObject(tPerson);
+		assertEquals(1, counter[0]);
+
+		TPerson tPerson2 = factory.createTPerson();
+		TAddress tAddress2 = factory.createTAddress();
+		TCountry tCountry2 = factory.createTCountry();
+		tCountry2.setIsoCode("AT");
+		tCountry2.getCities().add("Gross");
+		tCountry2.getCities().add("Klein");
+		tAddress2.setCountry(tCountry2);
+		tPerson2.setAddress(tAddress2);
+		tList.setTObject(tPerson2);
+		assertEquals(2, counter[0]);
+
+		TCountry tCountry3 = factory.createTCountry();
+		tCountry3.setIsoCode("DE");
+		tAddress2.setCountry(tCountry3);
+		assertEquals(3, counter[0]);
+
+		tCountry3.getCities().add("Klein");
+		assertEquals(4, counter[0]);
+	}
+
+	@SuppressWarnings("restriction")
+	@Test
+	public void test_Bean_list_binding() {
+		BPerson bPerson = BPerson.newInstance("AT");
+		bPerson.getAddress().getCountry().getCities().add("Vienna");
+		bPerson.getAddress().getCountry().getCities().add("Graz");
+		bPerson.getAddress().getCountry().getCities().add("Salzburg");
+
+		IObservableValue observableValue = ECViewModelBindable.observeValue(
+				tList, "tObject.address.country.isoCode", BPerson.class, null);
+		final int[] counter = new int[1];
+		observableValue.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+
+		tList.setTObject(bPerson);
+		assertEquals(1, counter[0]);
+
+		BPerson bPerson2 = BPerson.newInstance("AT");
+		bPerson2.getAddress().getCountry().getCities().add("Gross");
+		bPerson2.getAddress().getCountry().getCities().add("Klein");
+
+		tList.setTObject(bPerson2);
+		assertEquals(2, counter[0]);
+
+		bPerson2.getAddress().getCountry().setIsoCode("DE");
+		assertEquals(3, counter[0]);
+		
+		
+	}
+
+	@SuppressWarnings("restriction")
+	@Test
+	public void test_Pojo_list_binding() {
+		PPerson pPerson = PPerson.newInstance("AT");
+		pPerson.getAddress().getCountry().getCities().add("Vienna");
+		pPerson.getAddress().getCountry().getCities().add("Graz");
+		pPerson.getAddress().getCountry().getCities().add("Salzburg");
+
+		IObservableValue observableValue = ECViewModelBindable.observeValue(
+				tList, "tObject.address.country.isoCode", BPerson.class, null);
+		final int[] counter = new int[1];
+		observableValue.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+
+		tList.setTObject(pPerson);
+		assertEquals(1, counter[0]);
+
+		PPerson pPerson2 = PPerson.newInstance("AT");
+		pPerson2.getAddress().getCountry().getCities().add("Gross");
+		pPerson2.getAddress().getCountry().getCities().add("Klein");
+
+		tList.setTObject(pPerson2);
+		assertEquals(2, counter[0]);
+
+		// POJO does not send notification -> no property change support
+		pPerson2.getAddress().getCountry().setIsoCode("DE");
+		assertEquals(2, counter[0]);
+	}
+
+	private static class TestRealm extends Realm {
+
+		private TestRealm() {
+			setDefault(this);
+		}
+
+		public boolean isCurrent() {
+			return true;
+		}
+
+		public void asyncExec(final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+
+		public void timerExec(int milliseconds, final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/ECViewModelValueBindableTests.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/ECViewModelValueBindableTests.java
new file mode 100644
index 0000000..d1e7cf2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/ECViewModelValueBindableTests.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.osbp.ecview.core.databinding.emf.model.ECViewModelBindable;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.BPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelFactory;
+import org.eclipse.osbp.ecview.core.databinding.tests.pojo.model.PPerson;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ECViewModelValueBindableTests {
+
+	private TestmodelFactory factory = TestmodelFactory.eINSTANCE;
+	private TList tList;
+
+	@Before
+	public void setup() {
+		new TestRealm();
+		tList = factory.createTList();
+
+	}
+
+	@SuppressWarnings("restriction")
+	@Test
+	public void test_EMF_binding() {
+		TPerson tPerson = factory.createTPerson();
+		TAddress tAddress = factory.createTAddress();
+		TCountry tCountry = factory.createTCountry();
+		tCountry.setIsoCode("AT");
+		tAddress.setCountry(tCountry);
+		tPerson.setAddress(tAddress);
+
+		IObservableValue observableValue = ECViewModelBindable.observeValue(
+				tList, ECViewModelBindable.getFeaturePath(
+						"tObject.address.country.isoCode", tList.eClass(),
+						tPerson.eClass()));
+		final int[] counter = new int[1];
+		observableValue.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+
+		tList.setTObject(tPerson);
+		assertEquals(1, counter[0]);
+
+		TPerson tPerson2 = factory.createTPerson();
+		TAddress tAddress2 = factory.createTAddress();
+		TCountry tCountry2 = factory.createTCountry();
+		tCountry2.setIsoCode("AT");
+		tAddress2.setCountry(tCountry2);
+		tPerson2.setAddress(tAddress2);
+		tList.setTObject(tPerson2);
+		assertEquals(2, counter[0]);
+
+		TCountry tCountry3 = factory.createTCountry();
+		tCountry3.setIsoCode("DE");
+		tAddress2.setCountry(tCountry3);
+		assertEquals(3, counter[0]);
+	}
+
+	@SuppressWarnings("restriction")
+	@Test
+	public void test_Bean_binding() {
+		BPerson bPerson = BPerson.newInstance("AT");
+
+		IObservableValue observableValue = ECViewModelBindable.observeValue(
+				tList, "tObject.address.country.isoCode", BPerson.class, null);
+		final int[] counter = new int[1];
+		observableValue.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+
+		tList.setTObject(bPerson);
+		assertEquals(1, counter[0]);
+
+		BPerson bPerson2 = BPerson.newInstance("AT");
+
+		tList.setTObject(bPerson2);
+		assertEquals(2, counter[0]);
+
+		bPerson2.getAddress().getCountry().setIsoCode("DE");
+		assertEquals(3, counter[0]);
+	}
+
+	@SuppressWarnings("restriction")
+	@Test
+	public void test_Pojo_binding() {
+		PPerson pPerson = PPerson.newInstance("AT");
+
+		IObservableValue observableValue = ECViewModelBindable.observeValue(
+				tList, "tObject.address.country.isoCode", PPerson.class, null);
+		final int[] counter = new int[1];
+		observableValue.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				counter[0] = counter[0] + 1;
+			}
+		});
+
+		tList.setTObject(pPerson);
+		assertEquals(1, counter[0]);
+
+		PPerson pPerson2 = PPerson.newInstance("AT");
+
+		tList.setTObject(pPerson2);
+		assertEquals(2, counter[0]);
+
+		// POJO does not send notification -> no property change support
+		pPerson2.getAddress().getCountry().setIsoCode("DE");
+		assertEquals(2, counter[0]);
+	}
+
+	private static class TestRealm extends Realm {
+
+		private TestRealm() {
+			setDefault(this);
+		}
+
+		public boolean isCurrent() {
+			return true;
+		}
+
+		public void asyncExec(final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+
+		public void timerExec(int milliseconds, final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/EMFBindingDelegateTest.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/EMFBindingDelegateTest.java
new file mode 100644
index 0000000..b53d5eb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/EMFBindingDelegateTest.java
@@ -0,0 +1,224 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests;
+
+import static org.junit.Assert.fail;
+
+import java.net.URI;
+
+import junit.framework.Assert;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.databinding.emf.context.ContextEMFBindingDelegate;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelFactory;
+import org.junit.Before;
+import org.junit.Test;
+
+@SuppressWarnings("restriction")
+public class EMFBindingDelegateTest {
+
+	private TestmodelFactory factory = TestmodelFactory.eINSTANCE;
+	private boolean changed;
+	private ContextEMFBindingDelegate binder;
+	private IViewContext context;
+
+	@Before
+	public void setup() {
+		new TestRealm();
+		binder = new ContextEMFBindingDelegate();
+		context = new TestViewContext();
+	}
+
+	/**
+	 * Tests the binding of values.
+	 */
+	@Test
+	public void test_bindValue() {
+		TPerson person = newPerson("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(Realm.getDefault(),
+				context, URI.create("view://bean/input#value"));
+
+		value.getValue();
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		context.getBeanSlot("input").setValue(newPerson("EN"));
+		Assert.assertTrue(changed);
+	}
+
+	/**
+	 * Tests what happens if a binding is done, but no bean slot was prepared so
+	 * far.
+	 */
+	@Test
+	public void test_bindValue_NoSlotAvailable() {
+		try {
+			binder.observeValue(context, URI.create("view://bean/input#value"));
+		} catch (IllegalArgumentException e) {
+		}
+	}
+
+	/**
+	 * Test changing the bean in the slot.
+	 */
+	@Test
+	public void test_bindValue_nested() {
+		TPerson person = newPerson("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+		context.setBean("input", newPerson("DE"));
+		Assert.assertTrue(changed);
+	}
+
+	/**
+	 * Test changing the bean in the slot.
+	 */
+	@Test
+	public void test_bindValue_nested2() {
+		TPerson person = newPerson("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address.country.isoCode"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		person.getAddress().getCountry().setIsoCode("DE");
+		Assert.assertTrue(changed);
+	}
+
+	/**
+	 * Tests changing the observed element.
+	 */
+	@Test
+	public void test_bindValue_nested_target() {
+		TPerson person = newPerson("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address.country.isoCode"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		person.getAddress().getCountry().setIsoCode("EN");
+		Assert.assertTrue(changed);
+	}
+
+	/**
+	 * Tests changing an object in the observer chain.
+	 */
+	@Test
+	public void test_bindValue_nested_middleOfChain() {
+		TPerson person = newPerson("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address.country.isoCode"));
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		// change the address in person
+		//
+		TAddress address = factory.createTAddress();
+		TCountry country = factory.createTCountry();
+		country.setIsoCode("EN");
+		address.setCountry(country);
+
+		person.setAddress(address);
+		Assert.assertTrue(changed);
+	}
+	
+	public void test_bindList(){
+		fail("Implement!");
+	}
+	
+	public void test_bindList_nested(){
+		fail("Implement!");
+	}
+
+	/**
+	 * Creates a new instance of person. All references are properly setup and
+	 * the isoCode of the country is set to the given value.
+	 * 
+	 * @param isoCode
+	 * @return
+	 */
+	public TPerson newPerson(String isoCode) {
+		TPerson person = factory.createTPerson();
+		TAddress address = factory.createTAddress();
+		person.setAddress(address);
+		TCountry country = factory.createTCountry();
+		country.setIsoCode(isoCode);
+		address.setCountry(country);
+		return person;
+	}
+
+	private static class TestRealm extends Realm {
+
+		private TestRealm() {
+			setDefault(this);
+		}
+
+		public boolean isCurrent() {
+			return true;
+		}
+
+		public void asyncExec(final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+
+		public void timerExec(int milliseconds, final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/PojoBindingDelegateTest.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/PojoBindingDelegateTest.java
new file mode 100644
index 0000000..afd6bd0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/PojoBindingDelegateTest.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.net.URI;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.databinding.beans.context.ContextPojoBindingDelegate;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.BAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.BCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.BPerson;
+import org.junit.Before;
+import org.junit.Test;
+
+@SuppressWarnings("restriction")
+public class PojoBindingDelegateTest {
+
+	private boolean changed;
+	private ContextPojoBindingDelegate binder;
+	private IViewContext context;
+
+	@Before
+	public void setup() {
+		new TestRealm();
+		binder = new ContextPojoBindingDelegate();
+		context = new TestViewContext();
+	}
+
+	/**
+	 * Tests the binding of bean slot.
+	 */
+	@Test
+	public void test_bindSlot() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input"));
+		assertNull(value);
+	}
+
+	/**
+	 * Tests the binding of values.
+	 */
+	@Test
+	public void test_bindValue() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value"));
+		assertSame(person, value.getValue());
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		context.getBeanSlot("input").setValue(new BPerson());
+		assertTrue(changed);
+	}
+
+	/**
+	 * Tests what happens if a binding is done, but no bean slot was prepared so
+	 * far.
+	 */
+	@SuppressWarnings("unused")
+	@Test
+	public void test_bindValue_NoSlotAvailable() {
+		try {
+			IObservableValue value = binder.observeValue(context,
+					URI.create("view://bean/input#value"));
+			fail();
+		} catch (IllegalArgumentException e) {
+		}
+	}
+
+	/**
+	 * Test changing the bean in the slot.
+	 */
+	@Test
+	public void test_bindValue_nested() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address"));
+		assertSame(person.getAddress(), value.getValue());
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		context.setBean("input", new BPerson());
+
+		assertTrue(changed);
+	}
+
+	/**
+	 * Tests changing the observed element.
+	 */
+	@Test
+	public void test_bindValue_nested_target() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address.country.isoCode"));
+		assertSame("AT", value.getValue());
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		person.getAddress().getCountry().setIsoCode("EN");
+		assertFalse(changed);
+	}
+
+	/**
+	 * Tests changing an object in the observer chain.
+	 */
+	@Test
+	public void test_bindValue_nested_middleOfChain() {
+		BPerson person = BPerson.newInstance("AT");
+		context.setBean("input", person);
+
+		IObservableValue value = binder.observeValue(context,
+				URI.create("view://bean/input#value.address.country.isoCode"));
+		assertSame("AT", value.getValue());
+
+		changed = false;
+		value.addValueChangeListener(new IValueChangeListener() {
+			@Override
+			public void handleValueChange(ValueChangeEvent event) {
+				changed = true;
+			}
+		});
+
+		// change the address in person
+		//
+		BAddress address = new BAddress();
+		BCountry country = new BCountry();
+		country.setIsoCode("EN");
+		address.setCountry(country);
+
+		person.setAddress(address);
+		assertFalse(changed);
+	}
+
+	/**
+	 * Tests bind value of nested property
+	 */
+	@Test
+	public void test_bindValue_nested_property() {
+		BPerson person = BPerson.newInstance("AT");
+		IObservableValue value = BeanProperties.value(BPerson.class,
+				"address.country").observe(person);
+		assertSame(person.getAddress().getCountry(), value.getValue());
+
+		BCountry other = new BCountry();
+		other.setIsoCode("Other");
+		person.getAddress().setCountry(other);
+		assertSame(person.getAddress().getCountry(), value.getValue());
+
+		BAddress address = new BAddress();
+		BCountry another = new BCountry();
+		another.setIsoCode("Another");
+		address.setCountry(another);
+		person.setAddress(address);
+		assertSame(person.getAddress().getCountry(), value.getValue());
+
+	}
+
+	public void test_bindList() {
+		fail("Implement!");
+	}
+
+	public void test_bindList_nested() {
+		fail("Implement!");
+	}
+
+	private static class TestRealm extends Realm {
+
+		private TestRealm() {
+			setDefault(this);
+		}
+
+		public boolean isCurrent() {
+			return true;
+		}
+
+		public void asyncExec(final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+
+		public void timerExec(int milliseconds, final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/SetToListAdapterTest.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/SetToListAdapterTest.java
new file mode 100644
index 0000000..f616795
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/SetToListAdapterTest.java
@@ -0,0 +1,135 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.databinding.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IListChangeListener;
+import org.eclipse.core.databinding.observable.list.ListChangeEvent;
+import org.eclipse.core.databinding.observable.list.ListDiffEntry;
+import org.eclipse.core.databinding.observable.set.WritableSet;
+import org.eclipse.osbp.ecview.core.databinding.emf.common.SetToListAdapter;
+import org.junit.Before;
+import org.junit.Test;
+
+public class SetToListAdapterTest {
+
+	@Before
+	public void setup() {
+		new TestRealm();
+	}
+
+	@Test
+	public void test() {
+		WritableSet set = new WritableSet(TestRealm.getDefault());
+		SetToListAdapter adapter = new SetToListAdapter(set);
+
+		ListChangeListener listener = new ListChangeListener();
+		adapter.addListChangeListener(listener);
+
+		set.add("Huhu");
+		ListDiffEntry e1 = listener.event.diff.getDifferences()[0];
+		assertTrue(e1.isAddition());
+		assertEquals("Huhu", e1.getElement());
+		assertEquals(1, adapter.size());
+
+		set.add("Haha");
+		e1 = listener.event.diff.getDifferences()[0];
+		assertTrue(e1.isAddition());
+		assertEquals("Haha", e1.getElement());
+		assertEquals(1, e1.getPosition());
+		assertEquals(2, adapter.size());
+
+		set.add("Blabla");
+		e1 = listener.event.diff.getDifferences()[0];
+		assertTrue(e1.isAddition());
+		assertEquals("Blabla", e1.getElement());
+		assertEquals(2, e1.getPosition());
+		assertEquals(3, adapter.size());
+
+		List<String> added = Arrays.asList("Blublu", "Foo", "Bar");
+		set.addAll(added);
+		e1 = listener.event.diff.getDifferences()[0];
+		ListDiffEntry e2 = listener.event.diff.getDifferences()[1];
+		ListDiffEntry e3 = listener.event.diff.getDifferences()[2];
+		assertEquals(3, listener.event.diff.getDifferences().length);
+		assertEquals(6, adapter.size());
+		assertTrue(e1.isAddition());
+		assertTrue(e2.isAddition());
+		assertTrue(e3.isAddition());
+		assertTrue(added.contains(e1.getElement()));
+		assertTrue(added.contains(e2.getElement()));
+		assertTrue(added.contains(e3.getElement()));
+		assertTrue(e1.getPosition() >= 3 && e1.getPosition() <= 5);
+		assertTrue(e2.getPosition() >= 3 && e1.getPosition() <= 5);
+		assertTrue(e3.getPosition() >= 3 && e1.getPosition() <= 5);
+
+		set.remove("Haha");
+		e1 = listener.event.diff.getDifferences()[0];
+		assertTrue(!e1.isAddition());
+		assertEquals("Haha", e1.getElement());
+		assertEquals(1, e1.getPosition());
+		assertEquals(5, adapter.size());
+		
+		set.removeAll(added);
+		e1 = listener.event.diff.getDifferences()[0];
+		e2 = listener.event.diff.getDifferences()[1];
+		e3 = listener.event.diff.getDifferences()[2];
+		assertEquals(3, listener.event.diff.getDifferences().length);
+		assertEquals(2, adapter.size());
+		assertTrue(!e1.isAddition());
+		assertTrue(!e2.isAddition());
+		assertTrue(!e3.isAddition());
+		assertTrue(added.contains(e1.getElement()));
+		assertTrue(added.contains(e2.getElement()));
+		assertTrue(added.contains(e3.getElement()));
+		assertTrue(e1.getPosition() >= 2 && e1.getPosition() <= 4);
+		assertTrue(e2.getPosition() >= 2 && e1.getPosition() <= 4);
+		assertTrue(e3.getPosition() >= 2 && e1.getPosition() <= 4);
+		
+	}
+
+	private static class ListChangeListener implements IListChangeListener {
+
+		private ListChangeEvent event;
+
+		@Override
+		public void handleListChange(ListChangeEvent event) {
+			this.event = event;
+		}
+
+	}
+
+	private static class TestRealm extends Realm {
+
+		private TestRealm() {
+			setDefault(this);
+		}
+
+		public boolean isCurrent() {
+			return true;
+		}
+
+		public void asyncExec(final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+
+		public void timerExec(int milliseconds, final Runnable runnable) {
+			throw new UnsupportedOperationException("Not a valid call!");
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/TestBindBeanListToTarget.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/TestBindBeanListToTarget.java
new file mode 100644
index 0000000..f2637db
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/TestBindBeanListToTarget.java
@@ -0,0 +1,121 @@
+package org.eclipse.osbp.ecview.core.databinding.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.IBeanListProperty;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.ChildDto;
+import org.eclipse.osbp.ecview.core.databinding.tests.bean.model.ParentDto;
+import org.junit.Test;
+
+@SuppressWarnings({ "unchecked", "unused" })
+public class TestBindBeanListToTarget {
+
+	@Test
+	public void test__2() {
+		new MyRealm();
+
+		ParentDto p = new ParentDto();
+		ChildDto c1 = new ChildDto();
+		ChildDto c2 = new ChildDto();
+
+		p.addToChildren(c1);
+		p.addToChildren(c2);
+
+		IBeanListProperty prop = BeanProperties.list(ParentDto.class,
+				"children", ChildDto.class);
+		IObservableList pObservable = prop.observe(p);
+
+		WritableList target = new WritableList();
+		new DataBindingContext().bindList(target, pObservable);
+
+		assertEquals(p.getChildren().size(), target.size());
+
+		target.add(new ChildDto());
+		assertEquals(p.getChildren().size(), target.size());
+
+		p.addToChildren(new ChildDto());
+		assertEquals(p.getChildren().size(), target.size());
+
+		p.removeFromChildren(p.getChildren().get(0));
+		assertEquals(p.getChildren().size(), target.size());
+
+		target.remove(p.getChildren().get(0));
+		assertEquals(p.getChildren().size(), target.size());
+	}
+
+	private static class MyRealm extends Realm {
+
+		public MyRealm() {
+			setDefault(this);
+		}
+
+		@Override
+		public boolean isCurrent() {
+			return true;
+		}
+
+	}
+
+	private static class Bean {
+
+		private List<String> writableList = new WritableList(new ArrayList<>(),
+				String.class);
+
+		public List<String> getWritableList() {
+			return writableList;
+		}
+
+		public void setWritableList(List<String> writableList) {
+			this.writableList = writableList;
+		}
+
+	}
+
+	private static class BeanPlus {
+
+		private PropertyChangeSupport pcs = new PropertyChangeSupport(this);
+
+		private List<String> writableList = new WritableList(new ArrayList<>(),
+				String.class);
+
+		public List<String> getWritableList() {
+			return writableList;
+		}
+
+		public void setWritableList(List<String> writableList) {
+			List<String> old = this.writableList;
+			this.writableList = writableList;
+			pcs.firePropertyChange("writableList", old, this.writableList);
+		}
+
+		public void addPropertyChangeListener(PropertyChangeListener listener) {
+			pcs.addPropertyChangeListener(listener);
+		}
+
+		public void removePropertyChangeListener(PropertyChangeListener listener) {
+			pcs.removePropertyChangeListener(listener);
+		}
+
+		public void addPropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			pcs.addPropertyChangeListener(propertyName, listener);
+		}
+
+		public void removePropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			pcs.removePropertyChangeListener(propertyName, listener);
+		}
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/TestViewContext.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/TestViewContext.java
new file mode 100644
index 0000000..7089115
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/TestViewContext.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests;
+
+public class TestViewContext extends
+		org.eclipse.osbp.ecview.core.common.context.ViewContext {
+ 
+	public TestViewContext() {
+		
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/AbstractBean.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/AbstractBean.java
new file mode 100644
index 0000000..6d2ddf1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/AbstractBean.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.bean.model;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+/**
+ * Default implementation of value bean. Offerns {@link PropertyChangeSupport}.
+ */
+public class AbstractBean {
+	private final PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	public AbstractBean() {
+	}
+
+	/**
+	 * Adds the given property change listener to the change support.
+	 * 
+	 * @param listener
+	 *            Listener to be added
+	 * @see java.beans.PropertyChangeSupport#addPropertyChangeListener(java.beans.PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(listener);
+	}
+
+	/**
+	 * Adds the given property change listener to the change support.
+	 * 
+	 * @param property
+	 *            Name of the property
+	 * @param listener
+	 *            Listener to be added
+	 * @see java.beans.PropertyChangeSupport#addPropertyChangeListener(java.lang.String,
+	 *      java.beans.PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(String property,
+			PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(property, listener);
+	}
+
+	/**
+	 * Removes the given property change listener from the change support.
+	 * 
+	 * @param listener
+	 *            Listener to be removed
+	 * @see java.beans.PropertyChangeSupport#removePropertyChangeListener(java.beans.PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(listener);
+	}
+
+	/**
+	 * Removes the given property change listener from the change support.
+	 * 
+	 * @param property
+	 *            Name of the property
+	 * @param listener
+	 *            Listener to be removed
+	 * @see java.beans.PropertyChangeSupport#removePropertyChangeListener(java.lang.String,
+	 *      java.beans.PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(String property,
+			PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(property, listener);
+	}
+
+	/**
+	 * Fires the property changed event.
+	 * 
+	 * @param property
+	 *            Name of the property
+	 * @param oldValue
+	 *            The old value
+	 * @param newValue
+	 *            The new value
+	 * @see java.beans.PropertyChangeSupport#firePropertyChange(String, Object,
+	 *      Object)
+	 */
+	protected void firePropertyChanged(String property, Object oldValue,
+			Object newValue) {
+		changeSupport.firePropertyChange(property, oldValue, newValue);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/BAddress.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/BAddress.java
new file mode 100644
index 0000000..058c5f8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/BAddress.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.bean.model;
+
+public class BAddress extends AbstractBean {
+
+	private BCountry country;
+
+	/**
+	 * @return the country
+	 */
+	public BCountry getCountry() {
+		return country;
+	}
+
+	/**
+	 * @param country
+	 *            the country to set
+	 */
+	public void setCountry(BCountry country) {
+		firePropertyChanged("country", this.country, this.country = country);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/BCountry.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/BCountry.java
new file mode 100644
index 0000000..cc749aa
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/BCountry.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.bean.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BCountry extends AbstractBean {
+
+	private String isoCode;
+	private List<String> cities = new ArrayList<String>();
+
+	/**
+	 * @return the isoCode
+	 */
+	public String getIsoCode() {
+		return isoCode;
+	}
+
+	/**
+	 * @param isoCode
+	 *            the isoCode to set
+	 */
+	public void setIsoCode(String isoCode) {
+		firePropertyChanged("isoCode", this.isoCode, this.isoCode = isoCode);
+	}
+
+	public List<String> getCities() {
+		return cities;
+	}
+
+	public void setCities(List<String> cities) {
+		this.cities = cities;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/BPerson.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/BPerson.java
new file mode 100644
index 0000000..c6adc83
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/BPerson.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.bean.model;
+
+public class BPerson extends AbstractBean {
+
+	private BAddress address;
+
+	/**
+	 * @return the address
+	 */
+	public BAddress getAddress() {
+		return address;
+	}
+
+	/**
+	 * @param address
+	 *            the address to set
+	 */
+	public void setAddress(BAddress address) {
+		firePropertyChanged("address", this.address, this.address = address);
+	}
+
+	/**
+	 * Creates a new instance of person. All references are properly setup and
+	 * the isoCode of the country is set to the given value.
+	 * 
+	 * @param isoCode
+	 * @return
+	 */
+	public static BPerson newInstance(String isoCode) {
+		BPerson person = new BPerson();
+		BAddress address = new BAddress();
+		person.setAddress(address);
+		BCountry country = new BCountry();
+		country.setIsoCode(isoCode);
+		address.setCountry(country);
+		return person;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/ChildDto.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/ChildDto.java
new file mode 100644
index 0000000..552c084
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/ChildDto.java
@@ -0,0 +1,158 @@
+package org.eclipse.osbp.ecview.core.databinding.tests.bean.model;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
+
+@SuppressWarnings("all")
+public class ChildDto implements Serializable, PropertyChangeListener {
+	private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
+			this);
+
+	private boolean disposed;
+
+	private ParentDto parent;
+
+	/**
+	 * @return true, if the object is disposed. Disposed means, that it is
+	 *         prepared for garbage collection and may not be used anymore.
+	 *         Accessing objects that are already disposed will cause runtime
+	 *         exceptions.
+	 * 
+	 */
+	public boolean isDisposed() {
+		return this.disposed;
+	}
+
+	/**
+	 * @see PropertyChangeSupport#addPropertyChangeListener(PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(final PropertyChangeListener listener) {
+		propertyChangeSupport.addPropertyChangeListener(listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#addPropertyChangeListener(String,
+	 *      PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(final String propertyName,
+			final PropertyChangeListener listener) {
+		propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#removePropertyChangeListener(PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(
+			final PropertyChangeListener listener) {
+		propertyChangeSupport.removePropertyChangeListener(listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#removePropertyChangeListener(String,
+	 *      PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(final String propertyName,
+			final PropertyChangeListener listener) {
+		propertyChangeSupport.removePropertyChangeListener(propertyName,
+				listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#firePropertyChange(String, Object, Object)
+	 */
+	public void firePropertyChange(final String propertyName,
+			final Object oldValue, final Object newValue) {
+		propertyChangeSupport.firePropertyChange(propertyName, oldValue,
+				newValue);
+	}
+
+	/**
+	 * Checks whether the object is disposed.
+	 * 
+	 * @throws RuntimeException
+	 *             if the object is disposed.
+	 */
+	private void checkDisposed() {
+		if (isDisposed()) {
+			throw new RuntimeException("Object already disposed: " + this);
+		}
+	}
+
+	/**
+	 * Calling dispose will destroy that instance. The internal state will be
+	 * set to 'disposed' and methods of that object must not be used anymore.
+	 * Each call will result in runtime exceptions.<br/>
+	 * If this object keeps composition containments, these will be disposed
+	 * too. So the whole composition containment tree will be disposed on
+	 * calling this method.
+	 */
+	public void dispose() {
+		if (isDisposed()) {
+			return;
+		}
+		firePropertyChange("disposed", this.disposed, this.disposed = true);
+	}
+
+	/**
+	 * Installs lazy collection resolving for entity {@link } to the dto
+	 * {@link ChildDto}.
+	 * 
+	 */
+	protected void installLazyCollections() {
+
+	}
+
+	/**
+	 * Returns the parent property or <code>null</code> if not present.
+	 */
+	public ParentDto getParent() {
+		return this.parent;
+	}
+
+/**
+   * Sets the <code>parent</code> property to this instance.
+   * Since the reference has an opposite reference, the opposite <code>ParentDto#
+   * children</code> of the <code>parent</code> will be handled automatically and no 
+   * further coding is required to keep them in sync.<p>
+   * See {@link ParentDto#setChildren(ParentDto)
+   * 
+   * @param parent - the property
+   * @throws RuntimeException if instance is <code>disposed</code>
+   * 
+   */
+	public void setParent(final ParentDto parent) {
+		checkDisposed();
+		if (this.parent != null) {
+			this.parent.internalRemoveFromChildren(this);
+		}
+
+		internalSetParent(parent);
+
+		if (this.parent != null) {
+			this.parent.internalAddToChildren(this);
+		}
+	}
+
+	/**
+	 * For internal use only!
+	 */
+	void internalSetParent(final ParentDto parent) {
+		firePropertyChange("parent", this.parent, this.parent = parent);
+	}
+
+	public ChildDto createDto() {
+		return new ChildDto();
+	}
+
+	public void propertyChange(final java.beans.PropertyChangeEvent event) {
+		Object source = event.getSource();
+
+		// forward the event from embeddable beans to all listeners. So the
+		// parent of the embeddable
+		// bean will become notified and its dirty state can be handled properly
+		{
+			// no super class available to forward event
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/ParentDto.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/ParentDto.java
new file mode 100644
index 0000000..3f6cd55
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/bean/model/ParentDto.java
@@ -0,0 +1,239 @@
+package org.eclipse.osbp.ecview.core.databinding.tests.bean.model;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+@SuppressWarnings("all")
+public class ParentDto implements Serializable, PropertyChangeListener {
+	private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
+
+	private boolean disposed;
+
+	private List<ChildDto> children;
+
+	/**
+	 * @return true, if the object is disposed. Disposed means, that it is
+	 *         prepared for garbage collection and may not be used anymore.
+	 *         Accessing objects that are already disposed will cause runtime
+	 *         exceptions.
+	 * 
+	 */
+	public boolean isDisposed() {
+		return this.disposed;
+	}
+
+	/**
+	 * @see PropertyChangeSupport#addPropertyChangeListener(PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(final PropertyChangeListener listener) {
+		propertyChangeSupport.addPropertyChangeListener(listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#addPropertyChangeListener(String,
+	 *      PropertyChangeListener)
+	 */
+	public void addPropertyChangeListener(final String propertyName, final PropertyChangeListener listener) {
+		propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#removePropertyChangeListener(PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(final PropertyChangeListener listener) {
+		propertyChangeSupport.removePropertyChangeListener(listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#removePropertyChangeListener(String,
+	 *      PropertyChangeListener)
+	 */
+	public void removePropertyChangeListener(final String propertyName, final PropertyChangeListener listener) {
+		propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#firePropertyChange(String, Object, Object)
+	 */
+	public void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) {
+		propertyChangeSupport.firePropertyChange(propertyName, oldValue, newValue);
+	}
+
+	/**
+	 * Checks whether the object is disposed.
+	 * 
+	 * @throws RuntimeException
+	 *             if the object is disposed.
+	 */
+	private void checkDisposed() {
+		if (isDisposed()) {
+			throw new RuntimeException("Object already disposed: " + this);
+		}
+	}
+
+	/**
+	 * Calling dispose will destroy that instance. The internal state will be
+	 * set to 'disposed' and methods of that object must not be used anymore.
+	 * Each call will result in runtime exceptions.<br/>
+	 * If this object keeps composition containments, these will be disposed
+	 * too. So the whole composition containment tree will be disposed on
+	 * calling this method.
+	 */
+	public void dispose() {
+		if (isDisposed()) {
+			return;
+		}
+		try {
+			// Dispose all the composition references.
+			if (this.children != null) {
+				for (ChildDto childDto : this.children) {
+					childDto.dispose();
+				}
+				this.children = null;
+			}
+
+		} finally {
+			firePropertyChange("disposed", this.disposed, this.disposed = true);
+		}
+
+	}
+
+	/**
+	 * Installs lazy collection resolving for entity {@link } to the dto
+	 * {@link ParentDto}.
+	 * 
+	 */
+	protected void installLazyCollections() {
+
+	}
+
+	/**
+	 * Returns an unmodifiable list of children.
+	 */
+	public List<ChildDto> getChildren() {
+		return Collections.unmodifiableList(internalGetChildren());
+	}
+
+	/**
+	 * Returns the list of <code>ChildDto</code>s thereby lazy initializing it.
+	 * For internal use only!
+	 * 
+	 * @return list - the resulting list
+	 * 
+	 */
+	private List<ChildDto> internalGetChildren() {
+		if (this.children == null) {
+			this.children = new java.util.ArrayList<ChildDto>();
+		}
+		return this.children;
+	}
+
+	/**
+	 * Adds the given childDto to this object.
+	 * <p>
+	 * Since the reference is a composition reference, the opposite reference
+	 * <code>ChildDto#parent</code> of the <code>childDto</code> will be handled
+	 * automatically and no further coding is required to keep them in sync.
+	 * <p>
+	 * See {@link ChildDto#setParent(ChildDto)}.
+	 * 
+	 * @param childDto
+	 *            - the property
+	 * @throws RuntimeException
+	 *             if instance is <code>disposed</code>
+	 * 
+	 */
+	public void addToChildren(final ChildDto childDto) {
+		checkDisposed();
+
+		childDto.setParent(this);
+	}
+
+	/**
+	 * Removes the given childDto from this object.
+	 * <p>
+	 * Since the reference is a cascading reference, the opposite reference
+	 * (ChildDto.parent) of the childDto will be handled automatically and no
+	 * further coding is required to keep them in sync. See
+	 * {@link ChildDto#setParent(ChildDto)}.
+	 * 
+	 * @param childDto
+	 *            - the property
+	 * @throws RuntimeException
+	 *             if instance is <code>disposed</code>
+	 * 
+	 */
+	public void removeFromChildren(final ChildDto childDto) {
+		checkDisposed();
+
+		childDto.setParent(null);
+	}
+
+	/**
+	 * For internal use only!
+	 */
+	void internalAddToChildren(final ChildDto childDto) {
+		List<ChildDto> oldList = new ArrayList<>(internalGetChildren());
+		internalGetChildren().add(childDto);
+		
+		propertyChangeSupport.firePropertyChange("children", oldList, internalGetChildren());
+	}
+
+	/**
+	 * For internal use only!
+	 */
+	void internalRemoveFromChildren(final ChildDto childDto) {
+		List<ChildDto> oldList = new ArrayList<>(internalGetChildren());
+		internalGetChildren().remove(childDto);
+		
+		propertyChangeSupport.firePropertyChange("children", oldList, internalGetChildren());
+	}
+
+	/**
+	 * Sets the <code>children</code> property to this instance. Since the
+	 * reference has an opposite reference, the opposite <code>ChildDto#
+	 * parent</code> of the <code>children</code> will be handled automatically
+	 * and no further coding is required to keep them in sync.
+	 * <p>
+	 * See {@link ChildDto#setParent(ChildDto)
+	 * 
+	 * @param children
+	 *            - the property
+	 * @throws RuntimeException
+	 *             if instance is <code>disposed</code>
+	 * 
+	 */
+	public void setChildren(final List<ChildDto> children) {
+		checkDisposed();
+		for (ChildDto dto : internalGetChildren().toArray(new ChildDto[this.children.size()])) {
+			removeFromChildren(dto);
+		}
+
+		if (children == null) {
+			return;
+		}
+
+		for (ChildDto dto : children) {
+			addToChildren(dto);
+		}
+	}
+
+	public ParentDto createDto() {
+		return new ParentDto();
+	}
+
+	public void propertyChange(final java.beans.PropertyChangeEvent event) {
+		Object source = event.getSource();
+
+		// forward the event from embeddable beans to all listeners. So the
+		// parent of the embeddable
+		// bean will become notified and its dirty state can be handled properly
+		{
+			// no super class available to forward event
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TAddress.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TAddress.java
new file mode 100644
index 0000000..be15b17
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TAddress.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TAddress</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress#getCountry <em>Country</em>}</li>
+ * </ul>
+ * 
+ *
+ * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#getTAddress()
+ * @model
+ * @generated
+ */
+public interface TAddress extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Country</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Country</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Country</em>' reference.
+	 * @see #setCountry(TCountry)
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#getTAddress_Country()
+	 * @model
+	 * @generated
+	 */
+	TCountry getCountry();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress#getCountry <em>Country</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Country</em>' reference.
+	 * @see #getCountry()
+	 * @generated
+	 */
+	void setCountry(TCountry value);
+
+} // TAddress
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TCountry.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TCountry.java
new file mode 100644
index 0000000..9517528
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TCountry.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TCountry</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry#getIsoCode <em>Iso Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry#getCities <em>Cities</em>}</li>
+ * </ul>
+ * 
+ *
+ * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#getTCountry()
+ * @model
+ * @generated
+ */
+public interface TCountry extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Iso Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Iso Code</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Iso Code</em>' attribute.
+	 * @see #setIsoCode(String)
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#getTCountry_IsoCode()
+	 * @model
+	 * @generated
+	 */
+	String getIsoCode();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry#getIsoCode <em>Iso Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Iso Code</em>' attribute.
+	 * @see #getIsoCode()
+	 * @generated
+	 */
+	void setIsoCode(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Cities</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cities</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cities</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#getTCountry_Cities()
+	 * @model
+	 * @generated
+	 */
+	EList<String> getCities();
+
+} // TCountry
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TList.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TList.java
new file mode 100644
index 0000000..1590c58
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TList.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TList</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList#getTObject <em>TObject</em>}</li>
+ * </ul>
+ * 
+ *
+ * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#getTList()
+ * @model
+ * @generated
+ */
+public interface TList extends EObject {
+	/**
+	 * Returns the value of the '<em><b>TObject</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>TObject</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>TObject</em>' attribute.
+	 * @see #setTObject(Object)
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#getTList_TObject()
+	 * @model
+	 * @generated
+	 */
+	Object getTObject();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList#getTObject <em>TObject</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>TObject</em>' attribute.
+	 * @see #getTObject()
+	 * @generated
+	 */
+	void setTObject(Object value);
+
+} // TList
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TPerson.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TPerson.java
new file mode 100644
index 0000000..152f18e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TPerson.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TPerson</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson#getAddress <em>Address</em>}</li>
+ * </ul>
+ * 
+ *
+ * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#getTPerson()
+ * @model
+ * @generated
+ */
+public interface TPerson extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Address</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Address</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Address</em>' reference.
+	 * @see #setAddress(TAddress)
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#getTPerson_Address()
+	 * @model
+	 * @generated
+	 */
+	TAddress getAddress();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson#getAddress <em>Address</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Address</em>' reference.
+	 * @see #getAddress()
+	 * @generated
+	 */
+	void setAddress(TAddress value);
+
+} // TPerson
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TestmodelFactory.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TestmodelFactory.java
new file mode 100644
index 0000000..3bcb196
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TestmodelFactory.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage
+ * @generated
+ */
+public interface TestmodelFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	TestmodelFactory eINSTANCE = org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>TPerson</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>TPerson</em>'.
+	 * @generated
+	 */
+	TPerson createTPerson();
+
+	/**
+	 * Returns a new object of class '<em>TAddress</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>TAddress</em>'.
+	 * @generated
+	 */
+	TAddress createTAddress();
+
+	/**
+	 * Returns a new object of class '<em>TCountry</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>TCountry</em>'.
+	 * @generated
+	 */
+	TCountry createTCountry();
+
+	/**
+	 * Returns a new object of class '<em>TList</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>TList</em>'.
+	 * @generated
+	 */
+	TList createTList();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	TestmodelPackage getTestmodelPackage();
+
+} //TestmodelFactory
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TestmodelPackage.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TestmodelPackage.java
new file mode 100644
index 0000000..42c97c5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/TestmodelPackage.java
@@ -0,0 +1,426 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface TestmodelPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "model";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://eclipse.org/emf/ecp/ecview/databinding/emf/test";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "model";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	TestmodelPackage eINSTANCE = org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TPersonImpl <em>TPerson</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TPersonImpl
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelPackageImpl#getTPerson()
+	 * @generated
+	 */
+	int TPERSON = 0;
+
+	/**
+	 * The feature id for the '<em><b>Address</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TPERSON__ADDRESS = 0;
+
+	/**
+	 * The number of structural features of the '<em>TPerson</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TPERSON_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>TPerson</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TPERSON_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TAddressImpl <em>TAddress</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TAddressImpl
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelPackageImpl#getTAddress()
+	 * @generated
+	 */
+	int TADDRESS = 1;
+
+	/**
+	 * The feature id for the '<em><b>Country</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TADDRESS__COUNTRY = 0;
+
+	/**
+	 * The number of structural features of the '<em>TAddress</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TADDRESS_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>TAddress</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TADDRESS_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TCountryImpl <em>TCountry</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TCountryImpl
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelPackageImpl#getTCountry()
+	 * @generated
+	 */
+	int TCOUNTRY = 2;
+
+	/**
+	 * The feature id for the '<em><b>Iso Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TCOUNTRY__ISO_CODE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Cities</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TCOUNTRY__CITIES = 1;
+
+	/**
+	 * The number of structural features of the '<em>TCountry</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TCOUNTRY_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>TCountry</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TCOUNTRY_OPERATION_COUNT = 0;
+
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TListImpl <em>TList</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TListImpl
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelPackageImpl#getTList()
+	 * @generated
+	 */
+	int TLIST = 3;
+
+	/**
+	 * The feature id for the '<em><b>TObject</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLIST__TOBJECT = 0;
+
+	/**
+	 * The number of structural features of the '<em>TList</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLIST_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>TList</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLIST_OPERATION_COUNT = 0;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson <em>TPerson</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>TPerson</em>'.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson
+	 * @generated
+	 */
+	EClass getTPerson();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson#getAddress <em>Address</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Address</em>'.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson#getAddress()
+	 * @see #getTPerson()
+	 * @generated
+	 */
+	EReference getTPerson_Address();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress <em>TAddress</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>TAddress</em>'.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress
+	 * @generated
+	 */
+	EClass getTAddress();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress#getCountry <em>Country</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Country</em>'.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress#getCountry()
+	 * @see #getTAddress()
+	 * @generated
+	 */
+	EReference getTAddress_Country();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry <em>TCountry</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>TCountry</em>'.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry
+	 * @generated
+	 */
+	EClass getTCountry();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry#getIsoCode <em>Iso Code</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Iso Code</em>'.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry#getIsoCode()
+	 * @see #getTCountry()
+	 * @generated
+	 */
+	EAttribute getTCountry_IsoCode();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry#getCities <em>Cities</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Cities</em>'.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry#getCities()
+	 * @see #getTCountry()
+	 * @generated
+	 */
+	EAttribute getTCountry_Cities();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList <em>TList</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>TList</em>'.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList
+	 * @generated
+	 */
+	EClass getTList();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList#getTObject <em>TObject</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>TObject</em>'.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList#getTObject()
+	 * @see #getTList()
+	 * @generated
+	 */
+	EAttribute getTList_TObject();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	TestmodelFactory getTestmodelFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TPersonImpl <em>TPerson</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TPersonImpl
+		 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelPackageImpl#getTPerson()
+		 * @generated
+		 */
+		EClass TPERSON = eINSTANCE.getTPerson();
+
+		/**
+		 * The meta object literal for the '<em><b>Address</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TPERSON__ADDRESS = eINSTANCE.getTPerson_Address();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TAddressImpl <em>TAddress</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TAddressImpl
+		 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelPackageImpl#getTAddress()
+		 * @generated
+		 */
+		EClass TADDRESS = eINSTANCE.getTAddress();
+
+		/**
+		 * The meta object literal for the '<em><b>Country</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TADDRESS__COUNTRY = eINSTANCE.getTAddress_Country();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TCountryImpl <em>TCountry</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TCountryImpl
+		 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelPackageImpl#getTCountry()
+		 * @generated
+		 */
+		EClass TCOUNTRY = eINSTANCE.getTCountry();
+
+		/**
+		 * The meta object literal for the '<em><b>Iso Code</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TCOUNTRY__ISO_CODE = eINSTANCE.getTCountry_IsoCode();
+
+		/**
+		 * The meta object literal for the '<em><b>Cities</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TCOUNTRY__CITIES = eINSTANCE.getTCountry_Cities();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TListImpl <em>TList</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TListImpl
+		 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TestmodelPackageImpl#getTList()
+		 * @generated
+		 */
+		EClass TLIST = eINSTANCE.getTList();
+
+		/**
+		 * The meta object literal for the '<em><b>TObject</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TLIST__TOBJECT = eINSTANCE.getTList_TObject();
+
+	}
+
+} //TestmodelPackage
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TAddressImpl.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TAddressImpl.java
new file mode 100644
index 0000000..c44dfd7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TAddressImpl.java
@@ -0,0 +1,162 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TAddress</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TAddressImpl#getCountry <em>Country</em>}</li>
+ * </ul>
+ * 
+ *
+ * @generated
+ */
+public class TAddressImpl extends MinimalEObjectImpl.Container implements TAddress {
+	/**
+	 * The cached value of the '{@link #getCountry() <em>Country</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCountry()
+	 * @generated
+	 * @ordered
+	 */
+	protected TCountry country;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TAddressImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TestmodelPackage.Literals.TADDRESS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TCountry getCountry() {
+		if (country != null && country.eIsProxy()) {
+			InternalEObject oldCountry = (InternalEObject)country;
+			country = (TCountry)eResolveProxy(oldCountry);
+			if (country != oldCountry) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestmodelPackage.TADDRESS__COUNTRY, oldCountry, country));
+			}
+		}
+		return country;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TCountry basicGetCountry() {
+		return country;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCountry(TCountry newCountry) {
+		TCountry oldCountry = country;
+		country = newCountry;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TestmodelPackage.TADDRESS__COUNTRY, oldCountry, country));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TestmodelPackage.TADDRESS__COUNTRY:
+				if (resolve) return getCountry();
+				return basicGetCountry();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TestmodelPackage.TADDRESS__COUNTRY:
+				setCountry((TCountry)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.TADDRESS__COUNTRY:
+				setCountry((TCountry)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.TADDRESS__COUNTRY:
+				return country != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TAddressImpl
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TCountryImpl.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TCountryImpl.java
new file mode 100644
index 0000000..8d50000
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TCountryImpl.java
@@ -0,0 +1,208 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TCountry</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TCountryImpl#getIsoCode <em>Iso Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TCountryImpl#getCities <em>Cities</em>}</li>
+ * </ul>
+ * 
+ *
+ * @generated
+ */
+public class TCountryImpl extends MinimalEObjectImpl.Container implements TCountry {
+	/**
+	 * The default value of the '{@link #getIsoCode() <em>Iso Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIsoCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ISO_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getIsoCode() <em>Iso Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIsoCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String isoCode = ISO_CODE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCities() <em>Cities</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCities()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> cities;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TCountryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TestmodelPackage.Literals.TCOUNTRY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getIsoCode() {
+		return isoCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIsoCode(String newIsoCode) {
+		String oldIsoCode = isoCode;
+		isoCode = newIsoCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TestmodelPackage.TCOUNTRY__ISO_CODE, oldIsoCode, isoCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getCities() {
+		if (cities == null) {
+			cities = new EDataTypeUniqueEList<String>(String.class, this, TestmodelPackage.TCOUNTRY__CITIES);
+		}
+		return cities;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TestmodelPackage.TCOUNTRY__ISO_CODE:
+				return getIsoCode();
+			case TestmodelPackage.TCOUNTRY__CITIES:
+				return getCities();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TestmodelPackage.TCOUNTRY__ISO_CODE:
+				setIsoCode((String)newValue);
+				return;
+			case TestmodelPackage.TCOUNTRY__CITIES:
+				getCities().clear();
+				getCities().addAll((Collection<? extends String>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.TCOUNTRY__ISO_CODE:
+				setIsoCode(ISO_CODE_EDEFAULT);
+				return;
+			case TestmodelPackage.TCOUNTRY__CITIES:
+				getCities().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.TCOUNTRY__ISO_CODE:
+				return ISO_CODE_EDEFAULT == null ? isoCode != null : !ISO_CODE_EDEFAULT.equals(isoCode);
+			case TestmodelPackage.TCOUNTRY__CITIES:
+				return cities != null && !cities.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (isoCode: ");
+		result.append(isoCode);
+		result.append(", cities: ");
+		result.append(cities);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TCountryImpl
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TListImpl.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TListImpl.java
new file mode 100644
index 0000000..5b444df
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TListImpl.java
@@ -0,0 +1,174 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TList</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TListImpl#getTObject <em>TObject</em>}</li>
+ * </ul>
+ * 
+ *
+ * @generated
+ */
+public class TListImpl extends MinimalEObjectImpl.Container implements TList {
+	/**
+	 * The default value of the '{@link #getTObject() <em>TObject</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTObject()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object TOBJECT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTObject() <em>TObject</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTObject()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object tObject = TOBJECT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TListImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TestmodelPackage.Literals.TLIST;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getTObject() {
+		return tObject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTObject(Object newTObject) {
+		Object oldTObject = tObject;
+		tObject = newTObject;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TestmodelPackage.TLIST__TOBJECT, oldTObject, tObject));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TestmodelPackage.TLIST__TOBJECT:
+				return getTObject();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TestmodelPackage.TLIST__TOBJECT:
+				setTObject(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.TLIST__TOBJECT:
+				setTObject(TOBJECT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.TLIST__TOBJECT:
+				return TOBJECT_EDEFAULT == null ? tObject != null : !TOBJECT_EDEFAULT.equals(tObject);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tObject: ");
+		result.append(tObject);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TListImpl
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TPersonImpl.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TPersonImpl.java
new file mode 100644
index 0000000..86c90db
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TPersonImpl.java
@@ -0,0 +1,162 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TPerson</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl.TPersonImpl#getAddress <em>Address</em>}</li>
+ * </ul>
+ * 
+ *
+ * @generated
+ */
+public class TPersonImpl extends MinimalEObjectImpl.Container implements TPerson {
+	/**
+	 * The cached value of the '{@link #getAddress() <em>Address</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAddress()
+	 * @generated
+	 * @ordered
+	 */
+	protected TAddress address;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TPersonImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TestmodelPackage.Literals.TPERSON;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TAddress getAddress() {
+		if (address != null && address.eIsProxy()) {
+			InternalEObject oldAddress = (InternalEObject)address;
+			address = (TAddress)eResolveProxy(oldAddress);
+			if (address != oldAddress) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestmodelPackage.TPERSON__ADDRESS, oldAddress, address));
+			}
+		}
+		return address;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TAddress basicGetAddress() {
+		return address;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAddress(TAddress newAddress) {
+		TAddress oldAddress = address;
+		address = newAddress;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TestmodelPackage.TPERSON__ADDRESS, oldAddress, address));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TestmodelPackage.TPERSON__ADDRESS:
+				if (resolve) return getAddress();
+				return basicGetAddress();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TestmodelPackage.TPERSON__ADDRESS:
+				setAddress((TAddress)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.TPERSON__ADDRESS:
+				setAddress((TAddress)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.TPERSON__ADDRESS:
+				return address != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TPersonImpl
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TestmodelFactoryImpl.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TestmodelFactoryImpl.java
new file mode 100644
index 0000000..58ddaf0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TestmodelFactoryImpl.java
@@ -0,0 +1,138 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.*;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelFactory;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TestmodelFactoryImpl extends EFactoryImpl implements TestmodelFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TestmodelFactory init() {
+		try {
+			TestmodelFactory theTestmodelFactory = (TestmodelFactory)EPackage.Registry.INSTANCE.getEFactory(TestmodelPackage.eNS_URI);
+			if (theTestmodelFactory != null) {
+				return theTestmodelFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new TestmodelFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TestmodelFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case TestmodelPackage.TPERSON: return createTPerson();
+			case TestmodelPackage.TADDRESS: return createTAddress();
+			case TestmodelPackage.TCOUNTRY: return createTCountry();
+			case TestmodelPackage.TLIST: return createTList();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TPerson createTPerson() {
+		TPersonImpl tPerson = new TPersonImpl();
+		return tPerson;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TAddress createTAddress() {
+		TAddressImpl tAddress = new TAddressImpl();
+		return tAddress;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TCountry createTCountry() {
+		TCountryImpl tCountry = new TCountryImpl();
+		return tCountry;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TList createTList() {
+		TListImpl tList = new TListImpl();
+		return tList;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TestmodelPackage getTestmodelPackage() {
+		return (TestmodelPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static TestmodelPackage getPackage() {
+		return TestmodelPackage.eINSTANCE;
+	}
+
+} //TestmodelFactoryImpl
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TestmodelPackageImpl.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TestmodelPackageImpl.java
new file mode 100644
index 0000000..894bd74
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/impl/TestmodelPackageImpl.java
@@ -0,0 +1,291 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelFactory;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TestmodelPackageImpl extends EPackageImpl implements TestmodelPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tPersonEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tAddressEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tCountryEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tListEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private TestmodelPackageImpl() {
+		super(eNS_URI, TestmodelFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link TestmodelPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static TestmodelPackage init() {
+		if (isInited) return (TestmodelPackage)EPackage.Registry.INSTANCE.getEPackage(TestmodelPackage.eNS_URI);
+
+		// Obtain or create and register package
+		TestmodelPackageImpl theTestmodelPackage = (TestmodelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof TestmodelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new TestmodelPackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theTestmodelPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theTestmodelPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theTestmodelPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(TestmodelPackage.eNS_URI, theTestmodelPackage);
+		return theTestmodelPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTPerson() {
+		return tPersonEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTPerson_Address() {
+		return (EReference)tPersonEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTAddress() {
+		return tAddressEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTAddress_Country() {
+		return (EReference)tAddressEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTCountry() {
+		return tCountryEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTCountry_IsoCode() {
+		return (EAttribute)tCountryEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTCountry_Cities() {
+		return (EAttribute)tCountryEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTList() {
+		return tListEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTList_TObject() {
+		return (EAttribute)tListEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TestmodelFactory getTestmodelFactory() {
+		return (TestmodelFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		tPersonEClass = createEClass(TPERSON);
+		createEReference(tPersonEClass, TPERSON__ADDRESS);
+
+		tAddressEClass = createEClass(TADDRESS);
+		createEReference(tAddressEClass, TADDRESS__COUNTRY);
+
+		tCountryEClass = createEClass(TCOUNTRY);
+		createEAttribute(tCountryEClass, TCOUNTRY__ISO_CODE);
+		createEAttribute(tCountryEClass, TCOUNTRY__CITIES);
+
+		tListEClass = createEClass(TLIST);
+		createEAttribute(tListEClass, TLIST__TOBJECT);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(tPersonEClass, TPerson.class, "TPerson", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTPerson_Address(), this.getTAddress(), null, "address", null, 0, 1, TPerson.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tAddressEClass, TAddress.class, "TAddress", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTAddress_Country(), this.getTCountry(), null, "country", null, 0, 1, TAddress.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tCountryEClass, TCountry.class, "TCountry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTCountry_IsoCode(), ecorePackage.getEString(), "isoCode", null, 0, 1, TCountry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTCountry_Cities(), ecorePackage.getEString(), "cities", null, 0, -1, TCountry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tListEClass, TList.class, "TList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTList_TObject(), ecorePackage.getEJavaObject(), "tObject", null, 0, 1, TList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //TestmodelPackageImpl
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/util/TestmodelAdapterFactory.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/util/TestmodelAdapterFactory.java
new file mode 100644
index 0000000..2842342
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/util/TestmodelAdapterFactory.java
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.*;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage
+ * @generated
+ */
+public class TestmodelAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static TestmodelPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TestmodelAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = TestmodelPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TestmodelSwitch<Adapter> modelSwitch =
+		new TestmodelSwitch<Adapter>() {
+			@Override
+			public Adapter caseTPerson(TPerson object) {
+				return createTPersonAdapter();
+			}
+			@Override
+			public Adapter caseTAddress(TAddress object) {
+				return createTAddressAdapter();
+			}
+			@Override
+			public Adapter caseTCountry(TCountry object) {
+				return createTCountryAdapter();
+			}
+			@Override
+			public Adapter caseTList(TList object) {
+				return createTListAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson <em>TPerson</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson
+	 * @generated
+	 */
+	public Adapter createTPersonAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress <em>TAddress</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress
+	 * @generated
+	 */
+	public Adapter createTAddressAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry <em>TCountry</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry
+	 * @generated
+	 */
+	public Adapter createTCountryAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList <em>TList</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TList
+	 * @generated
+	 */
+	public Adapter createTListAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //TestmodelAdapterFactory
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/util/TestmodelSwitch.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/util/TestmodelSwitch.java
new file mode 100644
index 0000000..c8063b3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/emf/model/util/TestmodelSwitch.java
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.emf.model.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.*;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TAddress;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TCountry;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TPerson;
+import org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.databinding.tests.emf.model.TestmodelPackage
+ * @generated
+ */
+public class TestmodelSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static TestmodelPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TestmodelSwitch() {
+		if (modelPackage == null) {
+			modelPackage = TestmodelPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case TestmodelPackage.TPERSON: {
+				TPerson tPerson = (TPerson)theEObject;
+				T result = caseTPerson(tPerson);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case TestmodelPackage.TADDRESS: {
+				TAddress tAddress = (TAddress)theEObject;
+				T result = caseTAddress(tAddress);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case TestmodelPackage.TCOUNTRY: {
+				TCountry tCountry = (TCountry)theEObject;
+				T result = caseTCountry(tCountry);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case TestmodelPackage.TLIST: {
+				TList tList = (TList)theEObject;
+				T result = caseTList(tList);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>TPerson</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>TPerson</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTPerson(TPerson object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>TAddress</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>TAddress</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTAddress(TAddress object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>TCountry</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>TCountry</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTCountry(TCountry object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>TList</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>TList</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTList(TList object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //TestmodelSwitch
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/pojo/model/PAddress.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/pojo/model/PAddress.java
new file mode 100644
index 0000000..6193757
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/pojo/model/PAddress.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.pojo.model;
+
+public class PAddress {
+
+	private PCountry country;
+
+	/**
+	 * @return the country
+	 */
+	public PCountry getCountry() {
+		return country;
+	}
+
+	/**
+	 * @param country
+	 *            the country to set
+	 */
+	public void setCountry(PCountry country) {
+		this.country = country;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/pojo/model/PCountry.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/pojo/model/PCountry.java
new file mode 100644
index 0000000..9dea189
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/pojo/model/PCountry.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.pojo.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PCountry {
+
+	private String isoCode;
+	private List<String> cities = new ArrayList<String>();
+
+	/**
+	 * @return the isoCode
+	 */
+	public String getIsoCode() {
+		return isoCode;
+	}
+
+	/**
+	 * @param isoCode
+	 *            the isoCode to set
+	 */
+	public void setIsoCode(String isoCode) {
+		this.isoCode = isoCode;
+	}
+
+	public List<String> getCities() {
+		return cities;
+	}
+
+	public void setCities(List<String> cities) {
+		this.cities = cities;
+	}
+	
+	
+
+}
diff --git a/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/pojo/model/PPerson.java b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/pojo/model/PPerson.java
new file mode 100644
index 0000000..efe99ee
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.databinding.tests/src/org/eclipse/osbp/ecview/core/databinding/tests/pojo/model/PPerson.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.databinding.tests.pojo.model;
+
+public class PPerson {
+
+	private PAddress address;
+
+	/**
+	 * @return the address
+	 */
+	public PAddress getAddress() {
+		return address;
+	}
+
+	/**
+	 * @param address
+	 *            the address to set
+	 */
+	public void setAddress(PAddress address) {
+		this.address = address;
+	}
+
+	/**
+	 * Creates a new instance of person. All references are properly setup and
+	 * the isoCode of the country is set to the given value.
+	 * 
+	 * @param isoCode
+	 * @return
+	 */
+	public static PPerson newInstance(String isoCode) {
+		PPerson person = new PPerson();
+		PAddress address = new PAddress();
+		person.setAddress(address);
+		PCountry country = new PCountry();
+		country.setIsoCode(isoCode);
+		address.setCountry(country);
+		return person;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.emf.api/.checkstyle b/org.eclipse.osbp.ecview.core.emf.api/.checkstyle
new file mode 100644
index 0000000..2f2667a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <fileset name="all" enabled="true" check-config-name="emfstoreStyle" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/org.eclipse.osbp.ecview.core.emf.api/.project b/org.eclipse.osbp.ecview.core.emf.api/.project
new file mode 100644
index 0000000..28adcc9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.emf.api</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.emf.api/LICENSE.txt b/org.eclipse.osbp.ecview.core.emf.api/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.emf.api/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.emf.api/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..e781026
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.emf.api
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.emf.api;singleton:=true
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore.xmi;bundle-version="2.8.0",
+ org.eclipse.osbp.ecview.core.extension.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.slf4j;version="1.6.4"
+Export-Package: org.eclipse.osbp.ecview.core.emf.api;
+  uses:="org.eclipse.osbp.ecview.core.common.editpart.binding,
+   org.eclipse.osbp.ecview.core.common.model.binding,
+   org.eclipse.core.databinding,
+   org.eclipse.osbp.ecview.core.common.presentation,
+   org.eclipse.osbp.ecview.core.common.binding,
+   org.eclipse.osbp.ecview.core.common.editpart,
+   org.eclipse.osbp.ecview.core.common.context,
+   org.eclipse.osbp.ecview.core.common.model.core,
+   org.eclipse.osbp.ecview.core.common.notification";version="0.9.0"
diff --git a/org.eclipse.osbp.ecview.core.emf.api/about.html b/org.eclipse.osbp.ecview.core.emf.api/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.emf.api/about.ini b/org.eclipse.osbp.ecview.core.emf.api/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.emf.api/about.mappings b/org.eclipse.osbp.ecview.core.emf.api/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.emf.api/about.properties b/org.eclipse.osbp.ecview.core.emf.api/about.properties
new file mode 100644
index 0000000..04fd7fa
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.emf.api
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.emf.api/build.properties b/org.eclipse.osbp.ecview.core.emf.api/build.properties
new file mode 100644
index 0000000..dde02d1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               LICENSE.txt,\
+               license.html
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt
diff --git a/org.eclipse.osbp.ecview.core.emf.api/license.html b/org.eclipse.osbp.ecview.core.emf.api/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.emf.api/pom.xml b/org.eclipse.osbp.ecview.core.emf.api/pom.xml
new file mode 100644
index 0000000..c74788b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.emf.api</artifactId>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source/>
+          <target/>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.emf.api/src/org/eclipse/osbp/ecview/core/emf/api/IDateFormatProvider.java b/org.eclipse.osbp.ecview.core.emf.api/src/org/eclipse/osbp/ecview/core/emf/api/IDateFormatProvider.java
new file mode 100644
index 0000000..59a9da7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.emf.api/src/org/eclipse/osbp/ecview/core/emf/api/IDateFormatProvider.java
@@ -0,0 +1,62 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.ecview.core.emf.api;
+
+import java.util.Locale;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution;
+
+/**
+ * Provides information about the dateformat and the resolution.
+ */
+public interface IDateFormatProvider {
+
+	/**
+	 * Returns the date format and resolution for the given parameters.
+	 * 
+	 * @param yDt
+	 * @param locale
+	 * @return
+	 */
+	Info getInfo(YDateTimeDatatype yDt, Locale locale);
+
+	public static class Info {
+
+		private String dateFormat;
+		private YDateTimeResolution resolution;
+
+		public Info(String dateFormat, YDateTimeResolution resolution) {
+			super();
+			this.dateFormat = dateFormat;
+			this.resolution = resolution;
+		}
+
+		/**
+		 * @return the dateFormat
+		 */
+		public String getDateFormat() {
+			return dateFormat;
+		}
+
+		/**
+		 * @return the resolution
+		 */
+		public YDateTimeResolution getResolution() {
+			return resolution;
+		}
+
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/.checkstyle b/org.eclipse.osbp.ecview.core.extension.editparts.emf/.checkstyle
new file mode 100644
index 0000000..2f2667a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <fileset name="all" enabled="true" check-config-name="emfstoreStyle" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/.project b/org.eclipse.osbp.ecview.core.extension.editparts.emf/.project
new file mode 100644
index 0000000..32090ed
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/.project
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.extension.editparts.emf</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/LICENSE.txt b/org.eclipse.osbp.ecview.core.extension.editparts.emf/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.extension.editparts.emf/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..6bb0636
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.extension.editparts.emf
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.extension.editparts.emf
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-Activator: org.eclipse.osbp.ecview.core.extension.editpart.emf.Activator
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore.xmi;bundle-version="2.8.0",
+ org.eclipse.osbp.ecview.core.extension.editparts;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common.editparts.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.extension.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.1,1.5.0)",
+ org.eclipse.core.databinding.beans;bundle-version="[1.2.200,1.5.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.0,1.5.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.slf4j.api;bundle-version="1.7.2"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Import-Package: org.osgi.service.component;version="1.2.0",
+ org.osgi.service.component.annotations;version="1.2.0"
+Service-Component: OSGI-INF/editPartManager.xml,
+ OSGI-INF/org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager.xml
+Export-Package: org.eclipse.osbp.ecview.core.extension.editpart.emf;x-internal:="true";version="0.9.0",
+ org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;x-internal:="true";version="0.9.0"
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/OSGI-INF/org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager.xml b/org.eclipse.osbp.ecview.core.extension.editparts.emf/OSGI-INF/org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager.xml
new file mode 100644
index 0000000..f297114
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/OSGI-INF/org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager">
+   <implementation class="org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager"/>
+   <service>
+      <provide interface="org.eclipse.osbp.ecview.core.common.editpart.IEditPartManager"/>
+   </service>
+</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.html b/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.ini b/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.mappings b/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.properties b/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.properties
new file mode 100644
index 0000000..a57d14c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.extension.editparts.emf
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/build.properties b/org.eclipse.osbp.ecview.core.extension.editparts.emf/build.properties
new file mode 100644
index 0000000..0d4e3ab
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               OSGI-INF/,\
+               LICENSE.txt,\
+               license.html
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/license.html b/org.eclipse.osbp.ecview.core.extension.editparts.emf/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/pom.xml b/org.eclipse.osbp.ecview.core.extension.editparts.emf/pom.xml
new file mode 100644
index 0000000..6fb1720
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.extension.editparts.emf</artifactId>
+  <description>Contains the EMF based ui controller</description>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source/>
+          <target/>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/AbsoluteLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/AbsoluteLayoutEditpart.java
new file mode 100644
index 0000000..6d54f94
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/AbsoluteLayoutEditpart.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IAbsoluteLayoutEditpart;
+
+/**
+ * The implementation of the IUigridLayoutEditpart.
+ */
+@SuppressWarnings("unchecked")
+public class AbsoluteLayoutEditpart extends LayoutEditpart<YAbsoluteLayout>
+		implements IAbsoluteLayoutEditpart {
+
+	private StylesController stylesController;
+
+	@Override
+	public void initialize(IViewContext context, YAbsoluteLayout model) {
+		super.initialize(context, model);
+
+		stylesController = new StylesController();
+		model.eAdapters().add(stylesController);
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+			getModel().eAdapters().remove(stylesController);
+			stylesController = null;
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	protected void updateCellStyle(YEmbeddable target) {
+		if (isRendered()) {
+			getPresentation().updateCellStyle(target);
+		}
+	}
+
+	/**
+	 * This class automatically connects to all {@link YAbsoluteLayoutCellStyle}
+	 */
+	public class StylesController extends EContentAdapter {
+
+		/**
+		 * Add this adapter only to EObjects from grid package.
+		 */
+		protected void addAdapter(Notifier notifier) {
+			if (notifier instanceof EObject) {
+				EObject e = (EObject) notifier;
+				if (e instanceof YAbsoluteLayoutCellStyle) {
+					notifier.eAdapters().add(this);
+				}
+			}
+		}
+
+		public void notifyChanged(Notification notification) {
+			super.notifyChanged(notification);
+
+			// notify the layout to update the cell style
+			if (notification.getNotifier() instanceof YAbsoluteLayoutCellStyle) {
+				updateCellStyle(((YAbsoluteLayoutCellStyle) notification
+						.getNotifier()).getTarget());
+			}
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/Activator.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/Activator.java
new file mode 100644
index 0000000..d7e6360
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/Activator.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * Activator of the bundle.
+ */
+public class Activator implements BundleActivator {
+
+	private static BundleContext context;
+
+	/**
+	 * Returns the bundle context.
+	 * @return context
+	 */
+	static BundleContext getContext() {
+		return context;
+	}
+	
+	/**
+	 * {@inheritDoc}
+	 */
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void start(BundleContext bundleContext) throws Exception {
+		// END SUPRESS CATCH EXCEPTION
+		Activator.context = bundleContext;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void stop(BundleContext bundleContext) throws Exception {
+		// END SUPRESS CATCH EXCEPTION
+		Activator.context = null;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/BeanReferenceFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/BeanReferenceFieldEditpart.java
new file mode 100644
index 0000000..a440e3b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/BeanReferenceFieldEditpart.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IBeanReferenceFieldEditpart;
+
+/**
+ * The implementation of the IUiTextFieldEditpart.
+ */
+public class BeanReferenceFieldEditpart extends
+		FieldEditpart<YBeanReferenceField> implements IBeanReferenceFieldEditpart {
+
+	public BeanReferenceFieldEditpart() {
+		super(null);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/BooleanSearchFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/BooleanSearchFieldEditpart.java
new file mode 100644
index 0000000..4bbeee2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/BooleanSearchFieldEditpart.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.common.filter.IFilterProvidingPresentation;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IBooleanSearchFieldEditpart;
+
+/**
+ * The implementation of the IBooleanSearchFieldEditpart.
+ */
+public class BooleanSearchFieldEditpart extends
+		FieldEditpart<YBooleanSearchField> implements
+		IBooleanSearchFieldEditpart {
+
+	public BooleanSearchFieldEditpart() {
+		super();
+	}
+
+	@Override
+	public Object getFilter() {
+		IFilterProvidingPresentation presentation = (IFilterProvidingPresentation) getPresentation();
+		return presentation.getFilter();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/BrowserEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/BrowserEditpart.java
new file mode 100644
index 0000000..575e721
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/BrowserEditpart.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IBrowserEditpart;
+
+/**
+ * The implementation of the IUiCheckBoxEditpart.
+ */
+public class BrowserEditpart extends EmbeddableEditpart<YBrowser> implements
+		IBrowserEditpart {
+
+	public BrowserEditpart() {
+		super(ExtensionModelPackage.Literals.YBROWSER__DATATYPE);
+	}
+
+	@Override
+	public List<IValidatorEditpart> getDatatypeValidators() {
+		return Collections.emptyList();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ButtonEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ButtonEditpart.java
new file mode 100644
index 0000000..6f4195b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ButtonEditpart.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2013 Loetz GmbH&Co.KG(Heidelberg). 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: Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ActionEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IButtonEditpart;
+
+/**
+ * The implementation of the IButtonEditpart.
+ */
+public class ButtonEditpart extends ActionEditpart<YButton> implements
+		IButtonEditpart {
+
+	protected YButton createModel() {
+		return (YButton) ExtensionModelFactory.eINSTANCE
+				.createYButton();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/CheckBoxEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/CheckBoxEditpart.java
new file mode 100644
index 0000000..ab55a2a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/CheckBoxEditpart.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ICheckboxEditpart;
+
+/**
+ * The implementation of the IUiCheckBoxEditpart.
+ */
+public class CheckBoxEditpart extends FieldEditpart<YCheckBox> implements
+		ICheckboxEditpart {
+
+	public CheckBoxEditpart() {
+		super(ExtensionModelPackage.Literals.YCHECK_BOX__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ComboBoxEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ComboBoxEditpart.java
new file mode 100644
index 0000000..f9d3228
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ComboBoxEditpart.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IComboBoxEditpart;
+
+/**
+ * The implementation of the IUiComboBoxEditpart.
+ */
+public class ComboBoxEditpart extends FieldEditpart<YComboBox> implements
+		IComboBoxEditpart {
+
+	public ComboBoxEditpart() {
+		super(ExtensionModelPackage.Literals.YCOMBO_BOX__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/CssLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/CssLayoutEditpart.java
new file mode 100644
index 0000000..4a0ab73
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/CssLayoutEditpart.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ICssLayoutEditpart;
+
+/**
+ * The implementation of the IUigridLayoutEditpart.
+ */
+@SuppressWarnings("unchecked")
+public class CssLayoutEditpart extends LayoutEditpart<YCssLayout> implements ICssLayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/DateTimeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/DateTimeEditpart.java
new file mode 100644
index 0000000..7a90d4f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/DateTimeEditpart.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IDateTimeEditpart;
+
+/**
+ * The implementation of the IUiCheckBoxEditpart.
+ */
+public class DateTimeEditpart extends FieldEditpart<YDateTime> implements
+		IDateTimeEditpart {
+
+	public DateTimeEditpart() {
+		super(ExtensionModelPackage.Literals.YDATE_TIME__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/DecimalFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/DecimalFieldEditpart.java
new file mode 100644
index 0000000..8a425d5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/DecimalFieldEditpart.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IDecimalFieldEditpart;
+
+/**
+ * The implementation of the IUiDecimalFieldEditpart.
+ */
+public class DecimalFieldEditpart extends FieldEditpart<YDecimalField>
+		implements IDecimalFieldEditpart {
+
+	public DecimalFieldEditpart() {
+		super(ExtensionModelPackage.Literals.YDECIMAL_FIELD__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EditpartManager.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EditpartManager.java
new file mode 100644
index 0000000..f7482c2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EditpartManager.java
@@ -0,0 +1,421 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.common.AbstractEditpartManager;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.commands.AddToTableEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.commands.RemoveFromTableEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.commands.SetNewBeanInstanceEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.BrowserDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.CheckBoxDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.ComboBoxDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.DateTimeDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.DecimalDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.ListDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.NumericDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.OptionsGroupDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.ProgressBarDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.TabSheetDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.TableDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.TextDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.TreeDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YImage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YLabel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSlider;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTree;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * An implementation of IEditPartManager for eObjects with
+ * nsURI=http://eclipse.org/emf/emfclient/uimodel.
+ */
+@Component(immediate = true, service = { IEditPartManager.class })
+public class EditpartManager extends AbstractEditpartManager {
+
+	protected void activate(ComponentContext context) {
+
+	}
+
+	protected void deactivate(ComponentContext context) {
+
+	}
+
+	@Override
+	public boolean isFor(Object element) {
+		if (element instanceof EObject) {
+			String uriString = ((EObject) element).eClass().getEPackage()
+					.getNsURI();
+			return uriString.equals(ExtensionModelPackage.eNS_URI)
+					|| uriString.equals(ExtDatatypesPackage.eNS_URI);
+		} else if (element instanceof String) {
+			return element.equals(ExtensionModelPackage.eNS_URI)
+					|| element.equals(ExtDatatypesPackage.eNS_URI);
+		}
+		return false;
+	}
+
+	// @SuppressWarnings("unchecked")
+	// @Override
+	// public <A extends IElementEditpart> A createEditpart(IViewContext
+	// context, Object selector,
+	// Class<A> editPartClazz) {
+	// ElementEditpart<YElement> result = null;
+	// if (editPartClazz.isAssignableFrom(ITextFieldEditpart.class)) {
+	// result = createNewInstance(TextFieldEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IGridLayoutEditpart.class)) {
+	// result = createNewInstance(GridLayoutEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ICssLayoutEditpart.class)) {
+	// result = createNewInstance(CssLayoutEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IHorizontalLayoutEditpart.class)) {
+	// result = createNewInstance(HorizontalLayoutEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IVerticalLayoutEditpart.class)) {
+	// result = createNewInstance(VerticalLayoutEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IFormLayoutEditpart.class)) {
+	// result = createNewInstance(FormLayoutEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IListEditpart.class)) {
+	// result = createNewInstance(ListEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ITableEditpart.class)) {
+	// result = createNewInstance(TableEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ITreeEditpart.class)) {
+	// result = createNewInstance(TreeEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IOptionsGroupEditpart.class)) {
+	// result = createNewInstance(OptionsGroupEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ILabelEditpart.class)) {
+	// result = createNewInstance(LabelEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ITextAreaEditpart.class)) {
+	// result = createNewInstance(TextAreaEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IButtonEditpart.class)) {
+	// result = createNewInstance(ButtonEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ICheckboxEditpart.class)) {
+	// result = createNewInstance(CheckBoxEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(INumericFieldEditpart.class)) {
+	// result = createNewInstance(NumericFieldEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IDecimalFieldEditpart.class)) {
+	// result = createNewInstance(DecimalFieldEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IBrowserEditpart.class)) {
+	// result = createNewInstance(BrowserEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IDateTimeEditpart.class)) {
+	// result = createNewInstance(DateTimeEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IProgressBarEditpart.class)) {
+	// result = createNewInstance(ProgressBarEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ITabSheetEditpart.class)) {
+	// result = createNewInstance(TabSheetEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ITabEditpart.class)) {
+	// result = createNewInstance(TabEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IBrowserDatatypeEditpart.class)) {
+	// result = createNewInstance(BrowserDatatypeEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(ICheckBoxDatatypeEditpart.class)) {
+	// result = createNewInstance(CheckBoxDatatypeEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IComboBoxDatatypeEditpart.class)) {
+	// result = createNewInstance(ComboBoxDatatypeEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IDateTimeDatatypeEditpart.class)) {
+	// result = createNewInstance(DateTimeDatatypeEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IDecimalDatatypeEditpart.class)) {
+	// result = createNewInstance(DecimalDatatypeEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IListDatatypeEditpart.class)) {
+	// result = createNewInstance(ListDatatypeEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(INumericDatatypeEditpart.class)) {
+	// result = createNewInstance(NumericDatatypeEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IOptionsGroupDatatypeEditpart.class)) {
+	// result = createNewInstance(OptionsGroupDatatypeEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IProgressBarDatatypeEditpart.class)) {
+	// result = createNewInstance(ProgressBarDatatypeEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ITableDatatypeEditpart.class))
+	// {
+	// result = createNewInstance(TableDatatypeEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(ITabSheetDatatypeEditpart.class)) {
+	// result = createNewInstance(TabSheetDatatypeEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(ITextAreaDatatypeEditpart.class)) {
+	// result = createNewInstance(TextAreaEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ITextDatatypeEditpart.class)) {
+	// result = createNewInstance(TextDatatypeEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ITreeDatatypeEditpart.class)) {
+	// result = createNewInstance(TreeDatatypeEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IMasterDetailEditpart.class)) {
+	// result = createNewInstance(MasterDetailEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IImageEditpart.class)) {
+	// result = createNewInstance(ImageEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(ITextSearchFieldEditpart.class)) {
+	// result = createNewInstance(TextSearchFieldEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(INumericSearchFieldEditpart.class)) {
+	// result = createNewInstance(NumericSearchFieldEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IBooleanSearchFieldEditpart.class)) {
+	// result = createNewInstance(BooleanSearchFieldEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ISplitPanelEditpart.class)) {
+	// result = createNewInstance(SplitPanelEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IPanelEditpart.class)) {
+	// result = createNewInstance(PanelEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ISearchPanelEditpart.class)) {
+	// result = createNewInstance(SearchPanelEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IBeanReferenceFieldEditpart.class)) {
+	// result = createNewInstance(BeanReferenceFieldEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IEnumComboBoxEditpart.class)) {
+	// result = createNewInstance(EnumComboBoxEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(IEnumListEditpart.class)) {
+	// result = createNewInstance(EnumListEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IEnumOptionsGroupEditpart.class)) {
+	// result = createNewInstance(EnumOptionsGroupEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IAddToTableCommandEditpart.class)) {
+	// result = createNewInstance(AddToTableEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IRemoveFromTableCommandEditpart.class)) {
+	// result = createNewInstance(RemoveFromTableEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(ISetNewInstanceCommandEditpart.class)) {
+	// result = createNewInstance(SetNewBeanInstanceEditpart.class);
+	// } else if (editPartClazz.isAssignableFrom(ISliderEditpart.class)) {
+	// result = createNewInstance(SliderEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(IAbsoluteLayoutEditpart.class)) {
+	// result = createNewInstance(AbsoluteLayoutEditpart.class);
+	// } else if (editPartClazz
+	// .isAssignableFrom(ISuggestTextFieldEditpart.class)) {
+	// result = createNewInstance(SuggestTextFieldEditpart.class);
+	// }
+	//
+	// if (result != null) {
+	// result.initialize();
+	// }
+	//
+	// return (A) result;
+	// }
+
+	/**
+	 * Creates a new instance of the edit part.
+	 * 
+	 * @param <A>
+	 *            an instance of {@link IElementEditpart}
+	 * @param yElement
+	 *            the model element
+	 * @return editpart
+	 */
+	@SuppressWarnings("unchecked")
+	protected <A extends IElementEditpart> A createEditpart(
+			IViewContext context, Object yElement) {
+		// asserts that no editpart was created already for the given element
+		assertOneEditpartForModelelement(yElement);
+
+		ElementEditpart<YElement> result = null;
+		if (yElement instanceof YTextField) {
+			result = createNewInstance(TextFieldEditpart.class);
+		} else if (yElement instanceof YGridLayout) {
+			result = createNewInstance(GridLayoutEditpart.class);
+		} else if (yElement instanceof YCssLayout) {
+			result = createNewInstance(CssLayoutEditpart.class);
+		} else if (yElement instanceof YHorizontalLayout) {
+			result = createNewInstance(HorizontalLayoutEditpart.class);
+		} else if (yElement instanceof YVerticalLayout) {
+			result = createNewInstance(VerticalLayoutEditpart.class);
+		} else if (yElement instanceof YFormLayout) {
+			result = createNewInstance(FormLayoutEditpart.class);
+		} else if (yElement instanceof YTable) {
+			result = createNewInstance(TableEditpart.class);
+		} else if (yElement instanceof YTree) {
+			result = createNewInstance(TreeEditpart.class);
+		} else if (yElement instanceof YLabel) {
+			result = createNewInstance(LabelEditpart.class);
+		} else if (yElement instanceof YTextArea) {
+			result = createNewInstance(TextAreaEditpart.class);
+		} else if (yElement instanceof YButton) {
+			result = createNewInstance(ButtonEditpart.class);
+		} else if (yElement instanceof YCheckBox) {
+			result = createNewInstance(CheckBoxEditpart.class);
+		} else if (yElement instanceof YComboBox) {
+			result = createNewInstance(ComboBoxEditpart.class);
+		} else if (yElement instanceof YList) {
+			result = createNewInstance(ListEditpart.class);
+		} else if (yElement instanceof YOptionsGroup) {
+			result = createNewInstance(OptionsGroupEditpart.class);
+		} else if (yElement instanceof YNumericField) {
+			result = createNewInstance(NumericFieldEditpart.class);
+		} else if (yElement instanceof YDecimalField) {
+			result = createNewInstance(DecimalFieldEditpart.class);
+		} else if (yElement instanceof YDateTime) {
+			result = createNewInstance(DateTimeEditpart.class);
+		} else if (yElement instanceof YBrowser) {
+			result = createNewInstance(BrowserEditpart.class);
+		} else if (yElement instanceof YProgressBar) {
+			result = createNewInstance(ProgressBarEditpart.class);
+		} else if (yElement instanceof YTabSheet) {
+			result = createNewInstance(TabSheetEditpart.class);
+		} else if (yElement instanceof YTab) {
+			result = createNewInstance(TabEditpart.class);
+		} else if (yElement instanceof YBrowserDatatype) {
+			result = createNewInstance(BrowserDatatypeEditpart.class);
+		} else if (yElement instanceof YCheckBoxDatatype) {
+			result = createNewInstance(CheckBoxDatatypeEditpart.class);
+		} else if (yElement instanceof YComboBoxDatatype) {
+			result = createNewInstance(ComboBoxDatatypeEditpart.class);
+		} else if (yElement instanceof YDateTimeDatatype) {
+			result = createNewInstance(DateTimeDatatypeEditpart.class);
+		} else if (yElement instanceof YDecimalDatatype) {
+			result = createNewInstance(DecimalDatatypeEditpart.class);
+		} else if (yElement instanceof YListDataType) {
+			result = createNewInstance(ListDatatypeEditpart.class);
+		} else if (yElement instanceof YNumericDatatype) {
+			result = createNewInstance(NumericDatatypeEditpart.class);
+		} else if (yElement instanceof YOptionsGroupDataType) {
+			result = createNewInstance(OptionsGroupDatatypeEditpart.class);
+		} else if (yElement instanceof YProgressBarDatatype) {
+			result = createNewInstance(ProgressBarDatatypeEditpart.class);
+		} else if (yElement instanceof YTableDatatype) {
+			result = createNewInstance(TableDatatypeEditpart.class);
+		} else if (yElement instanceof YTabSheetDatatype) {
+			result = createNewInstance(TabSheetDatatypeEditpart.class);
+		} else if (yElement instanceof YTextAreaDatatype) {
+			result = createNewInstance(TextAreaEditpart.class);
+		} else if (yElement instanceof YTextDatatype) {
+			result = createNewInstance(TextDatatypeEditpart.class);
+		} else if (yElement instanceof YTreeDatatype) {
+			result = createNewInstance(TreeDatatypeEditpart.class);
+		} else if (yElement instanceof YMasterDetail) {
+			result = createNewInstance(MasterDetailEditpart.class);
+		} else if (yElement instanceof YImage) {
+			result = createNewInstance(ImageEditpart.class);
+		} else if (yElement instanceof YTextSearchField) {
+			result = createNewInstance(TextSearchFieldEditpart.class);
+		} else if (yElement instanceof YNumericSearchField) {
+			result = createNewInstance(NumericSearchFieldEditpart.class);
+		} else if (yElement instanceof YBooleanSearchField) {
+			result = createNewInstance(BooleanSearchFieldEditpart.class);
+		} else if (yElement instanceof YSplitPanel) {
+			result = createNewInstance(SplitPanelEditpart.class);
+		} else if (yElement instanceof YPanel) {
+			result = createNewInstance(PanelEditpart.class);
+		} else if (yElement instanceof YSearchPanel) {
+			result = createNewInstance(SearchPanelEditpart.class);
+		} else if (yElement instanceof YBeanReferenceField) {
+			result = createNewInstance(BeanReferenceFieldEditpart.class);
+		} else if (yElement instanceof YEnumComboBox) {
+			result = createNewInstance(EnumComboBoxEditpart.class);
+		} else if (yElement instanceof YEnumList) {
+			result = createNewInstance(EnumListEditpart.class);
+		} else if (yElement instanceof YEnumOptionsGroup) {
+			result = createNewInstance(EnumOptionsGroupEditpart.class);
+		} else if (yElement instanceof YAddToTableCommand) {
+			result = createNewInstance(AddToTableEditpart.class);
+		} else if (yElement instanceof YRemoveFromTableCommand) {
+			result = createNewInstance(RemoveFromTableEditpart.class);
+		} else if (yElement instanceof YSetNewBeanInstanceCommand) {
+			result = createNewInstance(SetNewBeanInstanceEditpart.class);
+		} else if (yElement instanceof YSlider) {
+			result = createNewInstance(SliderEditpart.class);
+		} else if (yElement instanceof YAbsoluteLayout) {
+			result = createNewInstance(AbsoluteLayoutEditpart.class);
+		} else if (yElement instanceof YSuggestTextField) {
+			result = createNewInstance(SuggestTextFieldEditpart.class);
+		} else if (yElement instanceof YPasswordField) {
+			result = createNewInstance(PasswordFieldEditpart.class);
+		}
+
+		if (result != null) {
+			result.initialize(context, (YElement) yElement);
+		}
+
+		return (A) result;
+	}
+
+	/**
+	 * Returns a new instance of the type.
+	 * 
+	 * @param type
+	 *            The type of the editpart for which an instance should be
+	 *            created.
+	 * @return editPart
+	 * @throws InstantiationException
+	 *             e
+	 * @throws IllegalAccessException
+	 *             e
+	 */
+	protected IElementEditpart newInstance(
+			Class<? extends IElementEditpart> type)
+			throws InstantiationException, IllegalAccessException {
+		return type.newInstance();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EnumComboBoxEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EnumComboBoxEditpart.java
new file mode 100644
index 0000000..457185c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EnumComboBoxEditpart.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IEnumComboBoxEditpart;
+
+/**
+ * The implementation of the IUiComboBoxEditpart.
+ */
+public class EnumComboBoxEditpart extends FieldEditpart<YEnumComboBox>
+		implements IEnumComboBoxEditpart {
+
+	public EnumComboBoxEditpart() {
+		super(ExtensionModelPackage.Literals.YENUM_COMBO_BOX__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EnumListEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EnumListEditpart.java
new file mode 100644
index 0000000..bb27040
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EnumListEditpart.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IEnumListEditpart;
+
+/**
+ * The implementation of the IUiCheckBoxEditpart.
+ */
+public class EnumListEditpart extends FieldEditpart<YEnumList> implements
+		IEnumListEditpart {
+
+	public EnumListEditpart() {
+		super(ExtensionModelPackage.Literals.YENUM_LIST__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EnumOptionsGroupEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EnumOptionsGroupEditpart.java
new file mode 100644
index 0000000..55afaf0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/EnumOptionsGroupEditpart.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IEnumOptionsGroupEditpart;
+
+public class EnumOptionsGroupEditpart extends FieldEditpart<YEnumOptionsGroup>
+		implements IEnumOptionsGroupEditpart {
+
+	public EnumOptionsGroupEditpart() {
+		super(ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/FormLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/FormLayoutEditpart.java
new file mode 100644
index 0000000..b106c08
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/FormLayoutEditpart.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IFormLayoutEditpart;
+
+/**
+ * The implementation of the IUigridLayoutEditpart.
+ */
+@SuppressWarnings("unchecked")
+public class FormLayoutEditpart extends LayoutEditpart<YFormLayout> implements
+		IFormLayoutEditpart {
+
+	private StylesController stylesController;
+
+	@Override
+	public void initialize(IViewContext context, YFormLayout model) {
+		super.initialize(context, model);
+
+		stylesController = new StylesController();
+		model.eAdapters().add(stylesController);
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+			getModel().eAdapters().remove(stylesController);
+			stylesController = null;
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	protected void updateCellStyle(YEmbeddable target) {
+		if (isRendered()) {
+			getPresentation().updateCellStyle(target);
+		}
+	}
+
+	/**
+	 * This class automatically connects to all {@link YAbsoluteLayoutCellStyle}
+	 */
+	public class StylesController extends EContentAdapter {
+
+		/**
+		 * Add this adapter only to EObjects from grid package.
+		 */
+		protected void addAdapter(Notifier notifier) {
+			if (notifier instanceof EObject) {
+				EObject e = (EObject) notifier;
+				if (e instanceof YFormLayoutCellStyle) {
+					notifier.eAdapters().add(this);
+				}
+			}
+		}
+
+		public void notifyChanged(Notification notification) {
+			super.notifyChanged(notification);
+
+			// notify the layout to update the cell style
+			if (notification.getNotifier() instanceof YFormLayoutCellStyle) {
+				updateCellStyle(((YFormLayoutCellStyle) notification
+						.getNotifier()).getTarget());
+			}
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/GridLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/GridLayoutEditpart.java
new file mode 100644
index 0000000..4cbf120
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/GridLayoutEditpart.java
@@ -0,0 +1,109 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.presentation.ILayoutPresentation;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IGridLayoutEditpart;
+
+/**
+ * The implementation of the IUigridLayoutEditpart.
+ */
+@SuppressWarnings("unchecked")
+public class GridLayoutEditpart extends LayoutEditpart<YGridLayout> implements
+		IGridLayoutEditpart {
+
+	private StylesController stylesController;
+
+	@Override
+	protected void handleModelMove(int featureId, Notification notification) {
+		switch (featureId) {
+		case ExtensionModelPackage.YGRID_LAYOUT__COLUMNS:
+		case ExtensionModelPackage.YGRID_LAYOUT__MARGIN:
+		case ExtensionModelPackage.YGRID_LAYOUT__SPACING:
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				ILayoutPresentation<?> presenter = getPresentation();
+				presenter.renderChildren(true);
+			}
+			break;
+		case ExtensionModelPackage.YGRID_LAYOUT__ELEMENTS:
+			super.handleModelMove(featureId, notification);
+			break;
+		default:
+			break;
+		}
+	}
+
+	@Override
+	public void initialize(IViewContext context, YGridLayout model) {
+		super.initialize(context, model);
+
+		stylesController = new StylesController();
+		model.eAdapters().add(stylesController);
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+			getModel().eAdapters().remove(stylesController);
+			stylesController = null;
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	protected void updateCellStyle(YEmbeddable target) {
+		if (isRendered()) {
+			getPresentation().updateCellStyle(target);
+		}
+	}
+
+	/**
+	 * This class automatically connects to all {@link YAbsoluteLayoutCellStyle}
+	 */
+	public class StylesController extends EContentAdapter {
+
+		/**
+		 * Add this adapter only to EObjects from grid package.
+		 */
+		protected void addAdapter(Notifier notifier) {
+			if (notifier instanceof EObject) {
+				EObject e = (EObject) notifier;
+				if (e instanceof YGridLayoutCellStyle) {
+					notifier.eAdapters().add(this);
+				}
+			}
+		}
+
+		public void notifyChanged(Notification notification) {
+			super.notifyChanged(notification);
+
+			// notify the layout to update the cell style
+			if (notification.getNotifier() instanceof YGridLayoutCellStyle) {
+				updateCellStyle(((YGridLayoutCellStyle) notification
+						.getNotifier()).getTarget());
+			}
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/HorizontalLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/HorizontalLayoutEditpart.java
new file mode 100644
index 0000000..b803564
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/HorizontalLayoutEditpart.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.GridLayoutEditpart.StylesController;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IHorizontalLayoutEditpart;
+
+/**
+ * The implementation of the IUigridLayoutEditpart.
+ */
+@SuppressWarnings("unchecked")
+public class HorizontalLayoutEditpart extends LayoutEditpart<YHorizontalLayout> implements IHorizontalLayoutEditpart {
+
+	private StylesController stylesController;
+
+	
+	@Override
+	public void initialize(IViewContext context, YHorizontalLayout model) {
+		super.initialize(context, model);
+
+		stylesController = new StylesController();
+		model.eAdapters().add(stylesController);
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+			getModel().eAdapters().remove(stylesController);
+			stylesController = null;
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	protected void updateCellStyle(YEmbeddable target) {
+		if (isRendered()) {
+			getPresentation().updateCellStyle(target);
+		}
+	}
+
+	/**
+	 * This class automatically connects to all {@link YAbsoluteLayoutCellStyle}
+	 */
+	public class StylesController extends EContentAdapter {
+
+		/**
+		 * Add this adapter only to EObjects from grid package.
+		 */
+		protected void addAdapter(Notifier notifier) {
+			if (notifier instanceof EObject) {
+				EObject e = (EObject) notifier;
+				if (e instanceof YHorizontalLayoutCellStyle) {
+					notifier.eAdapters().add(this);
+				}
+			}
+		}
+
+		public void notifyChanged(Notification notification) {
+			super.notifyChanged(notification);
+
+			// notify the layout to update the cell style
+			if (notification.getNotifier() instanceof YHorizontalLayoutCellStyle) {
+				updateCellStyle(((YHorizontalLayoutCellStyle) notification
+						.getNotifier()).getTarget());
+			}
+		}
+	}
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ImageEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ImageEditpart.java
new file mode 100644
index 0000000..ba84915
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ImageEditpart.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YImage;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IImageEditpart;
+
+/**
+ * The implementation of the IImageEditpart.
+ */
+public class ImageEditpart extends EmbeddableEditpart<YImage> implements
+		IImageEditpart {
+
+	public ImageEditpart() {
+		super();
+	}
+
+	@Override
+	public List<IValidatorEditpart> getDatatypeValidators() {
+		return Collections.emptyList();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/LabelEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/LabelEditpart.java
new file mode 100644
index 0000000..9c10bcf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/LabelEditpart.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YLabel;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ILabelEditpart;
+
+/**
+ * The implementation of the IUiLabelEditpart.
+ */
+public class LabelEditpart extends EmbeddableEditpart<YLabel> implements
+		ILabelEditpart {
+
+	@Override
+	public List<IValidatorEditpart> getDatatypeValidators() {
+		return Collections.emptyList();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ListEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ListEditpart.java
new file mode 100644
index 0000000..533a3be
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ListEditpart.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YList;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IListEditpart;
+
+/**
+ * The implementation of the IUiCheckBoxEditpart.
+ */
+public class ListEditpart extends FieldEditpart<YList> implements
+		IListEditpart {
+
+	public ListEditpart() {
+		super(ExtensionModelPackage.Literals.YLIST__DATATYPE);
+	}
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/MasterDetailEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/MasterDetailEditpart.java
new file mode 100644
index 0000000..a4b07a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/MasterDetailEditpart.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IMasterDetailEditpart;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.presentation.IMasterDetailPresentation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The implementation of the IMasterDetailEditpart.
+ */
+public class MasterDetailEditpart extends EmbeddableEditpart<YMasterDetail>
+		implements IMasterDetailEditpart {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(MasterDetailEditpart.class);
+
+	private IEmbeddableEditpart masterEditpart;
+	private IEmbeddableEditpart detailEditpart;
+
+	public MasterDetailEditpart() {
+		super(ExtensionModelPackage.Literals.YMASTER_DETAIL__DATATYPE);
+	}
+
+	@Override
+	public List<IValidatorEditpart> getDatatypeValidators() {
+		return Collections.emptyList();
+	}
+
+	protected void doInitPresentation(IWidgetPresentation<?> presentation) {
+
+		// Create a bean slot which is the input for the master detail. It is
+		// used by the presentation to bind the table, list,... to that slot.
+		IViewContext context = getView().getContext();
+		context.createBeanSlot(getCollectionBeanSlot(), getModel().getType());
+		// Creates a bean slot that is the input for the detail fields. It is
+		// used by the presentation to bind the detail fields to that slot.
+		context.createBeanSlot(getSelectionBeanSlot(), getModel().getType());
+
+		// load the elements
+		IEmbeddableEditpart masterEditpart = getMaster();
+		IEmbeddableEditpart detailEditpart = getDetail();
+
+		IMasterDetailPresentation<?> mdPresentation = (IMasterDetailPresentation<?>) presentation;
+
+		if (masterEditpart != null) {
+			mdPresentation.setMaster(masterEditpart.getPresentation());
+		}
+
+		if (detailEditpart != null) {
+			mdPresentation.setDetail(detailEditpart.getPresentation());
+		}
+	}
+
+	/**
+	 * Creates a bean slot that is the input for the detail fields. It is used
+	 * by the presentation to bind the detail fields to that slot.
+	 * 
+	 * @return
+	 */
+	protected String getSelectionBeanSlot() {
+		return "selection_" + getId();
+	}
+
+	/**
+	 * Create a bean slot which is the input for the master detail. It is used
+	 * by the presentation to bind the table, list,... to that slot.
+	 */
+	protected String getCollectionBeanSlot() {
+		return "input_" + getId();
+	}
+
+	@Override
+	public IEmbeddableEditpart getMaster() {
+		if (masterEditpart == null) {
+			internalLoadMaster();
+		}
+		return masterEditpart;
+	}
+
+	@Override
+	public IEmbeddableEditpart getDetail() {
+		if (detailEditpart == null) {
+			internalLoadDetail();
+		}
+		return detailEditpart;
+	}
+
+	/**
+	 * Is called to load and initialize the master.
+	 */
+	protected void internalLoadMaster() {
+		checkDisposed();
+
+		if (masterEditpart == null) {
+			YEmbeddable yMaster = getModel().getMasterElement();
+			IEmbeddableEditpart editPart = getEditpart(viewContext, yMaster);
+			internalSetMaster(editPart);
+		}
+	}
+
+	protected void internalSetMaster(IEmbeddableEditpart editPart) {
+		this.masterEditpart = editPart;
+	}
+
+	/**
+	 * Is called to load and initialize the detail.
+	 */
+	protected void internalLoadDetail() {
+		checkDisposed();
+
+		if (detailEditpart == null) {
+			YEmbeddable yDetail = getModel().getDetailElement();
+			IEmbeddableEditpart editPart = getEditpart(viewContext, yDetail);
+			internalSetDetail(editPart);
+		}
+	}
+
+	protected void internalSetDetail(IEmbeddableEditpart editPart) {
+		this.detailEditpart = editPart;
+	}
+
+	@Override
+	public void setMaster(IEmbeddableEditpart master) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			YMasterDetail yMasterDetail = getModel();
+			YEmbeddable yMaster = (YEmbeddable) master.getModel();
+			yMasterDetail.setMasterElement(yMaster);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	@Override
+	public void setDetail(IEmbeddableEditpart detail) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			YMasterDetail yMasterDetail = getModel();
+			YEmbeddable yDetail = (YEmbeddable) detail.getModel();
+			yMasterDetail.setDetailElement(yDetail);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT:
+			YEmbeddable yMaster = (YEmbeddable) notification.getNewValue();
+
+			IEmbeddableEditpart editPart = (IEmbeddableEditpart) getEditpart(viewContext, yMaster);
+			internalSetMaster(editPart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				IMasterDetailPresentation<?> presenter = getPresentation();
+				if (yMaster != null) {
+					presenter.setMaster(editPart.getPresentation());
+				} else {
+					presenter.setMaster(null);
+				}
+			}
+			break;
+		case ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT:
+			YEmbeddable yDetail = (YEmbeddable) notification.getNewValue();
+
+			editPart = (IEmbeddableEditpart) getEditpart(viewContext, yDetail);
+			internalSetDetail(editPart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				IMasterDetailPresentation<?> presenter = getPresentation();
+				if (yDetail != null) {
+					presenter.setDetail(editPart.getPresentation());
+				} else {
+					presenter.setDetail(null);
+				}
+			}
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * Returns true, if the presenter is present.
+	 * 
+	 * @return
+	 */
+	private boolean isPresentationPresent() {
+		return internalGetPresentation() != null;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/NumericFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/NumericFieldEditpart.java
new file mode 100644
index 0000000..3ff8273
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/NumericFieldEditpart.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.INumericFieldEditpart;
+
+/**
+ * The implementation of the IUiNumericFieldEditpart.
+ */
+public class NumericFieldEditpart extends FieldEditpart<YNumericField>
+		implements INumericFieldEditpart {
+
+	public NumericFieldEditpart() {
+		super(ExtensionModelPackage.Literals.YNUMERIC_FIELD__DATATYPE);
+	}
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/NumericSearchFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/NumericSearchFieldEditpart.java
new file mode 100644
index 0000000..af05a7b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/NumericSearchFieldEditpart.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.common.filter.IFilterProvidingPresentation;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.INumericSearchFieldEditpart;
+
+/**
+ * The implementation of the INumericSearchFieldEditpart.
+ */
+public class NumericSearchFieldEditpart extends
+		FieldEditpart<YNumericSearchField> implements
+		INumericSearchFieldEditpart {
+
+	public NumericSearchFieldEditpart() {
+		super();
+	}
+
+	
+	@Override
+	public Object getFilter() {
+		IFilterProvidingPresentation presentation = (IFilterProvidingPresentation) getPresentation();
+		return presentation.getFilter();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/OptionsGroupEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/OptionsGroupEditpart.java
new file mode 100644
index 0000000..d1195f7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/OptionsGroupEditpart.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IOptionsGroupEditpart;
+
+public class OptionsGroupEditpart extends FieldEditpart<YOptionsGroup>
+		implements IOptionsGroupEditpart {
+
+	public OptionsGroupEditpart() {
+		super(ExtensionModelPackage.Literals.YOPTIONS_GROUP__DATATYPE);
+	}
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/PanelEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/PanelEditpart.java
new file mode 100644
index 0000000..085ebc2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/PanelEditpart.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPanel;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IPanelEditpart;
+
+/**
+ * The implementation of the IUigridLayoutEditpart.
+ */
+@SuppressWarnings("unchecked")
+public class PanelEditpart extends LayoutEditpart<YPanel> implements IPanelEditpart {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/PasswordFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/PasswordFieldEditpart.java
new file mode 100644
index 0000000..f692f82
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/PasswordFieldEditpart.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011 - 2015, Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IPasswordFieldEditpart;
+
+/**
+ * The implementation of the IPasswordFieldEditpart.
+ */
+public class PasswordFieldEditpart extends FieldEditpart<YPasswordField>
+		implements IPasswordFieldEditpart {
+
+	public PasswordFieldEditpart() {
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ProgressBarEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ProgressBarEditpart.java
new file mode 100644
index 0000000..e77bdc8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/ProgressBarEditpart.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IProgressBarEditpart;
+
+/**
+ * The implementation of the YProgressBar.
+ */
+public class ProgressBarEditpart extends FieldEditpart<YProgressBar> implements
+		IProgressBarEditpart {
+
+	public ProgressBarEditpart() {
+		super(ExtensionModelPackage.Literals.YPROGRESS_BAR__DATATYPE);
+	}
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SearchPanelEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SearchPanelEditpart.java
new file mode 100644
index 0000000..26577d5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SearchPanelEditpart.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.filter.IFilterProvidingPresentation;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ISearchPanelEditpart;
+
+/**
+ * The implementation of the ISearchPanelEditpart.
+ */
+@SuppressWarnings("unchecked")
+public class SearchPanelEditpart extends LayoutEditpart<YSearchPanel> implements
+		ISearchPanelEditpart {
+
+
+	@Override
+	protected void handleModelSet(int featureId, Notification notification) {
+		switch (featureId) {
+		case ExtensionModelPackage.YSEARCH_PANEL__APPLY_FILTER:
+			applyFilter();
+			break;
+		default:
+			super.handleModelSet(featureId, notification);
+		}
+	}
+
+	/**
+	 * Accesses the presentation to return the filter and puts the new filter in
+	 * the model. So other parties can react for the changed filter.
+	 */
+	private void applyFilter() {
+		IFilterProvidingPresentation presentation = (IFilterProvidingPresentation) getPresentation();
+		Object filter = presentation.getFilter();
+		getModel().setFilter(filter);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SliderEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SliderEditpart.java
new file mode 100644
index 0000000..3178446
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SliderEditpart.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSlider;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ISliderEditpart;
+
+/**
+ * The implementation of the IUiTextFieldEditpart.
+ */
+public class SliderEditpart extends FieldEditpart<YSlider> implements
+		ISliderEditpart {
+
+	public SliderEditpart() {
+		super();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SplitPanelEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SplitPanelEditpart.java
new file mode 100644
index 0000000..6068df4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SplitPanelEditpart.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ISplitPanelEditpart;
+
+@SuppressWarnings("unchecked")
+public class SplitPanelEditpart extends LayoutEditpart<YSplitPanel> implements
+		ISplitPanelEditpart {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SuggestTextFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SuggestTextFieldEditpart.java
new file mode 100644
index 0000000..b7b3aab
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/SuggestTextFieldEditpart.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.common.notification.IReloadRequestService;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ISuggestTextFieldEditpart;
+
+public class SuggestTextFieldEditpart extends FieldEditpart<YSuggestTextField>
+		implements ISuggestTextFieldEditpart,
+		IReloadRequestService.ModeListener {
+
+	public SuggestTextFieldEditpart() {
+		super(ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__DATATYPE);
+	}
+
+
+	@Override
+	public void notifyMode(boolean enabled) {
+		getModel().setUseSuggestions(enabled);
+	}
+
+	protected void doInitPresentation(IWidgetPresentation<?> presentation) {
+		super.doInitPresentation(presentation);
+
+		IViewContext context = getView().getContext();
+		IReloadRequestService service = context
+				.getService(IReloadRequestService.class.getName());
+		if (service != null) {
+			service.addListener(this);
+		}
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+			IViewContext context = getView().getContext();
+			IReloadRequestService service = context
+					.getService(IReloadRequestService.class.getName());
+			if (service != null) {
+				service.removeListener(this);
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TabEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TabEditpart.java
new file mode 100644
index 0000000..d0a5267
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TabEditpart.java
@@ -0,0 +1,162 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.presentation.DelegatingPresenterFactory;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITabEditpart;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITabSheetEditpart;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.presentation.ITabPresentation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TabEditpart extends ElementEditpart<YTab> implements ITabEditpart {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(EmbeddableEditpart.class);
+	private ITabPresentation<?> presentation;
+
+	/**
+	 * The default constructor.
+	 */
+	protected TabEditpart() {
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public ITabSheetEditpart getParent() {
+		YTabSheet yParent = getModel().getParent();
+		return yParent != null ? (ITabSheetEditpart) getEditpart(viewContext, yParent)
+				: null;
+	}
+
+	@Override
+	public IViewEditpart getView() {
+		YView yView = getModel().getView();
+		return yView != null ? (IViewEditpart) getEditpart(viewContext, yView) : null;
+	}
+
+	/**
+	 * Returns the instance of the presentation, but does not load it.
+	 * 
+	 * @param <A>
+	 *            An instance of {@link IWidgetPresentation}
+	 * @return presentation
+	 */
+	@SuppressWarnings("unchecked")
+	protected <A extends IWidgetPresentation<?>> A internalGetPresentation() {
+		return (A) presentation;
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public <A extends ITabPresentation<?>> A getPresentation() {
+		if (presentation == null) {
+			presentation = createPresenter();
+		}
+		return (A) presentation;
+	}
+
+	/**
+	 * Is called to created the presenter for this edit part.
+	 */
+	protected <A extends IWidgetPresentation<?>> A createPresenter() {
+		IViewEditpart viewEditPart = getView();
+		if (viewEditPart == null) {
+			LOGGER.info("View is null");
+			return null;
+		}
+		return DelegatingPresenterFactory.getInstance().createPresentation(
+				viewEditPart.getContext(), this);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			// if directly attached to a view, then remove it
+//			ITabSheetEditpart parent = getParent();
+//			if (parent != null) {
+//				parent.removeTab(this);
+//			}
+
+			// dispose the presenter
+			//
+			if (presentation != null) {
+				presentation.dispose();
+				presentation = null;
+			}
+
+		} finally {
+			super.internalDispose();
+		}
+	}
+	
+	@Override
+	public void requestRender() {
+		if (getParent() != null) {
+			getParent().renderTab(this);
+		} else {
+			unrender();
+		}
+	}
+
+	@Override
+	public Object render(Object parentWidget) {
+		return getPresentation().createWidget(parentWidget);
+	}
+
+	@Override
+	public void requestUnrender() {
+		if (getParent() != null) {
+			getParent().unrenderTab(this);
+		} else {
+			unrender();
+		}
+	}
+
+	@Override
+	public void unrender() {
+		getPresentation().unrender();
+	}
+
+	@Override
+	public boolean isRendered() {
+		return internalGetPresentation() != null
+				&& internalGetPresentation().isRendered();
+	}
+
+	@Override
+	public Object getWidget() {
+		return getPresentation().getWidget();
+	}
+
+	@Override
+	public void requestDispose() {
+		if (getParent() != null) {
+			getParent().disposeTab(this);
+		} else {
+			dispose();
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TabSheetEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TabSheetEditpart.java
new file mode 100644
index 0000000..ac5789f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TabSheetEditpart.java
@@ -0,0 +1,352 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.EmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITabEditpart;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITabSheetEditpart;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.presentation.ITabSheetPresentation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TabSheetEditpart extends EmbeddableEditpart<YTabSheet> implements
+		ITabSheetEditpart {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(LayoutEditpart.class);
+	private List<ITabEditpart> tabEditparts;
+
+	/**
+	 * Default constructor.
+	 */
+	public TabSheetEditpart() {
+
+	}
+
+	@Override
+	public List<ITabEditpart> getTabs() {
+		if (tabEditparts == null) {
+			internalLoadTabs();
+		}
+		return Collections.unmodifiableList(tabEditparts);
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+			// lazy loading: edit parts also have to be disposed if they have
+			// not been loaded yet,
+			// but exist in the model.
+			if (tabEditparts != null || getModel().getTabs().size() > 0) {
+				List<ITabEditpart> tempElements = getTabs();
+				synchronized (tabEditparts) {
+					for (ITabEditpart editpart : tempElements
+							.toArray(new ITabEditpart[tempElements.size()])) {
+						editpart.dispose();
+					}
+				}
+				tabEditparts = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	@Override
+	public void addTab(ITabEditpart element) {
+		try {
+			checkDisposed();
+
+			// add the element by using the model
+			//
+			YTabSheet yLayout = getModel();
+			YTab yTab = (YTab) element.getModel();
+			yLayout.getTabs().add(yTab);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	@Override
+	public void removeTab(ITabEditpart element) {
+		try {
+			checkDisposed();
+
+			// remove the element by using the model
+			//
+			YTabSheet yLayout = getModel();
+			YTab yTab = (YTab) element.getModel();
+			yLayout.getTabs().remove(yTab);
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (RuntimeException e) {
+			// END SUPRESS CATCH EXCEPTION
+			LOGGER.error("{}", e);
+			throw e;
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	protected void handleModelAdd(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case ExtensionModelPackage.YTAB_SHEET__TABS:
+			YTab yTab = (YTab) notification.getNewValue();
+
+			ITabEditpart editPart = (ITabEditpart) getEditpart(viewContext, yTab);
+			internalAddElement(editPart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				ITabSheetPresentation<?> presenter = getPresentation();
+				presenter.renderTabs(true);
+			}
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@SuppressWarnings("unchecked")
+	protected void handleModelAddMany(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case ExtensionModelPackage.YTAB_SHEET__TABS:
+			List<YTab> yTabs = (List<YTab>) notification.getNewValue();
+			for (YTab yTab : yTabs) {
+				ITabEditpart editPart = (ITabEditpart) getEditpart(viewContext, yTab);
+				internalAddElement(editPart);
+			}
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				ITabSheetPresentation<?> presenter = getPresentation();
+				presenter.renderTabs(true);
+			}
+			break;
+		default:
+			break;
+		}
+	}
+	
+	/**
+	 * {@inheritDoc}
+	 */
+	@SuppressWarnings("unchecked")
+	protected void handleModelRemoveMany(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case ExtensionModelPackage.YTAB_SHEET__TABS:
+			List<YTab> yTabs = (List<YTab>) notification.getOldValue();
+			for (YTab yTab : yTabs) {
+				ITabEditpart editPart = (ITabEditpart) getEditpart(viewContext, yTab);
+				internalRemoveTab(editPart);
+			}
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				ITabSheetPresentation<?> presenter = getPresentation();
+				presenter.renderTabs(true);
+			}
+			break;
+		default:
+			break;
+		}
+	}
+
+	@Override
+	protected void handleModelMove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case ExtensionModelPackage.YTAB_SHEET__TABS:
+			YTab yTab = (YTab) notification.getNewValue();
+
+			ITabEditpart editPart = (ITabEditpart) getEditpart(viewContext, yTab);
+			internalMoveTab(editPart, notification.getPosition());
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				ITabSheetPresentation<?> presenter = getPresentation();
+				presenter.renderTabs(true);
+			}
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * Returns true, if the presenter is present.
+	 * 
+	 * @return
+	 */
+	private boolean isPresentationPresent() {
+		return internalGetPresentation() != null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	protected void handleModelRemove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case ExtensionModelPackage.YTAB_SHEET__TABS:
+			YTab yTab = (YTab) notification.getOldValue();
+
+			ITabEditpart editPart = (ITabEditpart) getEditpart(viewContext, yTab);
+			internalRemoveTab(editPart);
+
+			// handle the presentation
+			//
+			if (isPresentationPresent()) {
+				ITabSheetPresentation<?> presenter = getPresentation();
+				presenter.renderTabs(true);
+			}
+			break;
+		default:
+			break;
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and add the given editpart to the
+	 * list of tabs.
+	 * 
+	 * @param editpart
+	 *            The editpart to be added
+	 */
+	protected void internalAddElement(ITabEditpart editpart) {
+		checkDisposed();
+
+		if (tabEditparts == null) {
+			internalLoadTabs();
+		}
+		if (!tabEditparts.contains(editpart)) {
+			tabEditparts.add(editpart);
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and to move the given editpart in
+	 * the list of tabs.
+	 * 
+	 * @param editpart
+	 *            The editpart to be inserted
+	 * @param index
+	 *            The index to move the element.
+	 */
+	protected void internalMoveTab(ITabEditpart editpart, int index) {
+		checkDisposed();
+
+		if (tabEditparts == null) {
+			internalLoadTabs();
+		} else if (!tabEditparts.contains(editpart)) {
+			throw new RuntimeException(String.format(
+					"Editpart %s is not contained in tabs", editpart.getId()));
+		} else {
+			tabEditparts.remove(editpart);
+			tabEditparts.add(index, editpart);
+		}
+	}
+
+	/**
+	 * Is called to change the internal state and remove the given editpart from
+	 * the list of tabs.
+	 * 
+	 * @param editpart
+	 *            The editpart to be removed
+	 */
+	protected void internalRemoveTab(ITabEditpart editpart) {
+		checkDisposed();
+
+		if (tabEditparts != null && editpart != null) {
+			tabEditparts.remove(editpart);
+		}
+	}
+
+	/**
+	 * Is called to load and initialize all tabs.
+	 */
+	protected void internalLoadTabs() {
+		checkDisposed();
+
+		if (tabEditparts == null) {
+			tabEditparts = new ArrayList<ITabEditpart>();
+			for (YTab yTab : getModel().getTabs()) {
+				ITabEditpart editPart = getEditpart(viewContext, yTab);
+				internalAddElement(editPart);
+			}
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public ITabSheetPresentation<?> getPresentation() {
+		return super.getPresentation();
+	}
+
+	@Override
+	public List<IValidatorEditpart> getDatatypeValidators() {
+		return Collections.emptyList();
+	}
+
+	@Override
+	public void renderTab(ITabEditpart editpart) {
+		if (isPresentationPresent()) {
+			ITabSheetPresentation<?> presenter = getPresentation();
+			presenter.renderTabs(true);
+		}
+	}
+
+	@Override
+	public void disposeTab(ITabEditpart editpart) {
+		if (isPresentationPresent()) {
+			ITabSheetPresentation<?> presenter = getPresentation();
+			presenter.unrenderTab(editpart);
+			editpart.dispose();
+		}
+	}
+
+	@Override
+	public void unrenderTab(ITabEditpart editpart) {
+		if (isPresentationPresent()) {
+			ITabSheetPresentation<?> presenter = getPresentation();
+			presenter.unrenderTab(editpart);
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TableEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TableEditpart.java
new file mode 100644
index 0000000..ca9da51
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TableEditpart.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.common.filter.IFilterablePresentation;
+import org.eclipse.osbp.ecview.core.common.filter.IRefreshRowsPresentation;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITableEditpart;
+
+/**
+ * The implementation of the IUiTableEditpart.
+ */
+public class TableEditpart extends FieldEditpart<YTable> implements
+		ITableEditpart {
+
+	public TableEditpart() {
+		super(ExtensionModelPackage.Literals.YTABLE__DATATYPE);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	protected void handleModelSet(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case ExtensionModelPackage.YTABLE__FILTER:
+			IFilterablePresentation presentation = getPresentation();
+			presentation.applyFilter(notification.getNewValue());
+			break;
+		case ExtensionModelPackage.YTABLE__REFRESH:
+			if (isPresentationPresent()) {
+				IRefreshRowsPresentation refresher = getPresentation();
+				refresher.refreshRows();
+			}
+			break;
+		default:
+			super.handleModelSet(featureId, notification);
+		}
+
+	}
+
+	@Override
+	protected void handleModelMove(int featureId, Notification notification) {
+		checkDisposed();
+
+		switch (featureId) {
+		case ExtensionModelPackage.YTABLE__COLUMNS:
+			if (isPresentationPresent()) {
+				if (getParent() instanceof ILayoutEditpart) {
+					ILayoutEditpart parent = (ILayoutEditpart) getParent();
+					parent.unrenderChild((IEmbeddableEditpart) getEditpart());
+					parent.renderChild((IEmbeddableEditpart) getEditpart());
+				}
+			}
+			break;
+		default:
+			super.handleModelMove(featureId, notification);
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TextAreaEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TextAreaEditpart.java
new file mode 100644
index 0000000..512d916
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TextAreaEditpart.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITextAreaEditpart;
+
+/**
+ * The implementation of the IUiTextAreaEditpart.
+ */
+public class TextAreaEditpart extends FieldEditpart<YTextArea> implements
+		ITextAreaEditpart {
+
+	public TextAreaEditpart() {
+		super(ExtensionModelPackage.Literals.YTEXT_AREA__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TextFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TextFieldEditpart.java
new file mode 100644
index 0000000..e7bad27
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TextFieldEditpart.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITextFieldEditpart;
+
+/**
+ * The implementation of the ITextFieldEditpart.
+ */
+public class TextFieldEditpart extends FieldEditpart<YTextField> implements
+		ITextFieldEditpart {
+
+	public TextFieldEditpart() {
+		super(ExtensionModelPackage.Literals.YTEXT_FIELD__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TextSearchFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TextSearchFieldEditpart.java
new file mode 100644
index 0000000..e1ececd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TextSearchFieldEditpart.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.common.filter.IFilterProvidingPresentation;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITextSearchFieldEditpart;
+
+/**
+ * The implementation of the ITextSearchFieldEditpart.
+ */
+public class TextSearchFieldEditpart extends FieldEditpart<YTextSearchField>
+		implements ITextSearchFieldEditpart {
+
+	public TextSearchFieldEditpart() {
+		super();
+	}
+	
+	@Override
+	public Object getFilter() {
+		IFilterProvidingPresentation presentation = (IFilterProvidingPresentation) getPresentation();
+		return presentation.getFilter();
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TreeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TreeEditpart.java
new file mode 100644
index 0000000..e742a63
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/TreeEditpart.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.FieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTree;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITreeEditpart;
+
+/**
+ * The implementation of the IUiTableEditpart.
+ */
+public class TreeEditpart extends FieldEditpart<YTree> implements ITreeEditpart {
+
+	public TreeEditpart() {
+		super(ExtensionModelPackage.Literals.YTREE__DATATYPE);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/VerticalLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/VerticalLayoutEditpart.java
new file mode 100644
index 0000000..81132a9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/VerticalLayoutEditpart.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.LayoutEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IVerticalLayoutEditpart;
+
+/**
+ * The implementation of the IUigridLayoutEditpart.
+ */
+@SuppressWarnings("unchecked")
+public class VerticalLayoutEditpart extends LayoutEditpart<YVerticalLayout>
+		implements IVerticalLayoutEditpart {
+
+	private StylesController stylesController;
+
+	@Override
+	public void initialize(IViewContext context, YVerticalLayout model) {
+		super.initialize(context, model);
+
+		stylesController = new StylesController();
+		model.eAdapters().add(stylesController);
+	}
+
+	@Override
+	protected void internalDispose() {
+		try {
+			getModel().eAdapters().remove(stylesController);
+			stylesController = null;
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+	protected void updateCellStyle(YEmbeddable target) {
+		if (isRendered()) {
+			getPresentation().updateCellStyle(target);
+		}
+	}
+
+	/**
+	 * This class automatically connects to all {@link YAbsoluteLayoutCellStyle}
+	 */
+	public class StylesController extends EContentAdapter {
+
+		/**
+		 * Add this adapter only to EObjects from grid package.
+		 */
+		protected void addAdapter(Notifier notifier) {
+			if (notifier instanceof EObject) {
+				EObject e = (EObject) notifier;
+				if (e instanceof YVerticalLayoutCellStyle) {
+					notifier.eAdapters().add(this);
+				}
+			}
+		}
+
+		public void notifyChanged(Notification notification) {
+			super.notifyChanged(notification);
+
+			// notify the layout to update the cell style
+			if (notification.getNotifier() instanceof YVerticalLayoutCellStyle) {
+				updateCellStyle(((YVerticalLayoutCellStyle) notification
+						.getNotifier()).getTarget());
+			}
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/commands/AddToTableEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/commands/AddToTableEditpart.java
new file mode 100644
index 0000000..d4d43c2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/commands/AddToTableEditpart.java
@@ -0,0 +1,139 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.commands;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.beans.PojoObservables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.CommandEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.commands.IAddToTableCommandEditpart;
+import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AddToTableEditpart extends CommandEditpart<YAddToTableCommand>
+		implements IAddToTableCommandEditpart {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(AddToTableEditpart.class);
+
+	private boolean activated;
+	private Binding triggerBinding;
+
+	@Override
+	public void activate() {
+		// bind the values
+		IECViewBindingManager bindingManager = getView().getContext()
+				.getService(IECViewBindingManager.class.getName());
+
+		// Bind the trigger
+		IBindableValueEndpointEditpart triggerEPEditpart = (IBindableValueEndpointEditpart) getEditpart(
+				viewContext, getModel()
+				.createTriggerEndpoint());
+		IObservableValue modelObservable = triggerEPEditpart.getObservable();
+		IObservableValue targetObservable = PojoObservables.observeValue(this,
+				"trigger");
+		triggerBinding = bindingManager.bindValue(targetObservable,
+				modelObservable, new UpdateValueStrategy(
+						UpdateValueStrategy.POLICY_NEVER),
+				new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE));
+		activated = true;
+	}
+
+	@Override
+	public void execute() {
+		YTable yTable = getModel().getTable();
+		Object newEntry = createNewBean(yTable);
+		if (newEntry != null) {
+			yTable.getCollection().add(newEntry);
+
+			if (yTable.getSelectionType() == YSelectionType.SINGLE) {
+				yTable.setSelection(newEntry);
+			} else {
+				yTable.getMultiSelection().add(newEntry);
+			}
+		}
+
+	}
+
+	/**
+	 * Tries to create a new bean.
+	 * 
+	 * @return
+	 */
+	protected Object createNewBean(YTable yTable) {
+
+		Class<?> beanClass = yTable.getType();
+		Object result = null;
+		if (beanClass != null) {
+			try {
+				result = beanClass.newInstance();
+			} catch (InstantiationException e) {
+			} catch (IllegalAccessException e) {
+			}
+		}
+
+		if (result == null) {
+			ITypeProviderService service = getViewContext(getModel())
+					.getService(ITypeProviderService.class.getName());
+			beanClass = service.forName(null, yTable.getTypeQualifiedName());
+			try {
+				if (beanClass != null) {
+					result = beanClass.newInstance();
+				}
+			} catch (InstantiationException e) {
+			} catch (IllegalAccessException e) {
+			}
+		}
+
+		if (result == null) {
+			LOGGER.error("Could not create new bean instance for table "
+					+ yTable);
+		}
+
+		return result;
+	}
+
+	/**
+	 * Setting a value will trigger the command execution.
+	 * 
+	 * @param value
+	 */
+	public void setTrigger(Object value) {
+		// execute the command
+		if (activated && value != null) {
+			execute();
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (triggerBinding != null) {
+				triggerBinding.dispose();
+				triggerBinding = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/commands/RemoveFromTableEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/commands/RemoveFromTableEditpart.java
new file mode 100644
index 0000000..e4b028b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/commands/RemoveFromTableEditpart.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.commands;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.beans.PojoObservables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.CommandEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.commands.IRemoveFromTableCommandEditpart;
+
+public class RemoveFromTableEditpart extends
+		CommandEditpart<YRemoveFromTableCommand> implements
+		IRemoveFromTableCommandEditpart {
+
+	private boolean activated;
+	private Binding triggerBinding;
+
+	@Override
+	public void activate() {
+		// bind the values
+		IECViewBindingManager bindingManager = getView().getContext()
+				.getService(IECViewBindingManager.class.getName());
+
+		// Bind the trigger from Y-Element to this instance
+		IBindableValueEndpointEditpart triggerEPEditpart = (IBindableValueEndpointEditpart) getEditpart(viewContext, getModel()
+				.createTriggerEndpoint());
+		IObservableValue modelObservable = triggerEPEditpart.getObservable();
+		IObservableValue targetObservable = PojoObservables.observeValue(this,
+				"trigger");
+		triggerBinding = bindingManager.bindValue(targetObservable,
+				modelObservable, new UpdateValueStrategy(
+						UpdateValueStrategy.POLICY_NEVER),
+				new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE));
+		activated = true;
+	}
+
+	@Override
+	public void execute() {
+		YTable yTable = getModel().getTable();
+		if (yTable.getSelectionType() == YSelectionType.SINGLE) {
+			Object selection = yTable.getSelection();
+			if (selection != null) {
+				if (yTable.getSelection() == selection) {
+					yTable.setSelection(null);
+				}
+				yTable.getCollection().remove(selection);
+			}
+		} else {
+			List<Object> selection = yTable.getMultiSelection();
+			if (selection != null) {
+				yTable.getMultiSelection().removeAll(selection);
+				yTable.getCollection().removeAll(selection);
+			}
+		}
+	}
+
+	/**
+	 * Setting a value will trigger the command execution.
+	 * 
+	 * @param value
+	 */
+	public void setTrigger(Object value) {
+		// execute the command
+		if (activated && value != null) {
+			execute();
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (triggerBinding != null) {
+				triggerBinding.dispose();
+				triggerBinding = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/commands/SetNewBeanInstanceEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/commands/SetNewBeanInstanceEditpart.java
new file mode 100644
index 0000000..a49403c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/commands/SetNewBeanInstanceEditpart.java
@@ -0,0 +1,169 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.commands;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.beans.PojoObservables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindableValueEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.CommandEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.commands.ISetNewInstanceCommandEditpart;
+import org.eclipse.osbp.runtime.common.state.ISharedStateContext;
+import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SetNewBeanInstanceEditpart extends
+		CommandEditpart<YSetNewBeanInstanceCommand> implements
+		ISetNewInstanceCommandEditpart {
+
+	private static final Logger LOGGER = LoggerFactory
+			.getLogger(SetNewBeanInstanceEditpart.class);
+
+	private boolean activated;
+	private Binding triggerBinding;
+
+	@Override
+	public void activate() {
+		// bind the values
+		IECViewBindingManager bindingManager = getView().getContext()
+				.getService(IECViewBindingManager.class.getName());
+
+		// Bind the trigger
+		IBindableValueEndpointEditpart triggerEPEditpart = (IBindableValueEndpointEditpart) getEditpart(viewContext, getModel()
+				.createTriggerEndpoint());
+		IObservableValue modelObservable = triggerEPEditpart.getObservable();
+		IObservableValue targetObservable = PojoObservables.observeValue(this,
+				"trigger");
+		triggerBinding = bindingManager.bindValue(targetObservable,
+				modelObservable, new UpdateValueStrategy(
+						UpdateValueStrategy.POLICY_NEVER),
+				new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE));
+		activated = true;
+	}
+
+	@Override
+	public void execute() {
+		try {
+			Object newEntry = createNewBean();
+			if (newEntry != null) {
+
+				// add the entry to the shared state, if available
+				ISharedStateContext sharedState = getView().getContext()
+						.getService(ISharedStateContext.class.getName());
+				if (sharedState != null) {
+					sharedState.addNewTransient(newEntry);
+				}
+
+				// now pass the value to the target
+				IBindableValueEndpointEditpart valueEPEditpart = (IBindableValueEndpointEditpart) getEditpart(viewContext, getModel()
+						.getTarget());
+
+				// TODO workaround for databinding -> New instance may be
+				// polymorphic brother of the current instance. And if binding
+				// the new instance, numeric field will not become unbound. So
+				// lets set a new instance of current set instance before
+				// setting the new entry.
+				IObservableValue observableValue = valueEPEditpart
+						.getObservable();
+				Object value = observableValue.getValue();
+				if (value != null) {
+					Class<?> valueClass = value.getClass();
+					try {
+						// now all fields will become unbound from the current
+						// instance
+						observableValue.setValue(valueClass.newInstance());
+					} catch (Exception e) {
+						LOGGER.warn("Could not reset the value by {}",
+								valueClass.getName());
+					}
+				}
+
+				// and now set the new value
+				observableValue.setValue(newEntry);
+			}
+		} catch (Exception e) {
+			LOGGER.error("{}", e);
+			throw new RuntimeException(e);
+		}
+	}
+
+	/**
+	 * Tries to create a new bean.
+	 * 
+	 * @return
+	 */
+	protected Object createNewBean() {
+
+		Class<?> beanClass = getModel().getType();
+		Object result = null;
+		if (beanClass != null) {
+			try {
+				result = beanClass.newInstance();
+			} catch (InstantiationException e) {
+			} catch (IllegalAccessException e) {
+			}
+		}
+
+		if (result == null) {
+			ITypeProviderService service = getViewContext(getModel())
+					.getService(ITypeProviderService.class.getName());
+			beanClass = service
+					.forName(null, getModel().getTypeQualifiedName());
+			try {
+				if (beanClass != null) {
+					result = beanClass.newInstance();
+				}
+			} catch (InstantiationException e) {
+			} catch (IllegalAccessException e) {
+			}
+		}
+
+		if (result == null) {
+			LOGGER.error("Could not create new bean instance for "
+					+ getModel().getTypeQualifiedName());
+		}
+
+		return result;
+	}
+
+	/**
+	 * Setting a value will trigger the command execution.
+	 * 
+	 * @param value
+	 */
+	public void setTrigger(Object value) {
+		// execute the command
+		if (activated && value != null) {
+			execute();
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected void internalDispose() {
+		try {
+			if (triggerBinding != null) {
+				triggerBinding.dispose();
+				triggerBinding = null;
+			}
+		} finally {
+			super.internalDispose();
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/BrowserDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/BrowserDatatypeEditpart.java
new file mode 100644
index 0000000..974380c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/BrowserDatatypeEditpart.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.IBrowserDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class BrowserDatatypeEditpart extends DatatypeEditpart<YBrowserDatatype>
+		implements IBrowserDatatypeEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/CheckBoxDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/CheckBoxDatatypeEditpart.java
new file mode 100644
index 0000000..9268226
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/CheckBoxDatatypeEditpart.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.ICheckBoxDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class CheckBoxDatatypeEditpart extends
+		DatatypeEditpart<YCheckBoxDatatype> implements
+		ICheckBoxDatatypeEditpart {
+
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/ComboBoxDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/ComboBoxDatatypeEditpart.java
new file mode 100644
index 0000000..e4a9768
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/ComboBoxDatatypeEditpart.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.IComboBoxDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class ComboBoxDatatypeEditpart extends
+		DatatypeEditpart<YComboBoxDatatype> implements
+		IComboBoxDatatypeEditpart {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/DateTimeDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/DateTimeDatatypeEditpart.java
new file mode 100644
index 0000000..34e1cc2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/DateTimeDatatypeEditpart.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.IDateTimeDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class DateTimeDatatypeEditpart extends
+		DatatypeEditpart<YDateTimeDatatype> implements
+		IDateTimeDatatypeEditpart {
+
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/DecimalDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/DecimalDatatypeEditpart.java
new file mode 100644
index 0000000..57b2ec6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/DecimalDatatypeEditpart.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.IDecimalDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class DecimalDatatypeEditpart extends DatatypeEditpart<YDecimalDatatype>
+		implements IDecimalDatatypeEditpart {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/ListDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/ListDatatypeEditpart.java
new file mode 100644
index 0000000..28e2c23
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/ListDatatypeEditpart.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.IListDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class ListDatatypeEditpart extends DatatypeEditpart<YListDataType>
+		implements IListDatatypeEditpart {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/NumericDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/NumericDatatypeEditpart.java
new file mode 100644
index 0000000..8696650
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/NumericDatatypeEditpart.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.INumericDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class NumericDatatypeEditpart extends DatatypeEditpart<YNumericDatatype>
+		implements INumericDatatypeEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/OptionsGroupDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/OptionsGroupDatatypeEditpart.java
new file mode 100644
index 0000000..5e45059
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/OptionsGroupDatatypeEditpart.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.IOptionsGroupDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class OptionsGroupDatatypeEditpart extends
+		DatatypeEditpart<YOptionsGroupDataType> implements
+		IOptionsGroupDatatypeEditpart {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/ProgressBarDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/ProgressBarDatatypeEditpart.java
new file mode 100644
index 0000000..02c1ed7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/ProgressBarDatatypeEditpart.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.IProgressBarDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class ProgressBarDatatypeEditpart extends
+		DatatypeEditpart<YProgressBarDatatype> implements
+		IProgressBarDatatypeEditpart {
+
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TabSheetDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TabSheetDatatypeEditpart.java
new file mode 100644
index 0000000..65e5ded
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TabSheetDatatypeEditpart.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.ITabSheetDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class TabSheetDatatypeEditpart extends
+		DatatypeEditpart<YTabSheetDatatype> implements
+		ITabSheetDatatypeEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TableDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TableDatatypeEditpart.java
new file mode 100644
index 0000000..75514f1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TableDatatypeEditpart.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.ITableDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class TableDatatypeEditpart extends DatatypeEditpart<YTableDatatype>
+		implements ITableDatatypeEditpart {
+
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TextAreaDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TextAreaDatatypeEditpart.java
new file mode 100644
index 0000000..50631db
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TextAreaDatatypeEditpart.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.ITextAreaDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class TextAreaDatatypeEditpart extends
+		DatatypeEditpart<YTextAreaDatatype> implements
+		ITextAreaDatatypeEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TextDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TextDatatypeEditpart.java
new file mode 100644
index 0000000..d247d3b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TextDatatypeEditpart.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.ITextDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class TextDatatypeEditpart extends DatatypeEditpart<YTextDatatype>
+		implements ITextDatatypeEditpart {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TreeDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TreeDatatypeEditpart.java
new file mode 100644
index 0000000..cebd3c4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts.emf/src/org/eclipse/osbp/ecview/core/extension/editpart/emf/datatypes/TreeDatatypeEditpart.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.emf.datatypes.DatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes.ITreeDatatypeEditpart;
+
+/**
+ * An edit part for datatypes.
+ */
+public class TreeDatatypeEditpart extends DatatypeEditpart<YTreeDatatype>
+		implements ITreeDatatypeEditpart {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/.checkstyle b/org.eclipse.osbp.ecview.core.extension.editparts/.checkstyle
new file mode 100644
index 0000000..2f2667a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <fileset name="all" enabled="true" check-config-name="emfstoreStyle" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/.project b/org.eclipse.osbp.ecview.core.extension.editparts/.project
new file mode 100644
index 0000000..e274e0f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.extension.editparts</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/LICENSE.txt b/org.eclipse.osbp.ecview.core.extension.editparts/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.extension.editparts/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..21a580c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.extension.editparts
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.extension.editparts
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.osgi.service.component;version="1.2.0",
+ org.slf4j
+Service-Component: OSGI-INF/editPartManager.xml,
+ OSGI-INF/presenterFactory.xml
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+  uses:="org.eclipse.osbp.ecview.core.common.editpart";version="0.9.0",
+ org.eclipse.osbp.ecview.core.ui.core.editparts.extension.commands;
+  uses:="org.eclipse.osbp.ecview.core.common.editpart";version="0.9.0",
+ org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+  uses:="org.eclipse.osbp.ecview.core.common.editpart.datatypes,
+   org.eclipse.osbp.ecview.core.common.validation";version="0.9.0",
+ org.eclipse.osbp.ecview.core.ui.core.editparts.extension.presentation;
+  uses:="org.eclipse.osbp.ecview.core.common.presentation,
+   org.eclipse.osbp.ecview.core.ui.core.editparts.extension";version="0.9.0"
+Require-Bundle: org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.1,1.5.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)"
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/OSGI-INF/editPartManager.xml b/org.eclipse.osbp.ecview.core.extension.editparts/OSGI-INF/editPartManager.xml
new file mode 100644
index 0000000..b383e3c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/OSGI-INF/editPartManager.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.ui.core.editparts.factorymanager">
+   <implementation class="org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager$Component"/>
+   <reference bind="addDelegate" cardinality="0..n" interface="org.eclipse.osbp.ecview.core.common.editpart.IEditPartManager" name="editPartFactory" policy="dynamic" unbind="removeDelegate"/>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/OSGI-INF/presenterFactory.xml b/org.eclipse.osbp.ecview.core.extension.editparts/OSGI-INF/presenterFactory.xml
new file mode 100644
index 0000000..ecf4237
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/OSGI-INF/presenterFactory.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.ecview.core.ui.core.editparts.presenterfactory">
+   <implementation class="org.eclipse.osbp.ecview.core.common.presentation.DelegatingPresenterFactory$Component"/>
+   <reference bind="addDelegate" cardinality="0..n" interface="org.eclipse.osbp.ecview.core.common.presentation.IPresentationFactory" name="presenterFactory" policy="dynamic" unbind="removeDelegate"/>
+</scr:component>
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/about.html b/org.eclipse.osbp.ecview.core.extension.editparts/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/about.ini b/org.eclipse.osbp.ecview.core.extension.editparts/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/about.mappings b/org.eclipse.osbp.ecview.core.extension.editparts/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/about.properties b/org.eclipse.osbp.ecview.core.extension.editparts/about.properties
new file mode 100644
index 0000000..e893804
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.extension.editparts
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/build.properties b/org.eclipse.osbp.ecview.core.extension.editparts/build.properties
new file mode 100644
index 0000000..32f423a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               OSGI-INF/,\
+               LICENSE.txt,\
+               build.properties
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  build.properties,\
+               LICENSE.txt
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/license.html b/org.eclipse.osbp.ecview.core.extension.editparts/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/pom.xml b/org.eclipse.osbp.ecview.core.extension.editparts/pom.xml
new file mode 100644
index 0000000..f3b6474
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.extension.editparts</artifactId>
+  <description>Contains the API for ui controller</description>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.6</source>
+          <target>1.6</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IAbsoluteLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IAbsoluteLayoutEditpart.java
new file mode 100644
index 0000000..db12f6f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IAbsoluteLayoutEditpart.java
@@ -0,0 +1,17 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+
+public interface IAbsoluteLayoutEditpart extends ILayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IBeanReferenceFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IBeanReferenceFieldEditpart.java
new file mode 100644
index 0000000..e9df2eb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IBeanReferenceFieldEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for reference fields.
+ */
+public interface IBeanReferenceFieldEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IBooleanSearchFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IBooleanSearchFieldEditpart.java
new file mode 100644
index 0000000..7cf68e5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IBooleanSearchFieldEditpart.java
@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+/**
+ * An edit part for boolean search fields.
+ */
+public interface IBooleanSearchFieldEditpart extends ISearchFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IBrowserEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IBrowserEditpart.java
new file mode 100644
index 0000000..d155073
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IBrowserEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+
+/**
+ * An edit part for browser.
+ */
+public interface IBrowserEditpart extends IEmbeddableEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IButtonEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IButtonEditpart.java
new file mode 100644
index 0000000..e86e135
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IButtonEditpart.java
@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2013 Loetz GmbH&Co.KG(Heidelberg). 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: Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IActionEditpart;
+
+/**
+ * An edit part for checkbox.
+ */
+public interface IButtonEditpart extends IActionEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ICheckboxEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ICheckboxEditpart.java
new file mode 100644
index 0000000..7360a17
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ICheckboxEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for checkbox.
+ */
+public interface ICheckboxEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IComboBoxEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IComboBoxEditpart.java
new file mode 100644
index 0000000..aafd287
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IComboBoxEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for combobox.
+ */
+public interface IComboBoxEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ICssLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ICssLayoutEditpart.java
new file mode 100644
index 0000000..610bbd5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ICssLayoutEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+
+/**
+ * The abstraction for an horizontal layout.
+ */
+public interface ICssLayoutEditpart extends ILayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IDateTimeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IDateTimeEditpart.java
new file mode 100644
index 0000000..486648c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IDateTimeEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for date time.
+ */
+public interface IDateTimeEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IDecimalFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IDecimalFieldEditpart.java
new file mode 100644
index 0000000..ef9c211
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IDecimalFieldEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for text fields.
+ */
+public interface IDecimalFieldEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IEnumComboBoxEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IEnumComboBoxEditpart.java
new file mode 100644
index 0000000..9fd3409
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IEnumComboBoxEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for combobox.
+ */
+public interface IEnumComboBoxEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IEnumListEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IEnumListEditpart.java
new file mode 100644
index 0000000..4d9b068
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IEnumListEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for list.
+ */
+public interface IEnumListEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IEnumOptionsGroupEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IEnumOptionsGroupEditpart.java
new file mode 100644
index 0000000..a74ffb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IEnumOptionsGroupEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for optionGroup.
+ */
+public interface IEnumOptionsGroupEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IFormLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IFormLayoutEditpart.java
new file mode 100644
index 0000000..42b1b1f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IFormLayoutEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+
+/**
+ * The abstraction for an form layout.
+ */
+public interface IFormLayoutEditpart extends ILayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IGridLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IGridLayoutEditpart.java
new file mode 100644
index 0000000..7e5a215
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IGridLayoutEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+
+/**
+ * The abstraction for an grid layout. The grid layout extends layout and it is
+ * an elementContainer that can contain other embeddables.
+ */
+public interface IGridLayoutEditpart extends ILayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IHorizontalLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IHorizontalLayoutEditpart.java
new file mode 100644
index 0000000..480de16
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IHorizontalLayoutEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+
+/**
+ * The abstraction for an horizontal layout.
+ */
+public interface IHorizontalLayoutEditpart extends ILayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IImageEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IImageEditpart.java
new file mode 100644
index 0000000..7c68b87
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IImageEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+
+/**
+ * An edit part for image.
+ */
+public interface IImageEditpart extends IEmbeddableEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ILabelEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ILabelEditpart.java
new file mode 100644
index 0000000..de2d9bf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ILabelEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+
+/**
+ * An edit part for labels.
+ */
+public interface ILabelEditpart extends IEmbeddableEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IListEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IListEditpart.java
new file mode 100644
index 0000000..316e164
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IListEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for list.
+ */
+public interface IListEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IMasterDetailEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IMasterDetailEditpart.java
new file mode 100644
index 0000000..1be8c4b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IMasterDetailEditpart.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An edit part for master details.
+ */
+public interface IMasterDetailEditpart extends IEmbeddableEditpart {
+
+	/**
+	 * Returns the master editpart.
+	 * 
+	 * @return master The editpart that controls the master presentation.
+	 */
+	IEmbeddableEditpart getMaster();
+
+	/**
+	 * Returns the detail editpart.
+	 * 
+	 * @return detail The editpart that controls the detail presentation.
+	 */
+	IEmbeddableEditpart getDetail();
+
+	/**
+	 * Sets the editpart that controls the master presentation.
+	 *
+	 * @param master
+	 *            the new master
+	 */
+	@Deprecated // use model instead
+	void setMaster(IEmbeddableEditpart master);
+
+	/**
+	 * Sets the editpart that controls the detail presentation.
+	 *
+	 * @param detail
+	 *            the new detail
+	 */
+	@Deprecated // use model instead
+	void setDetail(IEmbeddableEditpart detail);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/INumericFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/INumericFieldEditpart.java
new file mode 100644
index 0000000..5903ed6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/INumericFieldEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for text fields.
+ */
+public interface INumericFieldEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/INumericSearchFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/INumericSearchFieldEditpart.java
new file mode 100644
index 0000000..45c5522
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/INumericSearchFieldEditpart.java
@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+/**
+ * An edit part for numeric search fields.
+ */
+public interface INumericSearchFieldEditpart extends ISearchFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IOptionsGroupEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IOptionsGroupEditpart.java
new file mode 100644
index 0000000..b8db7e1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IOptionsGroupEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for optionGroup.
+ */
+public interface IOptionsGroupEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IPanelEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IPanelEditpart.java
new file mode 100644
index 0000000..5d56a2a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IPanelEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+
+/**
+ * The abstraction for an horizontal layout.
+ */
+public interface IPanelEditpart extends ILayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IPasswordFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IPasswordFieldEditpart.java
new file mode 100644
index 0000000..94a714c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IPasswordFieldEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011 - 2015, Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for text fields.
+ */
+public interface IPasswordFieldEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IProgressBarEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IProgressBarEditpart.java
new file mode 100644
index 0000000..4508a31
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IProgressBarEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for the progress bar.
+ */
+public interface IProgressBarEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISearchFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISearchFieldEditpart.java
new file mode 100644
index 0000000..0cab627
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISearchFieldEditpart.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An edit part for search fields.
+ */
+public interface ISearchFieldEditpart extends IFieldEditpart {
+
+	/**
+	 * Returns the filter for the field value. The returned filter depends on
+	 * the used UI-Kit.
+	 *
+	 * @return the filter
+	 */
+	Object getFilter();
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISearchPanelEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISearchPanelEditpart.java
new file mode 100644
index 0000000..5e04cad
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISearchPanelEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+
+/**
+ * The abstraction for an vertical layout. The grid layout extends layout and it is an elementContainer that can contain
+ * other embeddables.
+ */
+public interface ISearchPanelEditpart extends ILayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISliderEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISliderEditpart.java
new file mode 100644
index 0000000..edcabb3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISliderEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for sliders.
+ */
+public interface ISliderEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISplitPanelEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISplitPanelEditpart.java
new file mode 100644
index 0000000..90ee3b8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISplitPanelEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+
+/**
+ * The abstraction for an horizontal layout.
+ */
+public interface ISplitPanelEditpart extends ILayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISuggestTextFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISuggestTextFieldEditpart.java
new file mode 100644
index 0000000..f8aa6f7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ISuggestTextFieldEditpart.java
@@ -0,0 +1,17 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+public interface ISuggestTextFieldEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITabEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITabEditpart.java
new file mode 100644
index 0000000..a51df7c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITabEditpart.java
@@ -0,0 +1,112 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.presentation.ITabPresentation;
+
+/**
+ * The abstraction for a tab.
+ */
+public interface ITabEditpart extends IElementEditpart {
+
+	/**
+	 * Name for "parent" property.
+	 */
+	String PROP_PARENT = "parent";
+	/**
+	 * Name for "cssClass" property.
+	 */
+	String PROP_CSSCLASS = "cssClass";
+	/**
+	 * Name for "cssID" property.
+	 */
+	String PROP_CSSID = "cssID";
+
+	/**
+	 * Returns the parent of this tab.<br>
+	 * Will be <code>null</code> for the layout that is attached to the view as content.
+	 * 
+	 * @return editpart The parent editpart
+	 */
+	ITabSheetEditpart getParent();
+
+	/**
+	 * Returns the view edit part of this tab edit part.<br>
+	 * May be <code>null</code> as far as this element and no of its parents are attached to a view.
+	 * 
+	 * @return editpart The view editpart
+	 */
+	IViewEditpart getView();
+
+	/**
+	 * Returns the widget presentation for the tab.
+	 * 
+	 * @param <A> An instance of {@link IWidgetPresentation}
+	 * @return presentation The presentation of that tab used to render the UI.
+	 */
+	<A extends ITabPresentation<?>> A getPresentation();
+
+	/**
+	 * Requests rendering of the current editpart. This method will forward the
+	 * request to the parent if available and the parent will handle the steps
+	 * required to render the editpart properly.
+	 */
+	void requestRender();
+
+	/**
+	 * This method is called by the parent presentation to render the contents
+	 * of the editpart.
+	 * 
+	 * @param parentWidget
+	 *            - The parent widget the new widget will be placed on.
+	 * @return newWidget - without adding it to the parentWidget.
+	 */
+	Object render(Object parentWidget);
+
+	/**
+	 * Requests unrendering of the current editpart. This method will forward
+	 * the request to the parent if available and the parent will handle the
+	 * steps required to unrender the editpart properly.
+	 */
+	void requestUnrender();
+
+	/**
+	 * This method is called by the parent editpart and tells the current
+	 * editpart, that it should unrender its presentation now.
+	 */
+	void unrender();
+
+	/**
+	 * Returns true, if the editparts presentation is rendered.
+	 * 
+	 * @return
+	 */
+	boolean isRendered();
+
+	/**
+	 * Returns the rendered widget by the editparts presentation. Will return
+	 * <code>null</code> if the presentation was not rendered yet.
+	 * 
+	 * @return
+	 */
+	Object getWidget();
+
+	/**
+	 * Requests disposal of the current editpart. This method will forward the
+	 * request to the parent if available and the parent will handle the steps
+	 * required to dispose the editpart properly.
+	 */
+	void requestDispose();
+	
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITabSheetEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITabSheetEditpart.java
new file mode 100644
index 0000000..769381c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITabSheetEditpart.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import java.util.List;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The abstraction for a tab sheet.
+ */
+public interface ITabSheetEditpart extends IEmbeddableEditpart {
+
+	/**
+	 * Returns an unmodifiable list with all tabs contained in the tabsheet.
+	 * 
+	 * @return elements The children editparts contained in this tabsheet
+	 */
+	List<ITabEditpart> getTabs();
+
+	/**
+	 * Adds a tab to the tabsheet. Adding the same tab twice has no effect.
+	 * 
+	 * @param tab
+	 *            The editpart to be added.
+	 */
+	@Deprecated // use model instead
+	void addTab(ITabEditpart tab);
+
+	/**
+	 * Removes a tab from the tabsheet.
+	 *
+	 * @param tab
+	 *            the tab
+	 */
+	@Deprecated // use model instead
+	void removeTab(ITabEditpart tab);
+
+	/**
+	 * Renders the given tab.
+	 *
+	 * @param tab
+	 *            the tab
+	 */
+	void renderTab(ITabEditpart tab);
+
+	/**
+	 * Disposes the given tab.
+	 *
+	 * @param tab
+	 *            the tab
+	 */
+	void disposeTab(ITabEditpart tab);
+
+	/**
+	 * Unrenders the given tab.
+	 *
+	 * @param tab
+	 *            the tab
+	 */
+	void unrenderTab(ITabEditpart tab);
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITableEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITableEditpart.java
new file mode 100644
index 0000000..78aabb6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITableEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for text fields.
+ */
+public interface ITableEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITextAreaEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITextAreaEditpart.java
new file mode 100644
index 0000000..ade5091
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITextAreaEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for text fields.
+ */
+public interface ITextAreaEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITextFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITextFieldEditpart.java
new file mode 100644
index 0000000..77e9e5a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITextFieldEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for text fields.
+ */
+public interface ITextFieldEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITextSearchFieldEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITextSearchFieldEditpart.java
new file mode 100644
index 0000000..f1b8543
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITextSearchFieldEditpart.java
@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+/**
+ * An edit part for text search fields.
+ */
+public interface ITextSearchFieldEditpart extends ISearchFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITreeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITreeEditpart.java
new file mode 100644
index 0000000..371d78a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/ITreeEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.IFieldEditpart;
+
+/**
+ * An edit part for text fields.
+ */
+public interface ITreeEditpart extends IFieldEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IVerticalLayoutEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IVerticalLayoutEditpart.java
new file mode 100644
index 0000000..f74d3cc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/IVerticalLayoutEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ILayoutEditpart;
+
+/**
+ * The abstraction for an vertical layout. The grid layout extends layout and it is an elementContainer that can contain
+ * other embeddables.
+ */
+public interface IVerticalLayoutEditpart extends ILayoutEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/commands/IAddToTableCommandEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/commands/IAddToTableCommandEditpart.java
new file mode 100644
index 0000000..bc79618
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/commands/IAddToTableCommandEditpart.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.commands;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart;
+
+/**
+ * And a new row to a table.
+ */
+public interface IAddToTableCommandEditpart extends ICommandEditpart {
+
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/commands/IRemoveFromTableCommandEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/commands/IRemoveFromTableCommandEditpart.java
new file mode 100644
index 0000000..9e5a835
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/commands/IRemoveFromTableCommandEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.commands;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart;
+
+/**
+ * Removes a row from a table.
+ */
+public interface IRemoveFromTableCommandEditpart extends ICommandEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/commands/ISetNewInstanceCommandEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/commands/ISetNewInstanceCommandEditpart.java
new file mode 100644
index 0000000..8c59eb3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/commands/ISetNewInstanceCommandEditpart.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.commands;
+
+import org.eclipse.osbp.ecview.core.common.editpart.ICommandEditpart;
+
+/**
+ * Sets a new instance at a defined place in the UI or domain model.
+ */
+public interface ISetNewInstanceCommandEditpart extends ICommandEditpart {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IBrowserDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IBrowserDatatypeEditpart.java
new file mode 100644
index 0000000..39b359a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IBrowserDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface IBrowserDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ICheckBoxDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ICheckBoxDatatypeEditpart.java
new file mode 100644
index 0000000..42092e0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ICheckBoxDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface ICheckBoxDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IComboBoxDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IComboBoxDatatypeEditpart.java
new file mode 100644
index 0000000..4703a66
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IComboBoxDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface IComboBoxDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IDateTimeDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IDateTimeDatatypeEditpart.java
new file mode 100644
index 0000000..de1403d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IDateTimeDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface IDateTimeDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IDecimalDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IDecimalDatatypeEditpart.java
new file mode 100644
index 0000000..29245f7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IDecimalDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface IDecimalDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IListDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IListDatatypeEditpart.java
new file mode 100644
index 0000000..233b628
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IListDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface IListDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/INumericDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/INumericDatatypeEditpart.java
new file mode 100644
index 0000000..0c9518b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/INumericDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface INumericDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IOptionsGroupDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IOptionsGroupDatatypeEditpart.java
new file mode 100644
index 0000000..0a58d12
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IOptionsGroupDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface IOptionsGroupDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IProgressBarDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IProgressBarDatatypeEditpart.java
new file mode 100644
index 0000000..c8ab948
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/IProgressBarDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface IProgressBarDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITabSheetDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITabSheetDatatypeEditpart.java
new file mode 100644
index 0000000..fcbedfa
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITabSheetDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface ITabSheetDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITableDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITableDatatypeEditpart.java
new file mode 100644
index 0000000..9915072
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITableDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface ITableDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITextAreaDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITextAreaDatatypeEditpart.java
new file mode 100644
index 0000000..7619d4c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITextAreaDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface ITextAreaDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITextDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITextDatatypeEditpart.java
new file mode 100644
index 0000000..dfccceb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITextDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface ITextDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITreeDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITreeDatatypeEditpart.java
new file mode 100644
index 0000000..690ce35
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/datatypes/ITreeDatatypeEditpart.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.common.validation.IValidationConfig;
+
+/**
+ * An edit part for datatypes.
+ */
+public interface ITreeDatatypeEditpart extends IDatatypeEditpart,
+		IValidationConfig {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/presentation/IMasterDetailPresentation.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/presentation/IMasterDetailPresentation.java
new file mode 100644
index 0000000..c56bc59
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/presentation/IMasterDetailPresentation.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.presentation;
+
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+
+// TODO: Auto-generated Javadoc
+/**
+ * TabSheetPresentations are an abstraction above a tabSheet an are responsible
+ * to create the UI-Kit specific elements and to handle them. One important
+ * thing to notice is, that the life cycle of tabs is handled by their edit
+ * parts. And so an tabs must never dispose its tab tabs!
+ *
+ * @param <C>
+ *            the generic type
+ */
+public interface IMasterDetailPresentation<C> extends IWidgetPresentation<C> {
+
+	/**
+	 * Returns the master presentation.
+	 *
+	 * @return presentation
+	 */
+	IWidgetPresentation<?> getMaster();
+
+	/**
+	 * Returns the detail presentation.
+	 *
+	 * @return presentation
+	 */
+	IWidgetPresentation<?> getDetail();
+
+	/**
+	 * Sets the master presentation.
+	 *
+	 * @param master
+	 *            the new master
+	 */
+	void setMaster(IWidgetPresentation<?> master);
+
+	/**
+	 * Sets the detail presentation.
+	 *
+	 * @param detail
+	 *            the new detail
+	 */
+	void setDetail(IWidgetPresentation<?> detail);
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/presentation/ITabPresentation.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/presentation/ITabPresentation.java
new file mode 100644
index 0000000..812194f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/presentation/ITabPresentation.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.presentation;
+
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+
+/**
+ * TabSheetPresentations are an abstraction above a tab an are responsible to
+ * create the UI-Kit specific elements and to handle them. One important thing
+ * to notice is, that the life cycle of presentations is handled by their edit
+ * parts. And so an presentations must never dispose its tab presentations!
+ *
+ * @param <C>
+ *            the generic type
+ */
+public interface ITabPresentation<C> extends IWidgetPresentation<C> {
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/presentation/ITabSheetPresentation.java b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/presentation/ITabSheetPresentation.java
new file mode 100644
index 0000000..cf20733
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.editparts/src/org/eclipse/osbp/ecview/core/ui/core/editparts/extension/presentation/ITabSheetPresentation.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.ui.core.editparts.extension.presentation;
+
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITabEditpart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * TabSheetPresentations are an abstraction above a tabSheet an are responsible
+ * to create the UI-Kit specific elements and to handle them. One important
+ * thing to notice is, that the life cycle of tabs is handled by their edit
+ * parts. And so an tabs must never dispose its tab tabs!
+ *
+ * @param <C>
+ *            the generic type
+ */
+public interface ITabSheetPresentation<C> extends IWidgetPresentation<C> {
+
+	/**
+	 * Will render the tab tabs.<br>
+	 * <ul>
+	 * <li><b>force == false:</b> Only elements will be rendered that are not
+	 * rendered yet. Already rendered elements will not be touched.</li>
+	 * <li><b>force == true:</b> First will unrender all tab tabs and afterward
+	 * it will render them again.</li>
+	 * </ul>
+	 * 
+	 * @param force
+	 *            see method description
+	 */
+	void renderTabs(boolean force);
+
+	/**
+	 * Unrenders the given tab.
+	 *
+	 * @param editpart
+	 *            the editpart
+	 */
+	void unrenderTab(ITabEditpart editpart);
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/.project b/org.eclipse.osbp.ecview.core.extension.model.edit/.project
new file mode 100644
index 0000000..6df5e7b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.extension.model.edit</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/LICENSE.txt b/org.eclipse.osbp.ecview.core.extension.model.edit/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.extension.model.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..188d94d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.extension.model.edit
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.extension.model.edit;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.osbp.ecview.core.extension.model.datatypes.provider.ExtensionEditPlugin$Implementation
+Bundle-Vendor: Eclipse OSBP
+ Germany)
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.osbp.ecview.core.extension.model.datatypes.provider,
+ org.eclipse.osbp.ecview.core.extension.model.extension.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.osbp.ecview.core.extension.model;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.osbp.ecview.core.common.model;visibility:=reexport,
+ org.eclipse.osbp.ecview.core.common.model.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/about.html b/org.eclipse.osbp.ecview.core.extension.model.edit/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/about.ini b/org.eclipse.osbp.ecview.core.extension.model.edit/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/about.mappings b/org.eclipse.osbp.ecview.core.extension.model.edit/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/about.properties b/org.eclipse.osbp.ecview.core.extension.model.edit/about.properties
new file mode 100644
index 0000000..d8703bb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.extension.model.edit
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/build.properties b/org.eclipse.osbp.ecview.core.extension.model.edit/build.properties
new file mode 100644
index 0000000..f8b6959
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/build.properties
@@ -0,0 +1,14 @@
+#
+
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  .,\
+               icons/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               LICENSE.txt,\
+               license.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYAbsoluteLayout_cellStyles_YAbsoluteLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYAbsoluteLayout_cellStyles_YAbsoluteLayoutCellStyle.gif
new file mode 100644
index 0000000..420564e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYAbsoluteLayout_cellStyles_YAbsoluteLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYColumn_converter_YDelegateConverter.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYColumn_converter_YDelegateConverter.gif
new file mode 100644
index 0000000..2d3a78e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYColumn_converter_YDelegateConverter.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYColumn_orphanDatadescriptions_YDatadescription.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYColumn_orphanDatadescriptions_YDatadescription.gif
new file mode 100644
index 0000000..df29197
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYColumn_orphanDatadescriptions_YDatadescription.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YAddToTableCommand.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YAddToTableCommand.gif
new file mode 100644
index 0000000..d8d5fa9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YAddToTableCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YRemoveFromTableCommand.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YRemoveFromTableCommand.gif
new file mode 100644
index 0000000..826ffa9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YRemoveFromTableCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YSetNewBeanInstanceCommand.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YSetNewBeanInstanceCommand.gif
new file mode 100644
index 0000000..826ffa9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCommandSet_commands_YSetNewBeanInstanceCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCssLayout_cellStyles_YCssLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCssLayout_cellStyles_YCssLayoutCellStyle.gif
new file mode 100644
index 0000000..590468c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYCssLayout_cellStyles_YCssLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YAbsoluteLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YAbsoluteLayout.gif
new file mode 100644
index 0000000..11f3aea
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YAbsoluteLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YBeanReferenceField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YBeanReferenceField.gif
new file mode 100644
index 0000000..f809a28
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YBeanReferenceField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YBooleanSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YBooleanSearchField.gif
new file mode 100644
index 0000000..ed2e04b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YBooleanSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YBrowser.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YBrowser.gif
new file mode 100644
index 0000000..3461b0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YBrowser.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YButton.gif
new file mode 100644
index 0000000..5206c2e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YCheckBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YCheckBox.gif
new file mode 100644
index 0000000..52c578c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YCheckBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YComboBox.gif
new file mode 100644
index 0000000..968035a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YCssLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YCssLayout.gif
new file mode 100644
index 0000000..a18b783
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YCssLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YDateTime.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YDateTime.gif
new file mode 100644
index 0000000..a18b783
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YDateTime.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YDecimalField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YDecimalField.gif
new file mode 100644
index 0000000..e6a5692
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YDecimalField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YEnumComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YEnumComboBox.gif
new file mode 100644
index 0000000..561bc08
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YEnumComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YEnumList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YEnumList.gif
new file mode 100644
index 0000000..40ef08b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YEnumList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YEnumOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YEnumOptionsGroup.gif
new file mode 100644
index 0000000..8848b01
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YEnumOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YFormLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YFormLayout.gif
new file mode 100644
index 0000000..ed2e04b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YFormLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YGridLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YGridLayout.gif
new file mode 100644
index 0000000..a18b783
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YGridLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YHorizontalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YHorizontalLayout.gif
new file mode 100644
index 0000000..efc256e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YHorizontalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YImage.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YImage.gif
new file mode 100644
index 0000000..968c152
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YImage.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YLabel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YLabel.gif
new file mode 100644
index 0000000..7ea4283
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YLabel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YList.gif
new file mode 100644
index 0000000..c6407cd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YMasterDetail.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YMasterDetail.gif
new file mode 100644
index 0000000..c19972e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YMasterDetail.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YNumericField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YNumericField.gif
new file mode 100644
index 0000000..22660ab
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YNumericField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YNumericSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YNumericSearchField.gif
new file mode 100644
index 0000000..2e9fe7e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YNumericSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YOptionsGroup.gif
new file mode 100644
index 0000000..49e7eb9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YPanel.gif
new file mode 100644
index 0000000..52c578c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YPasswordField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YPasswordField.gif
new file mode 100644
index 0000000..8e6a767
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YPasswordField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YProgressBar.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YProgressBar.gif
new file mode 100644
index 0000000..5e6c9c1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YProgressBar.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YReferenceSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YReferenceSearchField.gif
new file mode 100644
index 0000000..981b787
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YReferenceSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSearchPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSearchPanel.gif
new file mode 100644
index 0000000..55d7be5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSearchPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSlider.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSlider.gif
new file mode 100644
index 0000000..6555fbe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSlider.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSplitPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSplitPanel.gif
new file mode 100644
index 0000000..cbc9f8d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSplitPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSuggestTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSuggestTextField.gif
new file mode 100644
index 0000000..efc256e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YSuggestTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTabSheet.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTabSheet.gif
new file mode 100644
index 0000000..c6407cd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTabSheet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTable.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTable.gif
new file mode 100644
index 0000000..b55cd92
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTable.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTextArea.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTextArea.gif
new file mode 100644
index 0000000..68ad5bd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTextArea.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTextField.gif
new file mode 100644
index 0000000..8848b01
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTextSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTextSearchField.gif
new file mode 100644
index 0000000..4f26f1b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTextSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YToggleButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YToggleButton.gif
new file mode 100644
index 0000000..73b29f9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YToggleButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTree.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTree.gif
new file mode 100644
index 0000000..3461b0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YTree.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YVerticalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YVerticalLayout.gif
new file mode 100644
index 0000000..c6407cd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYDialog_content_YVerticalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YBrowserDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YBrowserDatatype.gif
new file mode 100644
index 0000000..7ffd497
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YBrowserDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YCheckBoxDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YCheckBoxDatatype.gif
new file mode 100644
index 0000000..d6a9b07
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YCheckBoxDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YComboBoxDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YComboBoxDatatype.gif
new file mode 100644
index 0000000..c715ea9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YComboBoxDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YDateTimeDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YDateTimeDatatype.gif
new file mode 100644
index 0000000..b036b3f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YDateTimeDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YDecimalDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YDecimalDatatype.gif
new file mode 100644
index 0000000..15099c1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YDecimalDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YListDataType.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YListDataType.gif
new file mode 100644
index 0000000..06e47ff
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YListDataType.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YMasterDetailDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YMasterDetailDatatype.gif
new file mode 100644
index 0000000..1fd067e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YMasterDetailDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YNumericDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YNumericDatatype.gif
new file mode 100644
index 0000000..f87f97d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YNumericDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YOptionsGroupDataType.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YOptionsGroupDataType.gif
new file mode 100644
index 0000000..a891a7c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YOptionsGroupDataType.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YProgressBarDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YProgressBarDatatype.gif
new file mode 100644
index 0000000..a172db7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YProgressBarDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTabSheetDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTabSheetDatatype.gif
new file mode 100644
index 0000000..61c2b26
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTabSheetDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTableDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTableDatatype.gif
new file mode 100644
index 0000000..7afe9dc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTableDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTextAreaDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTextAreaDatatype.gif
new file mode 100644
index 0000000..d0c6937
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTextAreaDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTextDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTextDatatype.gif
new file mode 100644
index 0000000..c715ea9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTextDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTreeDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTreeDatatype.gif
new file mode 100644
index 0000000..7ffd497
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYEmbeddable_orphanDatatypes_YTreeDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYFormLayout_cellStyles_YFormLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYFormLayout_cellStyles_YFormLayoutCellStyle.gif
new file mode 100644
index 0000000..42d5408
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYFormLayout_cellStyles_YFormLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYGridLayoutCellStyle_spanInfo_YSpanInfo.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYGridLayoutCellStyle_spanInfo_YSpanInfo.gif
new file mode 100644
index 0000000..af36a7d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYGridLayoutCellStyle_spanInfo_YSpanInfo.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYGridLayout_cellStyles_YGridLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYGridLayout_cellStyles_YGridLayoutCellStyle.gif
new file mode 100644
index 0000000..590468c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYGridLayout_cellStyles_YGridLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYHorizontalLayout_cellStyles_YHorizontalLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYHorizontalLayout_cellStyles_YHorizontalLayoutCellStyle.gif
new file mode 100644
index 0000000..de4ddbb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYHorizontalLayout_cellStyles_YHorizontalLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YAbsoluteLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YAbsoluteLayout.gif
new file mode 100644
index 0000000..76dcd3d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YAbsoluteLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YBeanReferenceField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YBeanReferenceField.gif
new file mode 100644
index 0000000..41eefa2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YBeanReferenceField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YBooleanSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YBooleanSearchField.gif
new file mode 100644
index 0000000..660282d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YBooleanSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YBrowser.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YBrowser.gif
new file mode 100644
index 0000000..1ce6308
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YBrowser.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YButton.gif
new file mode 100644
index 0000000..a8fcd74
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YCheckBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YCheckBox.gif
new file mode 100644
index 0000000..355e3d0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YCheckBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YComboBox.gif
new file mode 100644
index 0000000..b6cab91
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YCssLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YCssLayout.gif
new file mode 100644
index 0000000..b822374
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YCssLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YDateTime.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YDateTime.gif
new file mode 100644
index 0000000..b822374
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YDateTime.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YDecimalField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YDecimalField.gif
new file mode 100644
index 0000000..ebe40ea
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YDecimalField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YEnumComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YEnumComboBox.gif
new file mode 100644
index 0000000..97d3985
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YEnumComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YEnumList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YEnumList.gif
new file mode 100644
index 0000000..9f1e0b8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YEnumList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YEnumOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YEnumOptionsGroup.gif
new file mode 100644
index 0000000..62d1b4e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YEnumOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YFormLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YFormLayout.gif
new file mode 100644
index 0000000..660282d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YFormLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YGridLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YGridLayout.gif
new file mode 100644
index 0000000..b822374
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YGridLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YHorizontalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YHorizontalLayout.gif
new file mode 100644
index 0000000..2e8ec2d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YHorizontalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YImage.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YImage.gif
new file mode 100644
index 0000000..632bb40
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YImage.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YLabel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YLabel.gif
new file mode 100644
index 0000000..247a032
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YLabel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YList.gif
new file mode 100644
index 0000000..6e87a23
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YMasterDetail.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YMasterDetail.gif
new file mode 100644
index 0000000..42450a8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YMasterDetail.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YNumericField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YNumericField.gif
new file mode 100644
index 0000000..1061b8f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YNumericField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YNumericSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YNumericSearchField.gif
new file mode 100644
index 0000000..fa6a5ee
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YNumericSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YOptionsGroup.gif
new file mode 100644
index 0000000..6014874
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YPanel.gif
new file mode 100644
index 0000000..355e3d0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YPasswordField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YPasswordField.gif
new file mode 100644
index 0000000..3fa9c54
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YPasswordField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YProgressBar.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YProgressBar.gif
new file mode 100644
index 0000000..80dd10a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YProgressBar.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YReferenceSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YReferenceSearchField.gif
new file mode 100644
index 0000000..bdfb88b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YReferenceSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSearchPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSearchPanel.gif
new file mode 100644
index 0000000..02ca8c0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSearchPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSlider.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSlider.gif
new file mode 100644
index 0000000..62446fb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSlider.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSplitPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSplitPanel.gif
new file mode 100644
index 0000000..fd34d5f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSplitPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSuggestTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSuggestTextField.gif
new file mode 100644
index 0000000..2e8ec2d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YSuggestTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTabSheet.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTabSheet.gif
new file mode 100644
index 0000000..6e87a23
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTabSheet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTable.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTable.gif
new file mode 100644
index 0000000..d7743e1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTable.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTextArea.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTextArea.gif
new file mode 100644
index 0000000..6fa04d1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTextArea.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTextField.gif
new file mode 100644
index 0000000..62d1b4e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTextSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTextSearchField.gif
new file mode 100644
index 0000000..54b651d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTextSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YToggleButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YToggleButton.gif
new file mode 100644
index 0000000..cd91b67
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YToggleButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTree.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTree.gif
new file mode 100644
index 0000000..1ce6308
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YTree.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YVerticalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YVerticalLayout.gif
new file mode 100644
index 0000000..6e87a23
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYLayout_elements_YVerticalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YAbsoluteLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YAbsoluteLayout.gif
new file mode 100644
index 0000000..c048169
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YAbsoluteLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YAction.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YAction.gif
new file mode 100644
index 0000000..a7efbef
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YAction.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YBeanReferenceField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YBeanReferenceField.gif
new file mode 100644
index 0000000..0e92151
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YBeanReferenceField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YBooleanSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YBooleanSearchField.gif
new file mode 100644
index 0000000..5204d4b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YBooleanSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YBrowser.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YBrowser.gif
new file mode 100644
index 0000000..48f1260
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YBrowser.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YButton.gif
new file mode 100644
index 0000000..a5e5f97
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YCheckBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YCheckBox.gif
new file mode 100644
index 0000000..5d1e5fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YCheckBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YComboBox.gif
new file mode 100644
index 0000000..38c09e8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YCssLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YCssLayout.gif
new file mode 100644
index 0000000..887857a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YCssLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YDateTime.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YDateTime.gif
new file mode 100644
index 0000000..887857a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YDateTime.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YDecimalField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YDecimalField.gif
new file mode 100644
index 0000000..3b885fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YDecimalField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YEnumComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YEnumComboBox.gif
new file mode 100644
index 0000000..33193f9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YEnumComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YEnumList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YEnumList.gif
new file mode 100644
index 0000000..2f2f535
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YEnumList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YEnumOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YEnumOptionsGroup.gif
new file mode 100644
index 0000000..f91a995
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YEnumOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YField.gif
new file mode 100644
index 0000000..0d4f530
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YFormLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YFormLayout.gif
new file mode 100644
index 0000000..5204d4b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YFormLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YGridLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YGridLayout.gif
new file mode 100644
index 0000000..887857a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YGridLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YHelperLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YHelperLayout.gif
new file mode 100644
index 0000000..01293d8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YHelperLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YHorizontalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YHorizontalLayout.gif
new file mode 100644
index 0000000..3826602
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YHorizontalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YImage.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YImage.gif
new file mode 100644
index 0000000..1c1a5ef
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YImage.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YLabel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YLabel.gif
new file mode 100644
index 0000000..acb9e06
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YLabel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YLayout.gif
new file mode 100644
index 0000000..0d4f530
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YList.gif
new file mode 100644
index 0000000..65c0cbe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YMasterDetail.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YMasterDetail.gif
new file mode 100644
index 0000000..f76ecf0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YMasterDetail.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YNumericField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YNumericField.gif
new file mode 100644
index 0000000..9532027
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YNumericField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YNumericSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YNumericSearchField.gif
new file mode 100644
index 0000000..0056d63
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YNumericSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YOptionsGroup.gif
new file mode 100644
index 0000000..9fc00ad
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YPanel.gif
new file mode 100644
index 0000000..5d1e5fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YPasswordField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YPasswordField.gif
new file mode 100644
index 0000000..a35176a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YPasswordField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YProgressBar.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YProgressBar.gif
new file mode 100644
index 0000000..ef7a76e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YProgressBar.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YReferenceSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YReferenceSearchField.gif
new file mode 100644
index 0000000..4f65777
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YReferenceSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSearchPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSearchPanel.gif
new file mode 100644
index 0000000..b24124a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSearchPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSlider.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSlider.gif
new file mode 100644
index 0000000..3a05916
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSlider.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSplitPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSplitPanel.gif
new file mode 100644
index 0000000..eb4dbff
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSplitPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSuggestTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSuggestTextField.gif
new file mode 100644
index 0000000..3826602
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YSuggestTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTabSheet.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTabSheet.gif
new file mode 100644
index 0000000..65c0cbe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTabSheet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTable.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTable.gif
new file mode 100644
index 0000000..803d12d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTable.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTextArea.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTextArea.gif
new file mode 100644
index 0000000..0dccd27
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTextArea.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTextField.gif
new file mode 100644
index 0000000..f91a995
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTextSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTextSearchField.gif
new file mode 100644
index 0000000..269f51e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTextSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YToggleButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YToggleButton.gif
new file mode 100644
index 0000000..01293d8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YToggleButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTree.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTree.gif
new file mode 100644
index 0000000..48f1260
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YTree.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YVerticalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YVerticalLayout.gif
new file mode 100644
index 0000000..65c0cbe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_detailElement_YVerticalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YAbsoluteLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YAbsoluteLayout.gif
new file mode 100644
index 0000000..c048169
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YAbsoluteLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YAction.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YAction.gif
new file mode 100644
index 0000000..a7efbef
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YAction.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YBeanReferenceField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YBeanReferenceField.gif
new file mode 100644
index 0000000..0e92151
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YBeanReferenceField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YBooleanSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YBooleanSearchField.gif
new file mode 100644
index 0000000..5204d4b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YBooleanSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YBrowser.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YBrowser.gif
new file mode 100644
index 0000000..48f1260
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YBrowser.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YButton.gif
new file mode 100644
index 0000000..a5e5f97
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YCheckBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YCheckBox.gif
new file mode 100644
index 0000000..5d1e5fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YCheckBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YComboBox.gif
new file mode 100644
index 0000000..38c09e8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YCssLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YCssLayout.gif
new file mode 100644
index 0000000..887857a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YCssLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YDateTime.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YDateTime.gif
new file mode 100644
index 0000000..887857a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YDateTime.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YDecimalField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YDecimalField.gif
new file mode 100644
index 0000000..3b885fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YDecimalField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YEnumComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YEnumComboBox.gif
new file mode 100644
index 0000000..33193f9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YEnumComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YEnumList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YEnumList.gif
new file mode 100644
index 0000000..2f2f535
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YEnumList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YEnumOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YEnumOptionsGroup.gif
new file mode 100644
index 0000000..f91a995
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YEnumOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YField.gif
new file mode 100644
index 0000000..0d4f530
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YFormLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YFormLayout.gif
new file mode 100644
index 0000000..5204d4b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YFormLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YGridLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YGridLayout.gif
new file mode 100644
index 0000000..887857a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YGridLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YHelperLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YHelperLayout.gif
new file mode 100644
index 0000000..01293d8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YHelperLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YHorizontalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YHorizontalLayout.gif
new file mode 100644
index 0000000..3826602
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YHorizontalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YImage.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YImage.gif
new file mode 100644
index 0000000..1c1a5ef
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YImage.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YLabel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YLabel.gif
new file mode 100644
index 0000000..acb9e06
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YLabel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YLayout.gif
new file mode 100644
index 0000000..0d4f530
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YList.gif
new file mode 100644
index 0000000..65c0cbe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YMasterDetail.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YMasterDetail.gif
new file mode 100644
index 0000000..f76ecf0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YMasterDetail.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YNumericField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YNumericField.gif
new file mode 100644
index 0000000..9532027
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YNumericField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YNumericSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YNumericSearchField.gif
new file mode 100644
index 0000000..0056d63
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YNumericSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YOptionsGroup.gif
new file mode 100644
index 0000000..9fc00ad
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YPanel.gif
new file mode 100644
index 0000000..5d1e5fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YPasswordField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YPasswordField.gif
new file mode 100644
index 0000000..a35176a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YPasswordField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YProgressBar.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YProgressBar.gif
new file mode 100644
index 0000000..ef7a76e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YProgressBar.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YReferenceSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YReferenceSearchField.gif
new file mode 100644
index 0000000..4f65777
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YReferenceSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSearchPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSearchPanel.gif
new file mode 100644
index 0000000..b24124a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSearchPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSlider.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSlider.gif
new file mode 100644
index 0000000..3a05916
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSlider.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSplitPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSplitPanel.gif
new file mode 100644
index 0000000..eb4dbff
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSplitPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSuggestTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSuggestTextField.gif
new file mode 100644
index 0000000..3826602
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YSuggestTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTabSheet.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTabSheet.gif
new file mode 100644
index 0000000..65c0cbe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTabSheet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTable.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTable.gif
new file mode 100644
index 0000000..803d12d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTable.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTextArea.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTextArea.gif
new file mode 100644
index 0000000..0dccd27
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTextArea.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTextField.gif
new file mode 100644
index 0000000..f91a995
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTextSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTextSearchField.gif
new file mode 100644
index 0000000..269f51e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTextSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YToggleButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YToggleButton.gif
new file mode 100644
index 0000000..01293d8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YToggleButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTree.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTree.gif
new file mode 100644
index 0000000..48f1260
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YTree.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YVerticalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YVerticalLayout.gif
new file mode 100644
index 0000000..65c0cbe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYMasterDetail_masterElement_YVerticalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YActivatedEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YActivatedEndpoint.gif
new file mode 100644
index 0000000..a149010
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YActivatedEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YBeanSlotValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YBeanSlotValueBindingEndpoint.gif
new file mode 100644
index 0000000..b3520a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YBeanSlotValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YBeanValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YBeanValueBindingEndpoint.gif
new file mode 100644
index 0000000..df7aba9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YBeanValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YContextValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YContextValueBindingEndpoint.gif
new file mode 100644
index 0000000..532796f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YContextValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YDetailValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YDetailValueBindingEndpoint.gif
new file mode 100644
index 0000000..b447e9a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YDetailValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YECViewModelValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YECViewModelValueBindingEndpoint.gif
new file mode 100644
index 0000000..b14c508
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YECViewModelValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YEmbeddableSelectionEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YEmbeddableSelectionEndpoint.gif
new file mode 100644
index 0000000..1cbba05
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YEmbeddableSelectionEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YEmbeddableValueEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YEmbeddableValueEndpoint.gif
new file mode 100644
index 0000000..64b3c8a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YEmbeddableValueEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YNoOpValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YNoOpValueBindingEndpoint.gif
new file mode 100644
index 0000000..f0d542c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YNoOpValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YVisibilityProcessorValueBindingEndpoint.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YVisibilityProcessorValueBindingEndpoint.gif
new file mode 100644
index 0000000..f3893b1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSetNewBeanInstanceCommand_target_YVisibilityProcessorValueBindingEndpoint.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSplitPanel_cellStyles_YHorizontalLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSplitPanel_cellStyles_YHorizontalLayoutCellStyle.gif
new file mode 100644
index 0000000..ce3b99f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYSplitPanel_cellStyles_YHorizontalLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTabSheet_tabs_YTab.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTabSheet_tabs_YTab.gif
new file mode 100644
index 0000000..ed16f99
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTabSheet_tabs_YTab.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YAbsoluteLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YAbsoluteLayout.gif
new file mode 100644
index 0000000..dd8f68e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YAbsoluteLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YAction.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YAction.gif
new file mode 100644
index 0000000..55c6166
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YAction.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YBeanReferenceField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YBeanReferenceField.gif
new file mode 100644
index 0000000..94a6851
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YBeanReferenceField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YBooleanSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YBooleanSearchField.gif
new file mode 100644
index 0000000..5aacb3f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YBooleanSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YBrowser.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YBrowser.gif
new file mode 100644
index 0000000..b6fd7a0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YBrowser.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YButton.gif
new file mode 100644
index 0000000..cc34a0f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YCheckBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YCheckBox.gif
new file mode 100644
index 0000000..83d72c4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YCheckBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YComboBox.gif
new file mode 100644
index 0000000..0217157
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YCssLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YCssLayout.gif
new file mode 100644
index 0000000..f075771
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YCssLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YDateTime.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YDateTime.gif
new file mode 100644
index 0000000..f075771
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YDateTime.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YDecimalField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YDecimalField.gif
new file mode 100644
index 0000000..90c9485
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YDecimalField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YEnumComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YEnumComboBox.gif
new file mode 100644
index 0000000..e2efc63
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YEnumComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YEnumList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YEnumList.gif
new file mode 100644
index 0000000..748e96d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YEnumList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YEnumOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YEnumOptionsGroup.gif
new file mode 100644
index 0000000..3f70d4d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YEnumOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YField.gif
new file mode 100644
index 0000000..8e2a326
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YFormLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YFormLayout.gif
new file mode 100644
index 0000000..5aacb3f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YFormLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YGridLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YGridLayout.gif
new file mode 100644
index 0000000..f075771
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YGridLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YHelperLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YHelperLayout.gif
new file mode 100644
index 0000000..9c71118
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YHelperLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YHorizontalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YHorizontalLayout.gif
new file mode 100644
index 0000000..f6ec10a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YHorizontalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YImage.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YImage.gif
new file mode 100644
index 0000000..9c6b7fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YImage.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YLabel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YLabel.gif
new file mode 100644
index 0000000..b89aadc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YLabel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YLayout.gif
new file mode 100644
index 0000000..8e2a326
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YList.gif
new file mode 100644
index 0000000..02153a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YMasterDetail.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YMasterDetail.gif
new file mode 100644
index 0000000..30dc35a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YMasterDetail.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YNumericField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YNumericField.gif
new file mode 100644
index 0000000..436a9c5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YNumericField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YNumericSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YNumericSearchField.gif
new file mode 100644
index 0000000..03c1266
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YNumericSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YOptionsGroup.gif
new file mode 100644
index 0000000..eeaa06b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YPanel.gif
new file mode 100644
index 0000000..83d72c4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YPasswordField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YPasswordField.gif
new file mode 100644
index 0000000..8f218cb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YPasswordField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YProgressBar.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YProgressBar.gif
new file mode 100644
index 0000000..1b80aea
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YProgressBar.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YReferenceSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YReferenceSearchField.gif
new file mode 100644
index 0000000..43d93ae
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YReferenceSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSearchPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSearchPanel.gif
new file mode 100644
index 0000000..e0e45bd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSearchPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSlider.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSlider.gif
new file mode 100644
index 0000000..b60215a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSlider.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSplitPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSplitPanel.gif
new file mode 100644
index 0000000..e050920
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSplitPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSuggestTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSuggestTextField.gif
new file mode 100644
index 0000000..f6ec10a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YSuggestTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTabSheet.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTabSheet.gif
new file mode 100644
index 0000000..02153a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTabSheet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTable.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTable.gif
new file mode 100644
index 0000000..0e886ec
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTable.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTextArea.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTextArea.gif
new file mode 100644
index 0000000..f37ce87
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTextArea.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTextField.gif
new file mode 100644
index 0000000..3f70d4d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTextSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTextSearchField.gif
new file mode 100644
index 0000000..e8626bf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTextSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YToggleButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YToggleButton.gif
new file mode 100644
index 0000000..9c71118
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YToggleButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTree.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTree.gif
new file mode 100644
index 0000000..b6fd7a0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YTree.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YVerticalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YVerticalLayout.gif
new file mode 100644
index 0000000..02153a7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_embeddable_YVerticalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_orphanDatadescriptions_YDatadescription.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_orphanDatadescriptions_YDatadescription.gif
new file mode 100644
index 0000000..0217157
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTab_orphanDatadescriptions_YDatadescription.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTable_columns_YColumn.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTable_columns_YColumn.gif
new file mode 100644
index 0000000..c9f5c5c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYTable_columns_YColumn.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYVerticalLayout_cellStyles_YVerticalLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYVerticalLayout_cellStyles_YVerticalLayoutCellStyle.gif
new file mode 100644
index 0000000..1ce135f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYVerticalLayout_cellStyles_YVerticalLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YAbsoluteLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YAbsoluteLayout.gif
new file mode 100644
index 0000000..aff8996
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YAbsoluteLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YBeanReferenceField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YBeanReferenceField.gif
new file mode 100644
index 0000000..b981977
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YBeanReferenceField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YBooleanSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YBooleanSearchField.gif
new file mode 100644
index 0000000..a7d12d3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YBooleanSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YBrowser.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YBrowser.gif
new file mode 100644
index 0000000..6f74245
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YBrowser.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YButton.gif
new file mode 100644
index 0000000..a303761
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YCheckBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YCheckBox.gif
new file mode 100644
index 0000000..c022715
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YCheckBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YComboBox.gif
new file mode 100644
index 0000000..07b0fd9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YCssLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YCssLayout.gif
new file mode 100644
index 0000000..b067e51
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YCssLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YDateTime.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YDateTime.gif
new file mode 100644
index 0000000..b067e51
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YDateTime.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YDecimalField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YDecimalField.gif
new file mode 100644
index 0000000..d065203
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YDecimalField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YEnumComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YEnumComboBox.gif
new file mode 100644
index 0000000..88d8844
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YEnumComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YEnumList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YEnumList.gif
new file mode 100644
index 0000000..e0a4541
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YEnumList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YEnumOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YEnumOptionsGroup.gif
new file mode 100644
index 0000000..a32a7b5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YEnumOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YFormLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YFormLayout.gif
new file mode 100644
index 0000000..a7d12d3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YFormLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YGridLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YGridLayout.gif
new file mode 100644
index 0000000..b067e51
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YGridLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YHorizontalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YHorizontalLayout.gif
new file mode 100644
index 0000000..5381067
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YHorizontalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YImage.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YImage.gif
new file mode 100644
index 0000000..e88df1c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YImage.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YLabel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YLabel.gif
new file mode 100644
index 0000000..1e0e0f3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YLabel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YList.gif
new file mode 100644
index 0000000..68005ae
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YMasterDetail.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YMasterDetail.gif
new file mode 100644
index 0000000..3891882
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YMasterDetail.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YNumericField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YNumericField.gif
new file mode 100644
index 0000000..0cf27b2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YNumericField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YNumericSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YNumericSearchField.gif
new file mode 100644
index 0000000..a36743b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YNumericSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YOptionsGroup.gif
new file mode 100644
index 0000000..9a2424e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YPanel.gif
new file mode 100644
index 0000000..c022715
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YPasswordField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YPasswordField.gif
new file mode 100644
index 0000000..3353cf6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YPasswordField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YProgressBar.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YProgressBar.gif
new file mode 100644
index 0000000..b9cd878
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YProgressBar.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YReferenceSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YReferenceSearchField.gif
new file mode 100644
index 0000000..4f7ee52
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YReferenceSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSearchPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSearchPanel.gif
new file mode 100644
index 0000000..de6e628
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSearchPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSlider.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSlider.gif
new file mode 100644
index 0000000..c59c871
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSlider.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSplitPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSplitPanel.gif
new file mode 100644
index 0000000..1651076
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSplitPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSuggestTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSuggestTextField.gif
new file mode 100644
index 0000000..5381067
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YSuggestTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTabSheet.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTabSheet.gif
new file mode 100644
index 0000000..68005ae
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTabSheet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTable.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTable.gif
new file mode 100644
index 0000000..0d55746
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTable.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTextArea.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTextArea.gif
new file mode 100644
index 0000000..6baa8a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTextArea.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTextField.gif
new file mode 100644
index 0000000..a32a7b5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTextSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTextSearchField.gif
new file mode 100644
index 0000000..06250be
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTextSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YToggleButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YToggleButton.gif
new file mode 100644
index 0000000..dd977db
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YToggleButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTree.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTree.gif
new file mode 100644
index 0000000..6f74245
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YTree.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YVerticalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YVerticalLayout.gif
new file mode 100644
index 0000000..68005ae
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ctool16/CreateYView_content_YVerticalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAbsoluteLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAbsoluteLayout.gif
new file mode 100644
index 0000000..ed87474
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAbsoluteLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAbsoluteLayout.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAbsoluteLayout.png
new file mode 100644
index 0000000..3bc0bd3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAbsoluteLayout.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAbsoluteLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAbsoluteLayoutCellStyle.gif
new file mode 100644
index 0000000..c414fe9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAbsoluteLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAddToTableCommand.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAddToTableCommand.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YAddToTableCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBeanReferenceField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBeanReferenceField.gif
new file mode 100644
index 0000000..9ac63fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBeanReferenceField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBeanSlot.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBeanSlot.gif
new file mode 100644
index 0000000..c20f659
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBeanSlot.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindableDef.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindableDef.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindableDef.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBinding.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBinding.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBinding.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindingEndpointAlias.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindingEndpointAlias.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindingEndpointAlias.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindingEndpointAssigment.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindingEndpointAssigment.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindingEndpointAssigment.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindingSet.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindingSet.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBindingSet.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBooleanSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBooleanSearchField.gif
new file mode 100644
index 0000000..420eee1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBooleanSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowser.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowser.gif
new file mode 100644
index 0000000..6ea5a40
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowser.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowser.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowser.png
new file mode 100644
index 0000000..00794d4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowser.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowserDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowserDatatype.gif
new file mode 100644
index 0000000..420eee1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowserDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowserStreamInput.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowserStreamInput.gif
new file mode 100644
index 0000000..1e5345f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YBrowserStreamInput.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YButton.gif
new file mode 100644
index 0000000..d143fcf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCheckBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCheckBox.gif
new file mode 100644
index 0000000..9cacb96
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCheckBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCheckBoxDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCheckBoxDatatype.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCheckBoxDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YColumn.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YColumn.gif
new file mode 100644
index 0000000..90d10f9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YColumn.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YComboBox.gif
new file mode 100644
index 0000000..9ac63fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YComboBoxDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YComboBoxDatatype.gif
new file mode 100644
index 0000000..c673a52
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YComboBoxDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCommand.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCommand.png
new file mode 100644
index 0000000..0889b90
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCommand.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCssLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCssLayout.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCssLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCssLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCssLayoutCellStyle.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YCssLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDateTime.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDateTime.gif
new file mode 100644
index 0000000..464d0df
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDateTime.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDateTimeDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDateTimeDatatype.gif
new file mode 100644
index 0000000..c414fe9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDateTimeDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDecimalDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDecimalDatatype.gif
new file mode 100644
index 0000000..c8d381f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDecimalDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDecimalField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDecimalField.gif
new file mode 100644
index 0000000..cf20952
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDecimalField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDialog.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDialog.png
new file mode 100644
index 0000000..681c0a0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YDialog.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YEnumComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YEnumComboBox.gif
new file mode 100644
index 0000000..33854e9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YEnumComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YEnumList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YEnumList.gif
new file mode 100644
index 0000000..d92f34c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YEnumList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YEnumOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YEnumOptionsGroup.gif
new file mode 100644
index 0000000..136e3b2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YEnumOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YFilter.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YFilter.gif
new file mode 100644
index 0000000..9041598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YFilter.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YFormLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YFormLayout.gif
new file mode 100644
index 0000000..bbbdd55
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YFormLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YFormLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YFormLayoutCellStyle.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YFormLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YGridLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YGridLayout.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YGridLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YGridLayout.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YGridLayout.png
new file mode 100644
index 0000000..3bc0bd3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YGridLayout.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YGridLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YGridLayoutCellStyle.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YGridLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YHorizontalButtonGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YHorizontalButtonGroup.gif
new file mode 100644
index 0000000..d143fcf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YHorizontalButtonGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YHorizontalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YHorizontalLayout.gif
new file mode 100644
index 0000000..013e818
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YHorizontalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YHorizontalLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YHorizontalLayoutCellStyle.gif
new file mode 100644
index 0000000..45731fe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YHorizontalLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YImage.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YImage.gif
new file mode 100644
index 0000000..bc84254
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YImage.gif
@@ -0,0 +1,31 @@
+platform:/plugin/org.eclipse.ui.ide/icons/full/elcl16/refresh_nav.png
+platform:/plugin/org.eclipse.ui/icons/full/eview16/tasks_tsk.png
+platform:/plugin/org.eclipse.ui/icons/full/eview16/tasks_tsk.png
+platform:/plugin/org.eclipse.platform.doc.user/images/copy_edit.png
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/link_obj.gif
+platform:/plugin/org.eclipse.team.ui/icons/full/elcl16/collapseall.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/link_obj.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/link_obj.gif
+platform:/plugin/org.eclipse.team.ui/icons/full/elcl16/newstream_wiz.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/extension_obj.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/extension_obj.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/extension_obj.gif
+platform:/plugin/org.eclipse.platform.doc.user/images/run_exec.png
+platform:/plugin/org.eclipse.platform.doc.user/images/run_exec.png
+platform:/plugin/org.eclipse.platform.doc.user/images/run_exec.png
+platform:/plugin/org.eclipse.platform.doc.user/images/run_exec.png
+platform:/plugin/org.eclipse.ui.workbench.texteditor/icons/full/obj16/preview.gif
+platform:/plugin/org.eclipse.ui.workbench.texteditor/icons/full/obj16/preview.gif
+platform:/plugin/org.eclipse.ui/icons/full/eview16/default_persp.gif
+platform:/plugin/org.eclipse.ui/icons/full/eview16/default_persp.gif
+platform:/plugin/org.eclipse.ui/icons/full/eview16/default_persp.gif
+platform:/plugin/org.eclipse.ui/icons/full/eview16/default_persp.gif
+platform:/plugin/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/targetpublic_obj.png
+platform:/plugin/org.eclipse.platform.doc.user/images/stop_nav.png
+platform:/plugin/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
+platform:/plugin/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
+platform:/plugin/org.eclipse.team.ui/icons/full/elcl16/syncpane_co.gif
+platform:/plugin/org.eclipse.team.ui/icons/full/elcl16/syncpane_co.gif
+platform:/plugin/org.eclipse.ui.workbench.texteditor/icons/full/obj16/template_obj.gif
+platform:/plugin/org.eclipse.ui/icons/full/etool16/editor_area.gif
+platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YLabel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YLabel.gif
new file mode 100644
index 0000000..cf00ad2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YLabel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YList.gif
new file mode 100644
index 0000000..671c957
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YListDataType.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YListDataType.gif
new file mode 100644
index 0000000..1e5345f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YListDataType.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YMasterDetail.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YMasterDetail.gif
new file mode 100644
index 0000000..5a9bc75
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YMasterDetail.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YMasterDetailDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YMasterDetailDatatype.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YMasterDetailDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YNumericDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YNumericDatatype.gif
new file mode 100644
index 0000000..be22463
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YNumericDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YNumericField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YNumericField.gif
new file mode 100644
index 0000000..89ad5da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YNumericField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YNumericSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YNumericSearchField.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YNumericSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YOptionsGroup.gif
new file mode 100644
index 0000000..671c957
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YOptionsGroupDataType.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YOptionsGroupDataType.gif
new file mode 100644
index 0000000..14af8aa
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YOptionsGroupDataType.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YPanel.gif
new file mode 100644
index 0000000..1e5345f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YPasswordField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YPasswordField.gif
new file mode 100644
index 0000000..9250fec
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YPasswordField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YProgressBar.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YProgressBar.gif
new file mode 100644
index 0000000..af41a17
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YProgressBar.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YProgressBarDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YProgressBarDatatype.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YProgressBarDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YReferenceSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YReferenceSearchField.gif
new file mode 100644
index 0000000..c673a52
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YReferenceSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YRemoveFromTableCommand.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YRemoveFromTableCommand.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YRemoveFromTableCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSearchDialog.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSearchDialog.png
new file mode 100644
index 0000000..681c0a0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSearchDialog.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSearchField.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSearchField.png
new file mode 100644
index 0000000..4eff4c9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSearchField.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSearchPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSearchPanel.gif
new file mode 100644
index 0000000..106881e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSearchPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSetNewBeanInstanceCommand.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSetNewBeanInstanceCommand.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSetNewBeanInstanceCommand.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSlider.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSlider.gif
new file mode 100644
index 0000000..e4b530e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSlider.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSpanInfo.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSpanInfo.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSpanInfo.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSplitPanel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSplitPanel.gif
new file mode 100644
index 0000000..caf2804
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSplitPanel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSuggestTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSuggestTextField.gif
new file mode 100644
index 0000000..9ac63fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YSuggestTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTab.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTab.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTab.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTabSheet.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTabSheet.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTabSheet.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTabSheet.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTabSheet.png
new file mode 100644
index 0000000..19c9d7e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTabSheet.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTabSheetDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTabSheetDatatype.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTabSheetDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTable.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTable.gif
new file mode 100644
index 0000000..b99b45c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTable.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTableDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTableDatatype.gif
new file mode 100644
index 0000000..c4a8af4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTableDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextArea.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextArea.gif
new file mode 100644
index 0000000..d91ebdf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextArea.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextAreaDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextAreaDatatype.gif
new file mode 100644
index 0000000..ea58a65
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextAreaDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextDatatype.gif
new file mode 100644
index 0000000..c673a52
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextField.gif
new file mode 100644
index 0000000..cf20952
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextSearchField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextSearchField.gif
new file mode 100644
index 0000000..48e3cf2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTextSearchField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YToggleButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YToggleButton.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YToggleButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTree.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTree.gif
new file mode 100644
index 0000000..94c953e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTree.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTreeDatatype.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTreeDatatype.gif
new file mode 100644
index 0000000..420eee1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YTreeDatatype.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YValidator.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YValidator.gif
new file mode 100644
index 0000000..6af230b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YVerticalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YVerticalLayout.gif
new file mode 100644
index 0000000..bbbdd55
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YVerticalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YVerticalLayoutCellStyle.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YVerticalLayoutCellStyle.gif
new file mode 100644
index 0000000..134551b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YVerticalLayoutCellStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YView.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YView.gif
new file mode 100644
index 0000000..faaa8ac
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YView.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YVisibilityProcessor.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YVisibilityProcessor.gif
new file mode 100644
index 0000000..d143fcf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/obj16/YVisibilityProcessor.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBeanReferenceField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBeanReferenceField.gif
new file mode 100644
index 0000000..9ac63fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBeanReferenceField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBeanSlot.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBeanSlot.gif
new file mode 100644
index 0000000..c20f659
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBeanSlot.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindableDef.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindableDef.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindableDef.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBinding.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBinding.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBinding.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindingEndpointAlias.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindingEndpointAlias.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindingEndpointAlias.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindingEndpointAssigment.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindingEndpointAssigment.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindingEndpointAssigment.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindingSet.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindingSet.png
new file mode 100644
index 0000000..25eacb7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBindingSet.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBrowser.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBrowser.gif
new file mode 100644
index 0000000..6ea5a40
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBrowser.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBrowser.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBrowser.png
new file mode 100644
index 0000000..00794d4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YBrowser.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YButton.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YButton.gif
new file mode 100644
index 0000000..d143fcf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YButton.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YCheckBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YCheckBox.gif
new file mode 100644
index 0000000..9cacb96
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YCheckBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YComboBox.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YComboBox.gif
new file mode 100644
index 0000000..9ac63fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YComboBox.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YCommand.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YCommand.png
new file mode 100644
index 0000000..0889b90
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YCommand.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YDateField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YDateField.gif
new file mode 100644
index 0000000..464d0df
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YDateField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YDecimalField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YDecimalField.gif
new file mode 100644
index 0000000..cf20952
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YDecimalField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YDialog.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YDialog.png
new file mode 100644
index 0000000..681c0a0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YDialog.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YFormLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YFormLayout.gif
new file mode 100644
index 0000000..bbbdd55
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YFormLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YGridLayout.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YGridLayout.png
new file mode 100644
index 0000000..3bc0bd3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YGridLayout.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YHorizontalButtonGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YHorizontalButtonGroup.gif
new file mode 100644
index 0000000..d143fcf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YHorizontalButtonGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YHorizontalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YHorizontalLayout.gif
new file mode 100644
index 0000000..013e818
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YHorizontalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YImage.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YImage.gif
new file mode 100644
index 0000000..bc84254
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YImage.gif
@@ -0,0 +1,31 @@
+platform:/plugin/org.eclipse.ui.ide/icons/full/elcl16/refresh_nav.png
+platform:/plugin/org.eclipse.ui/icons/full/eview16/tasks_tsk.png
+platform:/plugin/org.eclipse.ui/icons/full/eview16/tasks_tsk.png
+platform:/plugin/org.eclipse.platform.doc.user/images/copy_edit.png
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/link_obj.gif
+platform:/plugin/org.eclipse.team.ui/icons/full/elcl16/collapseall.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/link_obj.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/link_obj.gif
+platform:/plugin/org.eclipse.team.ui/icons/full/elcl16/newstream_wiz.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/extension_obj.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/extension_obj.gif
+platform:/plugin/org.eclipse.pde.ui/icons/obj16/extension_obj.gif
+platform:/plugin/org.eclipse.platform.doc.user/images/run_exec.png
+platform:/plugin/org.eclipse.platform.doc.user/images/run_exec.png
+platform:/plugin/org.eclipse.platform.doc.user/images/run_exec.png
+platform:/plugin/org.eclipse.platform.doc.user/images/run_exec.png
+platform:/plugin/org.eclipse.ui.workbench.texteditor/icons/full/obj16/preview.gif
+platform:/plugin/org.eclipse.ui.workbench.texteditor/icons/full/obj16/preview.gif
+platform:/plugin/org.eclipse.ui/icons/full/eview16/default_persp.gif
+platform:/plugin/org.eclipse.ui/icons/full/eview16/default_persp.gif
+platform:/plugin/org.eclipse.ui/icons/full/eview16/default_persp.gif
+platform:/plugin/org.eclipse.ui/icons/full/eview16/default_persp.gif
+platform:/plugin/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/targetpublic_obj.png
+platform:/plugin/org.eclipse.platform.doc.user/images/stop_nav.png
+platform:/plugin/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
+platform:/plugin/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
+platform:/plugin/org.eclipse.team.ui/icons/full/elcl16/syncpane_co.gif
+platform:/plugin/org.eclipse.team.ui/icons/full/elcl16/syncpane_co.gif
+platform:/plugin/org.eclipse.ui.workbench.texteditor/icons/full/obj16/template_obj.gif
+platform:/plugin/org.eclipse.ui/icons/full/etool16/editor_area.gif
+platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YLabel.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YLabel.gif
new file mode 100644
index 0000000..cf00ad2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YLabel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YList.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YList.gif
new file mode 100644
index 0000000..671c957
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YList.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YOptionsGroup.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YOptionsGroup.gif
new file mode 100644
index 0000000..671c957
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YOptionsGroup.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YProgressBar.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YProgressBar.gif
new file mode 100644
index 0000000..af41a17
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YProgressBar.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YSearchDialog.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YSearchDialog.png
new file mode 100644
index 0000000..681c0a0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YSearchDialog.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YSearchField.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YSearchField.png
new file mode 100644
index 0000000..4eff4c9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YSearchField.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTabSheet.png b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTabSheet.png
new file mode 100644
index 0000000..19c9d7e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTabSheet.png
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTable.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTable.gif
new file mode 100644
index 0000000..b99b45c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTable.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTextArea.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTextArea.gif
new file mode 100644
index 0000000..d91ebdf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTextArea.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTextField.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTextField.gif
new file mode 100644
index 0000000..cf20952
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YTextField.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YValidator.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YValidator.gif
new file mode 100644
index 0000000..6af230b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YValidator.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YVerticalLayout.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YVerticalLayout.gif
new file mode 100644
index 0000000..bbbdd55
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YVerticalLayout.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YVisibilityProcessor.gif b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YVisibilityProcessor.gif
new file mode 100644
index 0000000..d143fcf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/icons/full/ui/YVisibilityProcessor.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/license.html b/org.eclipse.osbp.ecview.core.extension.model.edit/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/plugin.properties b/org.eclipse.osbp.ecview.core.extension.model.edit/plugin.properties
new file mode 100644
index 0000000..f29094a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/plugin.properties
@@ -0,0 +1,382 @@
+#
+
+pluginName = Extension Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_YTextDatatype_type = YText Datatype
+_UI_YTextAreaDatatype_type = YText Area Datatype
+_UI_YNumericDatatype_type = YNumeric Datatype
+_UI_YDecimalDatatype_type = YDecimal Datatype
+_UI_YTableDatatype_type = YTable Datatype
+_UI_YCheckBoxDatatype_type = YCheck Box Datatype
+_UI_YComboBoxDatatype_type = YCombo Box Datatype
+_UI_YListDataType_type = YList Data Type
+_UI_YOptionsGroupDataType_type = YOptions Group Data Type
+_UI_YBrowserDatatype_type = YBrowser Datatype
+_UI_YDateTimeDatatype_type = YDate Time Datatype
+_UI_YTreeDatatype_type = YTree Datatype
+_UI_YProgressBarDatatype_type = YProgress Bar Datatype
+_UI_YTabSheetDatatype_type = YTab Sheet Datatype
+_UI_YMasterDetailDatatype_type = YMaster Detail Datatype
+_UI_YInput_type = YInput
+_UI_YGridLayout_type = YGrid Layout
+_UI_YGridLayoutCellStyle_type = YGrid Layout Cell Style
+_UI_YHorizontalLayout_type = YHorizontal Layout
+_UI_YHorizontalLayoutCellStyle_type = YHorizontal Layout Cell Style
+_UI_YVerticalLayout_type = YVertical Layout
+_UI_YVerticalLayoutCellStyle_type = YVertical Layout Cell Style
+_UI_YSpanInfo_type = YSpan Info
+_UI_YTable_type = YTable
+_UI_YColumn_type = YColumn
+_UI_YTree_type = YTree
+_UI_YOptionsGroup_type = YOptions Group
+_UI_YList_type = YList
+_UI_YLabel_type = YLabel
+_UI_YImage_type = YImage
+_UI_YTextField_type = YText Field
+_UI_YBeanReferenceField_type = YBean Reference Field
+_UI_YTextArea_type = YText Area
+_UI_YCheckBox_type = YCheck Box
+_UI_YBrowser_type = YBrowser
+_UI_YDateTime_type = YDate Time
+_UI_YDecimalField_type = YDecimal Field
+_UI_YNumericField_type = YNumeric Field
+_UI_YComboBox_type = YCombo Box
+_UI_YButton_type = YButton
+_UI_YSlider_type = YSlider
+_UI_YToggleButton_type = YToggle Button
+_UI_YProgressBar_type = YProgress Bar
+_UI_YTabSheet_type = YTab Sheet
+_UI_YTab_type = YTab
+_UI_YMasterDetail_type = YMaster Detail
+_UI_YFormLayout_type = YForm Layout
+_UI_YFormLayoutCellStyle_type = YForm Layout Cell Style
+_UI_YSearchField_type = YSearch Field
+_UI_YTextSearchField_type = YText Search Field
+_UI_YBooleanSearchField_type = YBoolean Search Field
+_UI_YNumericSearchField_type = YNumeric Search Field
+_UI_YReferenceSearchField_type = YReference Search Field
+_UI_YPanel_type = YPanel
+_UI_YSplitPanel_type = YSplit Panel
+_UI_YSearchPanel_type = YSearch Panel
+_UI_YEnumOptionsGroup_type = YEnum Options Group
+_UI_YEnumList_type = YEnum List
+_UI_YEnumComboBox_type = YEnum Combo Box
+_UI_YBeanServiceConsumer_type = YBean Service Consumer
+_UI_YAddToTableCommand_type = YAdd To Table Command
+_UI_YRemoveFromTableCommand_type = YRemove From Table Command
+_UI_YBrowserStreamInput_type = YBrowser Stream Input
+_UI_YSetNewBeanInstanceCommand_type = YSet New Bean Instance Command
+_UI_YCssLayout_type = YCss Layout
+_UI_YCssLayoutCellStyle_type = YCss Layout Cell Style
+_UI_YFilter_type = YFilter
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_YNumericDatatype_grouping_feature = Grouping
+_UI_YNumericDatatype_markNegative_feature = Mark Negative
+_UI_YDecimalDatatype_precision_feature = Precision
+_UI_YDateTimeDatatype_format_feature = Format
+_UI_YDateTimeDatatype_resolution_feature = Resolution
+_UI_YGridLayout_cellStyles_feature = Cell Styles
+_UI_YGridLayout_columns_feature = Columns
+_UI_YGridLayoutCellStyle_target_feature = Target
+_UI_YGridLayoutCellStyle_alignment_feature = Alignment
+_UI_YGridLayoutCellStyle_spanInfo_feature = Span Info
+_UI_YHorizontalLayout_cellStyles_feature = Cell Styles
+_UI_YHorizontalLayoutCellStyle_target_feature = Target
+_UI_YHorizontalLayoutCellStyle_alignment_feature = Alignment
+_UI_YVerticalLayout_cellStyles_feature = Cell Styles
+_UI_YVerticalLayoutCellStyle_target_feature = Target
+_UI_YVerticalLayoutCellStyle_alignment_feature = Alignment
+_UI_YSpanInfo_columnFrom_feature = Column From
+_UI_YSpanInfo_rowFrom_feature = Row From
+_UI_YSpanInfo_columnTo_feature = Column To
+_UI_YSpanInfo_rowTo_feature = Row To
+_UI_YTable_datatype_feature = Datatype
+_UI_YTable_datadescription_feature = Datadescription
+_UI_YTable_selectionType_feature = Selection Type
+_UI_YTable_selection_feature = Selection
+_UI_YTable_multiSelection_feature = Multi Selection
+_UI_YTable_collection_feature = Collection
+_UI_YTable_type_feature = Type
+_UI_YTable_emfNsURI_feature = Emf Ns URI
+_UI_YTable_typeQualifiedName_feature = Type Qualified Name
+_UI_YTable_columns_feature = Columns
+_UI_YTable_itemImageProperty_feature = Item Image Property
+_UI_YTable_filter_feature = Filter
+_UI_YTable_refresh_feature = Refresh
+_UI_YColumn_icon_feature = Icon
+_UI_YColumn_visible_feature = Visible
+_UI_YColumn_datadescription_feature = Datadescription
+_UI_YColumn_orphanDatadescriptions_feature = Orphan Datadescriptions
+_UI_YColumn_orderable_feature = Orderable
+_UI_YColumn_collapsed_feature = Collapsed
+_UI_YColumn_collapsible_feature = Collapsible
+_UI_YColumn_alignment_feature = Alignment
+_UI_YColumn_expandRatio_feature = Expand Ratio
+_UI_YColumn_propertyPath_feature = Property Path
+_UI_YTree_datatype_feature = Datatype
+_UI_YTree_datadescription_feature = Datadescription
+_UI_YTree_selectionType_feature = Selection Type
+_UI_YTree_selection_feature = Selection
+_UI_YTree_multiSelection_feature = Multi Selection
+_UI_YTree_collection_feature = Collection
+_UI_YTree_type_feature = Type
+_UI_YTree_emfNsURI_feature = Emf Ns URI
+_UI_YTree_typeQualifiedName_feature = Type Qualified Name
+_UI_YOptionsGroup_datadescription_feature = Datadescription
+_UI_YOptionsGroup_datatype_feature = Datatype
+_UI_YOptionsGroup_selectionType_feature = Selection Type
+_UI_YOptionsGroup_selection_feature = Selection
+_UI_YOptionsGroup_multiSelection_feature = Multi Selection
+_UI_YOptionsGroup_collection_feature = Collection
+_UI_YOptionsGroup_type_feature = Type
+_UI_YOptionsGroup_emfNsURI_feature = Emf Ns URI
+_UI_YOptionsGroup_typeQualifiedName_feature = Type Qualified Name
+_UI_YOptionsGroup_captionProperty_feature = Caption Property
+_UI_YOptionsGroup_imageProperty_feature = Image Property
+_UI_YOptionsGroup_descriptionProperty_feature = Description Property
+_UI_YOptionsGroup_description_feature = Description
+_UI_YList_datadescription_feature = Datadescription
+_UI_YList_datatype_feature = Datatype
+_UI_YList_selectionType_feature = Selection Type
+_UI_YList_selection_feature = Selection
+_UI_YList_multiSelection_feature = Multi Selection
+_UI_YList_collection_feature = Collection
+_UI_YList_type_feature = Type
+_UI_YList_emfNsURI_feature = Emf Ns URI
+_UI_YList_typeQualifiedName_feature = Type Qualified Name
+_UI_YList_captionProperty_feature = Caption Property
+_UI_YList_imageProperty_feature = Image Property
+_UI_YList_descriptionProperty_feature = Description Property
+_UI_YList_description_feature = Description
+_UI_YLabel_datadescription_feature = Datadescription
+_UI_YLabel_value_feature = Value
+_UI_YImage_datadescription_feature = Datadescription
+_UI_YImage_value_feature = Value
+_UI_YTextField_datatype_feature = Datatype
+_UI_YTextField_datadescription_feature = Datadescription
+_UI_YTextField_value_feature = Value
+_UI_YBeanReferenceField_datadescription_feature = Datadescription
+_UI_YBeanReferenceField_value_feature = Value
+_UI_YBeanReferenceField_type_feature = Type
+_UI_YBeanReferenceField_emfNsURI_feature = Emf Ns URI
+_UI_YBeanReferenceField_typeQualifiedName_feature = Type Qualified Name
+_UI_YBeanReferenceField_inMemoryBeanProvider_feature = In Memory Bean Provider
+_UI_YBeanReferenceField_inMemoryBeanProviderQualifiedName_feature = In Memory Bean Provider Qualified Name
+_UI_YBeanReferenceField_captionPropertyPath_feature = Caption Property Path
+_UI_YBeanReferenceField_imagePropertyPath_feature = Image Property Path
+_UI_YBeanReferenceField_descriptionProperty_feature = Description Property
+_UI_YBeanReferenceField_description_feature = Description
+_UI_YBeanReferenceField_referenceSourceType_feature = Reference Source Type
+_UI_YBeanReferenceField_referenceSourceTypeQualifiedName_feature = Reference Source Type Qualified Name
+_UI_YBeanReferenceField_referenceSourceTypeProperty_feature = Reference Source Type Property
+_UI_YTextArea_datadescription_feature = Datadescription
+_UI_YTextArea_datatype_feature = Datatype
+_UI_YTextArea_value_feature = Value
+_UI_YCheckBox_datadescription_feature = Datadescription
+_UI_YCheckBox_datatype_feature = Datatype
+_UI_YCheckBox_value_feature = Value
+_UI_YBrowser_datatype_feature = Datatype
+_UI_YBrowser_datadescription_feature = Datadescription
+_UI_YBrowser_value_feature = Value
+_UI_YDateTime_datatype_feature = Datatype
+_UI_YDateTime_datadescription_feature = Datadescription
+_UI_YDateTime_value_feature = Value
+_UI_YDecimalField_datatype_feature = Datatype
+_UI_YDecimalField_datadescription_feature = Datadescription
+_UI_YDecimalField_value_feature = Value
+_UI_YNumericField_datatype_feature = Datatype
+_UI_YNumericField_datadescription_feature = Datadescription
+_UI_YNumericField_value_feature = Value
+_UI_YComboBox_datadescription_feature = Datadescription
+_UI_YComboBox_datatype_feature = Datatype
+_UI_YComboBox_selection_feature = Selection
+_UI_YComboBox_collection_feature = Collection
+_UI_YComboBox_type_feature = Type
+_UI_YComboBox_emfNsURI_feature = Emf Ns URI
+_UI_YComboBox_typeQualifiedName_feature = Type Qualified Name
+_UI_YComboBox_captionProperty_feature = Caption Property
+_UI_YComboBox_imageProperty_feature = Image Property
+_UI_YComboBox_descriptionProperty_feature = Description Property
+_UI_YComboBox_description_feature = Description
+_UI_YButton_datadescription_feature = Datadescription
+_UI_YButton_clickListeners_feature = Click Listeners
+_UI_YButton_lastClickTime_feature = Last Click Time
+_UI_YSlider_datadescription_feature = Datadescription
+_UI_YSlider_value_feature = Value
+_UI_YSlider_maxValue_feature = Max Value
+_UI_YSlider_minValue_feature = Min Value
+_UI_YSlider_resolution_feature = Resolution
+_UI_YSlider_orientation_feature = Orientation
+_UI_YToggleButton_datadescription_feature = Datadescription
+_UI_YProgressBar_datatype_feature = Datatype
+_UI_YProgressBar_datadescription_feature = Datadescription
+_UI_YProgressBar_value_feature = Value
+_UI_YTabSheet_tabs_feature = Tabs
+_UI_YTab_parent_feature = Parent
+_UI_YTab_embeddable_feature = Embeddable
+_UI_YTab_datadescription_feature = Datadescription
+_UI_YTab_orphanDatadescriptions_feature = Orphan Datadescriptions
+_UI_YMasterDetail_datatype_feature = Datatype
+_UI_YMasterDetail_datadescription_feature = Datadescription
+_UI_YMasterDetail_selection_feature = Selection
+_UI_YMasterDetail_collection_feature = Collection
+_UI_YMasterDetail_type_feature = Type
+_UI_YMasterDetail_emfNsURI_feature = Emf Ns URI
+_UI_YMasterDetail_masterElement_feature = Master Element
+_UI_YMasterDetail_detailElement_feature = Detail Element
+_UI_YMasterDetail_typeQualifiedName_feature = Type Qualified Name
+_UI_YFormLayout_cellStyles_feature = Cell Styles
+_UI_YFormLayoutCellStyle_target_feature = Target
+_UI_YFormLayoutCellStyle_alignment_feature = Alignment
+_UI_YTextSearchField_datadescription_feature = Datadescription
+_UI_YTextSearchField_value_feature = Value
+_UI_YTextSearchField_wildcard_feature = Wildcard
+_UI_YTextSearchField_propertyPath_feature = Property Path
+_UI_YBooleanSearchField_datadescription_feature = Datadescription
+_UI_YBooleanSearchField_value_feature = Value
+_UI_YBooleanSearchField_propertyPath_feature = Property Path
+_UI_YNumericSearchField_datadescription_feature = Datadescription
+_UI_YNumericSearchField_value_feature = Value
+_UI_YNumericSearchField_wildcard_feature = Wildcard
+_UI_YNumericSearchField_propertyPath_feature = Property Path
+_UI_YNumericSearchField_type_feature = Type
+_UI_YNumericSearchField_typeQualifiedName_feature = Type Qualified Name
+_UI_YReferenceSearchField_datadescription_feature = Datadescription
+_UI_YReferenceSearchField_value_feature = Value
+_UI_YReferenceSearchField_wildcard_feature = Wildcard
+_UI_YReferenceSearchField_propertyPath_feature = Property Path
+_UI_YReferenceSearchField_type_feature = Type
+_UI_YReferenceSearchField_emfNsURI_feature = Emf Ns URI
+_UI_YReferenceSearchField_typeQualifiedName_feature = Type Qualified Name
+_UI_YPanel_datadescription_feature = Datadescription
+_UI_YPanel_firstContent_feature = First Content
+_UI_YPanel_secondContent_feature = Second Content
+_UI_YSplitPanel_datadescription_feature = Datadescription
+_UI_YSplitPanel_cellStyles_feature = Cell Styles
+_UI_YSplitPanel_fillHorizontal_feature = Fill Horizontal
+_UI_YSplitPanel_splitPosition_feature = Split Position
+_UI_YSplitPanel_vertical_feature = Vertical
+_UI_YSearchPanel_type_feature = Type
+_UI_YSearchPanel_emfNsURI_feature = Emf Ns URI
+_UI_YSearchPanel_typeQualifiedName_feature = Type Qualified Name
+_UI_YSearchPanel_applyFilter_feature = Apply Filter
+_UI_YSearchPanel_filter_feature = Filter
+_UI_YEnumOptionsGroup_datadescription_feature = Datadescription
+_UI_YEnumOptionsGroup_datatype_feature = Datatype
+_UI_YEnumOptionsGroup_selectionType_feature = Selection Type
+_UI_YEnumOptionsGroup_selection_feature = Selection
+_UI_YEnumOptionsGroup_multiSelection_feature = Multi Selection
+_UI_YEnumOptionsGroup_type_feature = Type
+_UI_YEnumOptionsGroup_emfNsURI_feature = Emf Ns URI
+_UI_YEnumOptionsGroup_typeQualifiedName_feature = Type Qualified Name
+_UI_YEnumList_datadescription_feature = Datadescription
+_UI_YEnumList_datatype_feature = Datatype
+_UI_YEnumList_selectionType_feature = Selection Type
+_UI_YEnumList_selection_feature = Selection
+_UI_YEnumList_multiSelection_feature = Multi Selection
+_UI_YEnumList_type_feature = Type
+_UI_YEnumList_emfNsURI_feature = Emf Ns URI
+_UI_YEnumList_typeQualifiedName_feature = Type Qualified Name
+_UI_YEnumComboBox_datadescription_feature = Datadescription
+_UI_YEnumComboBox_datatype_feature = Datatype
+_UI_YEnumComboBox_selection_feature = Selection
+_UI_YEnumComboBox_type_feature = Type
+_UI_YEnumComboBox_emfNsURI_feature = Emf Ns URI
+_UI_YEnumComboBox_typeQualifiedName_feature = Type Qualified Name
+_UI_YBeanServiceConsumer_useBeanService_feature = Use Bean Service
+_UI_YAddToTableCommand_table_feature = Table
+_UI_YAddToTableCommand_trigger_feature = Trigger
+_UI_YRemoveFromTableCommand_table_feature = Table
+_UI_YRemoveFromTableCommand_trigger_feature = Trigger
+_UI_YBrowserStreamInput_filename_feature = Filename
+_UI_YBrowserStreamInput_inputStream_feature = Input Stream
+_UI_YBrowserStreamInput_mimeType_feature = Mime Type
+_UI_YSetNewBeanInstanceCommand_target_feature = Target
+_UI_YSetNewBeanInstanceCommand_trigger_feature = Trigger
+_UI_YSetNewBeanInstanceCommand_type_feature = Type
+_UI_YSetNewBeanInstanceCommand_emfNsURI_feature = Emf Ns URI
+_UI_YSetNewBeanInstanceCommand_typeQualifiedName_feature = Type Qualified Name
+_UI_YCssLayout_cellStyles_feature = Cell Styles
+_UI_YCssLayoutCellStyle_target_feature = Target
+_UI_YCssLayoutCellStyle_alignment_feature = Alignment
+_UI_YFilter_propertyPath_feature = Property Path
+_UI_YFilter_filterValue_feature = Filter Value
+_UI_Unknown_feature = Unspecified
+
+_UI_YDateTimeFormat_DATE_literal = DATE
+_UI_YDateTimeFormat_TIME_literal = TIME
+_UI_YDateTimeFormat_DATE_TIME_literal = DATE_TIME
+_UI_YDateTimeResolution_SECOND_literal = SECOND
+_UI_YDateTimeResolution_MINUTE_literal = MINUTE
+_UI_YDateTimeResolution_HOUR_literal = HOUR
+_UI_YDateTimeResolution_DAY_literal = DAY
+_UI_YDateTimeResolution_MONTH_literal = MONTH
+_UI_YDateTimeResolution_YEAR_literal = YEAR
+_UI_YDateTimeResolution_UNDEFINED_literal = UNDEFINED
+_UI_YSelectionType_SINGLE_literal = 
+_UI_YSelectionType_MULTI_literal = MULTI
+_UI_YBooleanSearchOption_TRUE_literal = TRUE
+_UI_YBooleanSearchOption_FALSE_literal = FALSE
+_UI_YBooleanSearchOption_IGNORE_literal = IGNORE
+_UI_YSearchWildcards_GT_literal = GT
+_UI_YSearchWildcards_GE_literal = GE
+_UI_YSearchWildcards_LT_literal = LT
+_UI_YSearchWildcards_LE_literal = LE
+_UI_YSearchWildcards_EQ_literal = EQ
+_UI_YSearchWildcards_NE_literal = NE
+_UI_YSearchWildcards_ANY_literal = ANY
+_UI_YColumn_converter_feature = Converter
+_UI_YColumn_type_feature = Type
+_UI_YColumn_typeQualifiedName_feature = Type Qualified Name
+_UI_YTextArea_wordWrap_feature = Word Wrap
+_UI_YTextArea_rows_feature = Rows
+_UI_YAbsoluteLayout_type = YAbsolute Layout
+_UI_YAbsoluteLayoutCellStyle_type = YAbsolute Layout Cell Style
+_UI_YSuggestTextField_type = YSuggest Text Field
+_UI_YAbsoluteLayout_cellStyles_feature = Cell Styles
+_UI_YAbsoluteLayout_childResizeEnabled_feature = Child Resize Enabled
+_UI_YAbsoluteLayout_childMoveEnabled_feature = Child Move Enabled
+_UI_YAbsoluteLayoutCellStyle_target_feature = Target
+_UI_YAbsoluteLayoutCellStyle_top_feature = Top
+_UI_YAbsoluteLayoutCellStyle_bottom_feature = Bottom
+_UI_YAbsoluteLayoutCellStyle_left_feature = Left
+_UI_YAbsoluteLayoutCellStyle_right_feature = Right
+_UI_YAbsoluteLayoutCellStyle_zIndex_feature = ZIndex
+_UI_YSuggestTextField_datatype_feature = Datatype
+_UI_YSuggestTextField_datadescription_feature = Datadescription
+_UI_YSuggestTextField_value_feature = Value
+_UI_YSuggestTextField_useSuggestions_feature = Use Suggestions
+_UI_YSuggestTextField_lastSuggestion_feature = Last Suggestion
+_UI_YSuggestTextField_type_feature = Type
+_UI_YSuggestTextField_emfNsURI_feature = Emf Ns URI
+_UI_YSuggestTextField_typeQualifiedName_feature = Type Qualified Name
+_UI_YSuggestTextField_itemCaptionProperty_feature = Item Caption Property
+_UI_YSuggestTextField_itemFilterProperty_feature = Item Filter Property
+_UI_YSuggestTextField_itemUUIDProperty_feature = Item UUID Property
+_UI_YBeanReferenceField_required_feature = Required
+_UI_YPasswordField_type = YPassword Field
+_UI_YPasswordField_datadescription_feature = Datadescription
+_UI_YPasswordField_value_feature = Value
+_UI_YSuggestTextField_autoHidePopup_feature = Auto Hide Popup
+_UI_YSuggestTextField_event_feature = Event
+_UI_YSuggestTextFieldEvents_OPEN_POPUP_literal = OPEN_POPUP
+_UI_YSuggestTextFieldEvents_CLOSE_POPUP_literal = CLOSE_POPUP
+_UI_YSuggestTextFieldEvents_NAVIGATE_NEXT_literal = NAVIGATE_NEXT
+_UI_YSuggestTextFieldEvents_NAVIGATE_PREV_literal = NAVIGATE_PREV
+_UI_YSuggestTextFieldEvents_SELECT_literal = SELECT
+_UI_YSuggestTextFieldEvents_CLEAR_literal = CLEAR
+_UI_YButton_captionProperty_feature = Caption Property
+_UI_YButton_image_feature = Image
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/plugin.xml b/org.eclipse.osbp.ecview.core.extension.model.edit/plugin.xml
new file mode 100644
index 0000000..8e45b7e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/plugin.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated extension -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/extension/datatypes"
+            class="org.eclipse.osbp.ecview.core.extension.model.datatypes.provider.ExtDatatypesItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.childCreationExtenders">
+      <!-- @generated extension -->
+      <extender
+            uri="http://osbp.eclipse.org/ecview/v1/core/view"
+            class="org.eclipse.osbp.ecview.core.extension.model.datatypes.provider.ExtDatatypesItemProviderAdapterFactory$CoreModelChildCreationExtender"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated extension -->
+      <factory
+            uri="http://osbp.eclipse.org/ecview/v1/extension/view"
+            class="org.eclipse.osbp.ecview.core.extension.model.extension.provider.ExtensionModelItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.childCreationExtenders">
+      <!-- @generated extension -->
+      <extender
+            uri="http://osbp.eclipse.org/ecview/v1/core/view"
+            class="org.eclipse.osbp.ecview.core.extension.model.extension.provider.ExtensionModelItemProviderAdapterFactory$CoreModelChildCreationExtender"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/pom.xml b/org.eclipse.osbp.ecview.core.extension.model.edit/pom.xml
new file mode 100644
index 0000000..94e7ccd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.extension.model.edit</artifactId>
+  <description>Contains the extension ECView-Model</description>
+  <packaging>eclipse-plugin</packaging>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	 <version>0.9.0-SNAPSHOT</version>
+  </parent>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/ExtDatatypesItemProviderAdapterFactory.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/ExtDatatypesItemProviderAdapterFactory.java
new file mode 100644
index 0000000..296c186
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/ExtDatatypesItemProviderAdapterFactory.java
@@ -0,0 +1,750 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import java.util.List;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.command.CommandParameter;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.util.CoreModelSwitch;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.util.ExtDatatypesAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtDatatypesItemProviderAdapterFactory extends ExtDatatypesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This helps manage the child creation extenders.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(ExtensionEditPlugin.INSTANCE, ExtDatatypesPackage.eNS_URI);
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtDatatypesItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTextDatatypeItemProvider yTextDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTextDatatypeAdapter() {
+		if (yTextDatatypeItemProvider == null) {
+			yTextDatatypeItemProvider = new YTextDatatypeItemProvider(this);
+		}
+
+		return yTextDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTextAreaDatatypeItemProvider yTextAreaDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTextAreaDatatypeAdapter() {
+		if (yTextAreaDatatypeItemProvider == null) {
+			yTextAreaDatatypeItemProvider = new YTextAreaDatatypeItemProvider(this);
+		}
+
+		return yTextAreaDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YNumericDatatypeItemProvider yNumericDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYNumericDatatypeAdapter() {
+		if (yNumericDatatypeItemProvider == null) {
+			yNumericDatatypeItemProvider = new YNumericDatatypeItemProvider(this);
+		}
+
+		return yNumericDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDecimalDatatypeItemProvider yDecimalDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDecimalDatatypeAdapter() {
+		if (yDecimalDatatypeItemProvider == null) {
+			yDecimalDatatypeItemProvider = new YDecimalDatatypeItemProvider(this);
+		}
+
+		return yDecimalDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTableDatatypeItemProvider yTableDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTableDatatypeAdapter() {
+		if (yTableDatatypeItemProvider == null) {
+			yTableDatatypeItemProvider = new YTableDatatypeItemProvider(this);
+		}
+
+		return yTableDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YCheckBoxDatatypeItemProvider yCheckBoxDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYCheckBoxDatatypeAdapter() {
+		if (yCheckBoxDatatypeItemProvider == null) {
+			yCheckBoxDatatypeItemProvider = new YCheckBoxDatatypeItemProvider(this);
+		}
+
+		return yCheckBoxDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YComboBoxDatatypeItemProvider yComboBoxDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYComboBoxDatatypeAdapter() {
+		if (yComboBoxDatatypeItemProvider == null) {
+			yComboBoxDatatypeItemProvider = new YComboBoxDatatypeItemProvider(this);
+		}
+
+		return yComboBoxDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YListDataTypeItemProvider yListDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYListDataTypeAdapter() {
+		if (yListDataTypeItemProvider == null) {
+			yListDataTypeItemProvider = new YListDataTypeItemProvider(this);
+		}
+
+		return yListDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YOptionsGroupDataTypeItemProvider yOptionsGroupDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYOptionsGroupDataTypeAdapter() {
+		if (yOptionsGroupDataTypeItemProvider == null) {
+			yOptionsGroupDataTypeItemProvider = new YOptionsGroupDataTypeItemProvider(this);
+		}
+
+		return yOptionsGroupDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBrowserDatatypeItemProvider yBrowserDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBrowserDatatypeAdapter() {
+		if (yBrowserDatatypeItemProvider == null) {
+			yBrowserDatatypeItemProvider = new YBrowserDatatypeItemProvider(this);
+		}
+
+		return yBrowserDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDateTimeDatatypeItemProvider yDateTimeDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDateTimeDatatypeAdapter() {
+		if (yDateTimeDatatypeItemProvider == null) {
+			yDateTimeDatatypeItemProvider = new YDateTimeDatatypeItemProvider(this);
+		}
+
+		return yDateTimeDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTreeDatatypeItemProvider yTreeDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTreeDatatypeAdapter() {
+		if (yTreeDatatypeItemProvider == null) {
+			yTreeDatatypeItemProvider = new YTreeDatatypeItemProvider(this);
+		}
+
+		return yTreeDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YProgressBarDatatypeItemProvider yProgressBarDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYProgressBarDatatypeAdapter() {
+		if (yProgressBarDatatypeItemProvider == null) {
+			yProgressBarDatatypeItemProvider = new YProgressBarDatatypeItemProvider(this);
+		}
+
+		return yProgressBarDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTabSheetDatatypeItemProvider yTabSheetDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTabSheetDatatypeAdapter() {
+		if (yTabSheetDatatypeItemProvider == null) {
+			yTabSheetDatatypeItemProvider = new YTabSheetDatatypeItemProvider(this);
+		}
+
+		return yTabSheetDatatypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YMasterDetailDatatypeItemProvider yMasterDetailDatatypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYMasterDetailDatatypeAdapter() {
+		if (yMasterDetailDatatypeItemProvider == null) {
+			yMasterDetailDatatypeItemProvider = new YMasterDetailDatatypeItemProvider(this);
+		}
+
+		return yMasterDetailDatatypeItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<IChildCreationExtender> getChildCreationExtenders() {
+		return childCreationExtenderManager.getChildCreationExtenders();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+		return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return childCreationExtenderManager;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (yTextDatatypeItemProvider != null) yTextDatatypeItemProvider.dispose();
+		if (yTextAreaDatatypeItemProvider != null) yTextAreaDatatypeItemProvider.dispose();
+		if (yNumericDatatypeItemProvider != null) yNumericDatatypeItemProvider.dispose();
+		if (yDecimalDatatypeItemProvider != null) yDecimalDatatypeItemProvider.dispose();
+		if (yTableDatatypeItemProvider != null) yTableDatatypeItemProvider.dispose();
+		if (yCheckBoxDatatypeItemProvider != null) yCheckBoxDatatypeItemProvider.dispose();
+		if (yComboBoxDatatypeItemProvider != null) yComboBoxDatatypeItemProvider.dispose();
+		if (yListDataTypeItemProvider != null) yListDataTypeItemProvider.dispose();
+		if (yOptionsGroupDataTypeItemProvider != null) yOptionsGroupDataTypeItemProvider.dispose();
+		if (yBrowserDatatypeItemProvider != null) yBrowserDatatypeItemProvider.dispose();
+		if (yDateTimeDatatypeItemProvider != null) yDateTimeDatatypeItemProvider.dispose();
+		if (yTreeDatatypeItemProvider != null) yTreeDatatypeItemProvider.dispose();
+		if (yProgressBarDatatypeItemProvider != null) yProgressBarDatatypeItemProvider.dispose();
+		if (yTabSheetDatatypeItemProvider != null) yTabSheetDatatypeItemProvider.dispose();
+		if (yMasterDetailDatatypeItemProvider != null) yMasterDetailDatatypeItemProvider.dispose();
+	}
+
+	/**
+	 * A child creation extender for the {@link CoreModelPackage}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class CoreModelChildCreationExtender implements IChildCreationExtender {
+		/**
+		 * The switch for creating child descriptors specific to each extended class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected static class CreationSwitch extends CoreModelSwitch<Object> {
+			/**
+			 * The child descriptors being populated.
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			protected List<Object> newChildDescriptors;
+
+			/**
+			 * The domain in which to create the children.
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			protected EditingDomain editingDomain;
+
+			/**
+			 * Creates the a switch for populating child descriptors in the given domain.
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			CreationSwitch(List<Object> newChildDescriptors, EditingDomain editingDomain) {
+				this.newChildDescriptors = newChildDescriptors;
+				this.editingDomain = editingDomain;
+			}
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			@Override
+			public Object caseYEmbeddable(YEmbeddable object) {
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+						 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+				return null;
+			}
+ 
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			protected CommandParameter createChildParameter(Object feature, Object child) {
+				return new CommandParameter(null, feature, child);
+			}
+
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+			ArrayList<Object> result = new ArrayList<Object>();
+			new CreationSwitch(result, editingDomain).doSwitch((EObject)object);
+			return result;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ResourceLocator getResourceLocator() {
+			return ExtensionEditPlugin.INSTANCE;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/ExtensionEditPlugin.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/ExtensionEditPlugin.java
new file mode 100644
index 0000000..ad24a02
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/ExtensionEditPlugin.java
@@ -0,0 +1,103 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+
+/**
+ * This is the central singleton for the Extension edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ExtensionEditPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final ExtensionEditPlugin INSTANCE = new ExtensionEditPlugin();
+
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtensionEditPlugin() {
+		super
+		  (new ResourceLocator [] {
+		     ECViewCoreEditPlugin.INSTANCE,
+		   });
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipsePlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YBrowserDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YBrowserDatatypeItemProvider.java
new file mode 100644
index 0000000..5541153
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YBrowserDatatypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBrowserDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBrowserDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YBrowserDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBrowserDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBrowserDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBrowserDatatype_type") :
+			getString("_UI_YBrowserDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBrowserDatatype.class)) {
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__ID:
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__NAME:
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YCheckBoxDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YCheckBoxDatatypeItemProvider.java
new file mode 100644
index 0000000..a682d5a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YCheckBoxDatatypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YCheckBoxDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YCheckBoxDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YCheckBoxDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YCheckBoxDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YCheckBoxDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YCheckBoxDatatype_type") :
+			getString("_UI_YCheckBoxDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YCheckBoxDatatype.class)) {
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__ID:
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__NAME:
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YComboBoxDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YComboBoxDatatypeItemProvider.java
new file mode 100644
index 0000000..39d7712
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YComboBoxDatatypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YComboBoxDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YComboBoxDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YComboBoxDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YComboBoxDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YComboBoxDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YComboBoxDatatype_type") :
+			getString("_UI_YComboBoxDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YComboBoxDatatype.class)) {
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__ID:
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__NAME:
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YDateTimeDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YDateTimeDatatypeItemProvider.java
new file mode 100644
index 0000000..6c48eb5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YDateTimeDatatypeItemProvider.java
@@ -0,0 +1,358 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YDateTimeDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDateTimeDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+			addFormatPropertyDescriptor(object);
+			addResolutionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Format feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFormatPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDateTimeDatatype_format_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDateTimeDatatype_format_feature", "_UI_YDateTimeDatatype_type"),
+				 ExtDatatypesPackage.Literals.YDATE_TIME_DATATYPE__FORMAT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Resolution feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addResolutionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDateTimeDatatype_resolution_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDateTimeDatatype_resolution_feature", "_UI_YDateTimeDatatype_type"),
+				 ExtDatatypesPackage.Literals.YDATE_TIME_DATATYPE__RESOLUTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YDateTimeDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YDateTimeDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YDateTimeDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YDateTimeDatatype_type") :
+			getString("_UI_YDateTimeDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDateTimeDatatype.class)) {
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__ID:
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__NAME:
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__DESCRIPTION:
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__FORMAT:
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__RESOLUTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YDecimalDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YDecimalDatatypeItemProvider.java
new file mode 100644
index 0000000..742e853
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YDecimalDatatypeItemProvider.java
@@ -0,0 +1,143 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YDecimalDatatypeItemProvider extends YNumericDatatypeItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDecimalDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addPrecisionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Precision feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPrecisionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDecimalDatatype_precision_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDecimalDatatype_precision_feature", "_UI_YDecimalDatatype_type"),
+				 ExtDatatypesPackage.Literals.YDECIMAL_DATATYPE__PRECISION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YDecimalDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YDecimalDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YDecimalDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YDecimalDatatype_type") :
+			getString("_UI_YDecimalDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDecimalDatatype.class)) {
+			case ExtDatatypesPackage.YDECIMAL_DATATYPE__PRECISION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YListDataTypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YListDataTypeItemProvider.java
new file mode 100644
index 0000000..95fde85
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YListDataTypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YListDataTypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YListDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YListDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YListDataType"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YListDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YListDataType_type") :
+			getString("_UI_YListDataType_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YListDataType.class)) {
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__TAGS:
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__ID:
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__NAME:
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YMasterDetailDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YMasterDetailDatatypeItemProvider.java
new file mode 100644
index 0000000..678dbfb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YMasterDetailDatatypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YMasterDetailDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YMasterDetailDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YMasterDetailDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YMasterDetailDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YMasterDetailDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YMasterDetailDatatype_type") :
+			getString("_UI_YMasterDetailDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YMasterDetailDatatype.class)) {
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__ID:
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__NAME:
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YNumericDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YNumericDatatypeItemProvider.java
new file mode 100644
index 0000000..edbe84e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YNumericDatatypeItemProvider.java
@@ -0,0 +1,432 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YNumericDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YNumericDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+			addErrorCodePropertyDescriptor(object);
+			addDefaultErrorMessagePropertyDescriptor(object);
+			addRegExpressionPropertyDescriptor(object);
+			addGroupingPropertyDescriptor(object);
+			addMarkNegativePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Error Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addErrorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_errorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_errorCode_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__ERROR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Error Message feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultErrorMessagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_defaultErrorMessage_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_defaultErrorMessage_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Reg Expression feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRegExpressionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YRegexpValidationConfig_regExpression_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YRegexpValidationConfig_regExpression_feature", "_UI_YRegexpValidationConfig_type"),
+				 ValidationPackage.Literals.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Grouping feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGroupingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericDatatype_grouping_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericDatatype_grouping_feature", "_UI_YNumericDatatype_type"),
+				 ExtDatatypesPackage.Literals.YNUMERIC_DATATYPE__GROUPING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Mark Negative feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMarkNegativePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericDatatype_markNegative_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericDatatype_markNegative_feature", "_UI_YNumericDatatype_type"),
+				 ExtDatatypesPackage.Literals.YNUMERIC_DATATYPE__MARK_NEGATIVE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YNumericDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YNumericDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YNumericDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YNumericDatatype_type") :
+			getString("_UI_YNumericDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YNumericDatatype.class)) {
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ID:
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__NAME:
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DESCRIPTION:
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ERROR_CODE:
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE:
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__REG_EXPRESSION:
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__GROUPING:
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__MARK_NEGATIVE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YOptionsGroupDataTypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YOptionsGroupDataTypeItemProvider.java
new file mode 100644
index 0000000..d9dd22b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YOptionsGroupDataTypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YOptionsGroupDataTypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YOptionsGroupDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YOptionsGroupDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YOptionsGroupDataType"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YOptionsGroupDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YOptionsGroupDataType_type") :
+			getString("_UI_YOptionsGroupDataType_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YOptionsGroupDataType.class)) {
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__TAGS:
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__ID:
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__NAME:
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YProgressBarDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YProgressBarDatatypeItemProvider.java
new file mode 100644
index 0000000..2c89027
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YProgressBarDatatypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YProgressBarDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YProgressBarDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YProgressBarDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YProgressBarDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YProgressBarDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YProgressBarDatatype_type") :
+			getString("_UI_YProgressBarDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YProgressBarDatatype.class)) {
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__ID:
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__NAME:
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTabSheetDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTabSheetDatatypeItemProvider.java
new file mode 100644
index 0000000..0993446
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTabSheetDatatypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTabSheetDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTabSheetDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YTabSheetDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTabSheetDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTabSheetDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTabSheetDatatype_type") :
+			getString("_UI_YTabSheetDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTabSheetDatatype.class)) {
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__ID:
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__NAME:
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTableDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTableDatatypeItemProvider.java
new file mode 100644
index 0000000..4585e7c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTableDatatypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTableDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTableDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YTableDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTableDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTableDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTableDatatype_type") :
+			getString("_UI_YTableDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTableDatatype.class)) {
+			case ExtDatatypesPackage.YTABLE_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YTABLE_DATATYPE__ID:
+			case ExtDatatypesPackage.YTABLE_DATATYPE__NAME:
+			case ExtDatatypesPackage.YTABLE_DATATYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTextAreaDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTextAreaDatatypeItemProvider.java
new file mode 100644
index 0000000..d961bf2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTextAreaDatatypeItemProvider.java
@@ -0,0 +1,432 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTextAreaDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTextAreaDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+			addErrorCodePropertyDescriptor(object);
+			addDefaultErrorMessagePropertyDescriptor(object);
+			addMinLengthPropertyDescriptor(object);
+			addMaxLengthPropertyDescriptor(object);
+			addRegExpressionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Error Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addErrorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_errorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_errorCode_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__ERROR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Error Message feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultErrorMessagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_defaultErrorMessage_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_defaultErrorMessage_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Min Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMinLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMinLengthValidationConfig_minLength_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMinLengthValidationConfig_minLength_feature", "_UI_YMinLengthValidationConfig_type"),
+				 ValidationPackage.Literals.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Max Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMaxLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMaxLengthValidationConfig_maxLength_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMaxLengthValidationConfig_maxLength_feature", "_UI_YMaxLengthValidationConfig_type"),
+				 ValidationPackage.Literals.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Reg Expression feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRegExpressionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YRegexpValidationConfig_regExpression_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YRegexpValidationConfig_regExpression_feature", "_UI_YRegexpValidationConfig_type"),
+				 ValidationPackage.Literals.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YTextAreaDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTextAreaDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTextAreaDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTextAreaDatatype_type") :
+			getString("_UI_YTextAreaDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTextAreaDatatype.class)) {
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ID:
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__NAME:
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DESCRIPTION:
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ERROR_CODE:
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DEFAULT_ERROR_MESSAGE:
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MIN_LENGTH:
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MAX_LENGTH:
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__REG_EXPRESSION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTextDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTextDatatypeItemProvider.java
new file mode 100644
index 0000000..3eb461a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTextDatatypeItemProvider.java
@@ -0,0 +1,432 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTextDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTextDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+			addErrorCodePropertyDescriptor(object);
+			addDefaultErrorMessagePropertyDescriptor(object);
+			addMaxLengthPropertyDescriptor(object);
+			addMinLengthPropertyDescriptor(object);
+			addRegExpressionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Error Code feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addErrorCodePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_errorCode_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_errorCode_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__ERROR_CODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Error Message feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultErrorMessagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValidationConfig_defaultErrorMessage_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValidationConfig_defaultErrorMessage_feature", "_UI_YValidationConfig_type"),
+				 ValidationPackage.Literals.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Max Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMaxLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMaxLengthValidationConfig_maxLength_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMaxLengthValidationConfig_maxLength_feature", "_UI_YMaxLengthValidationConfig_type"),
+				 ValidationPackage.Literals.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Min Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMinLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMinLengthValidationConfig_minLength_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMinLengthValidationConfig_minLength_feature", "_UI_YMinLengthValidationConfig_type"),
+				 ValidationPackage.Literals.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Reg Expression feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRegExpressionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YRegexpValidationConfig_regExpression_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YRegexpValidationConfig_regExpression_feature", "_UI_YRegexpValidationConfig_type"),
+				 ValidationPackage.Literals.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YTextDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTextDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTextDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTextDatatype_type") :
+			getString("_UI_YTextDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTextDatatype.class)) {
+			case ExtDatatypesPackage.YTEXT_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ID:
+			case ExtDatatypesPackage.YTEXT_DATATYPE__NAME:
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DESCRIPTION:
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ERROR_CODE:
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DEFAULT_ERROR_MESSAGE:
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MAX_LENGTH:
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MIN_LENGTH:
+			case ExtDatatypesPackage.YTEXT_DATATYPE__REG_EXPRESSION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTreeDatatypeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTreeDatatypeItemProvider.java
new file mode 100644
index 0000000..0eb4541
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/provider/YTreeDatatypeItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTreeDatatypeItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTreeDatatypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addValidatorsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDtBase_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDtBase_description_feature", "_UI_YDtBase_type"),
+				 DatatypesPackage.Literals.YDT_BASE__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Validators feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValidatorsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDatatype_validators_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDatatype_validators_feature", "_UI_YDatatype_type"),
+				 DatatypesPackage.Literals.YDATATYPE__VALIDATORS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YTreeDatatype.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTreeDatatype"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTreeDatatype)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTreeDatatype_type") :
+			getString("_UI_YTreeDatatype_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTreeDatatype.class)) {
+			case ExtDatatypesPackage.YTREE_DATATYPE__TAGS:
+			case ExtDatatypesPackage.YTREE_DATATYPE__ID:
+			case ExtDatatypesPackage.YTREE_DATATYPE__NAME:
+			case ExtDatatypesPackage.YTREE_DATATYPE__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/ExtensionModelItemProviderAdapterFactory.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/ExtensionModelItemProviderAdapterFactory.java
new file mode 100644
index 0000000..163a5a0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/ExtensionModelItemProviderAdapterFactory.java
@@ -0,0 +1,2221 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import java.util.List;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.command.CommandParameter;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
+import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.util.CoreModelSwitch;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.provider.ExtensionEditPlugin;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.util.ExtensionModelAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtensionModelItemProviderAdapterFactory extends ExtensionModelAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This helps manage the child creation extenders.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(ExtensionEditPlugin.INSTANCE, ExtensionModelPackage.eNS_URI);
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtensionModelItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YGridLayoutItemProvider yGridLayoutItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYGridLayoutAdapter() {
+		if (yGridLayoutItemProvider == null) {
+			yGridLayoutItemProvider = new YGridLayoutItemProvider(this);
+		}
+
+		return yGridLayoutItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YGridLayoutCellStyleItemProvider yGridLayoutCellStyleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYGridLayoutCellStyleAdapter() {
+		if (yGridLayoutCellStyleItemProvider == null) {
+			yGridLayoutCellStyleItemProvider = new YGridLayoutCellStyleItemProvider(this);
+		}
+
+		return yGridLayoutCellStyleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YHorizontalLayoutItemProvider yHorizontalLayoutItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYHorizontalLayoutAdapter() {
+		if (yHorizontalLayoutItemProvider == null) {
+			yHorizontalLayoutItemProvider = new YHorizontalLayoutItemProvider(this);
+		}
+
+		return yHorizontalLayoutItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YHorizontalLayoutCellStyleItemProvider yHorizontalLayoutCellStyleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYHorizontalLayoutCellStyleAdapter() {
+		if (yHorizontalLayoutCellStyleItemProvider == null) {
+			yHorizontalLayoutCellStyleItemProvider = new YHorizontalLayoutCellStyleItemProvider(this);
+		}
+
+		return yHorizontalLayoutCellStyleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YVerticalLayoutItemProvider yVerticalLayoutItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYVerticalLayoutAdapter() {
+		if (yVerticalLayoutItemProvider == null) {
+			yVerticalLayoutItemProvider = new YVerticalLayoutItemProvider(this);
+		}
+
+		return yVerticalLayoutItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YVerticalLayoutCellStyleItemProvider yVerticalLayoutCellStyleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYVerticalLayoutCellStyleAdapter() {
+		if (yVerticalLayoutCellStyleItemProvider == null) {
+			yVerticalLayoutCellStyleItemProvider = new YVerticalLayoutCellStyleItemProvider(this);
+		}
+
+		return yVerticalLayoutCellStyleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSpanInfoItemProvider ySpanInfoItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYSpanInfoAdapter() {
+		if (ySpanInfoItemProvider == null) {
+			ySpanInfoItemProvider = new YSpanInfoItemProvider(this);
+		}
+
+		return ySpanInfoItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTableItemProvider yTableItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTableAdapter() {
+		if (yTableItemProvider == null) {
+			yTableItemProvider = new YTableItemProvider(this);
+		}
+
+		return yTableItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YColumnItemProvider yColumnItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYColumnAdapter() {
+		if (yColumnItemProvider == null) {
+			yColumnItemProvider = new YColumnItemProvider(this);
+		}
+
+		return yColumnItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTreeItemProvider yTreeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTreeAdapter() {
+		if (yTreeItemProvider == null) {
+			yTreeItemProvider = new YTreeItemProvider(this);
+		}
+
+		return yTreeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YOptionsGroupItemProvider yOptionsGroupItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYOptionsGroupAdapter() {
+		if (yOptionsGroupItemProvider == null) {
+			yOptionsGroupItemProvider = new YOptionsGroupItemProvider(this);
+		}
+
+		return yOptionsGroupItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YList} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YListItemProvider yListItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YList}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYListAdapter() {
+		if (yListItemProvider == null) {
+			yListItemProvider = new YListItemProvider(this);
+		}
+
+		return yListItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YLabelItemProvider yLabelItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYLabelAdapter() {
+		if (yLabelItemProvider == null) {
+			yLabelItemProvider = new YLabelItemProvider(this);
+		}
+
+		return yLabelItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YImageItemProvider yImageItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYImageAdapter() {
+		if (yImageItemProvider == null) {
+			yImageItemProvider = new YImageItemProvider(this);
+		}
+
+		return yImageItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTextFieldItemProvider yTextFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTextFieldAdapter() {
+		if (yTextFieldItemProvider == null) {
+			yTextFieldItemProvider = new YTextFieldItemProvider(this);
+		}
+
+		return yTextFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBeanReferenceFieldItemProvider yBeanReferenceFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBeanReferenceFieldAdapter() {
+		if (yBeanReferenceFieldItemProvider == null) {
+			yBeanReferenceFieldItemProvider = new YBeanReferenceFieldItemProvider(this);
+		}
+
+		return yBeanReferenceFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTextAreaItemProvider yTextAreaItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTextAreaAdapter() {
+		if (yTextAreaItemProvider == null) {
+			yTextAreaItemProvider = new YTextAreaItemProvider(this);
+		}
+
+		return yTextAreaItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YCheckBoxItemProvider yCheckBoxItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYCheckBoxAdapter() {
+		if (yCheckBoxItemProvider == null) {
+			yCheckBoxItemProvider = new YCheckBoxItemProvider(this);
+		}
+
+		return yCheckBoxItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBrowserItemProvider yBrowserItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBrowserAdapter() {
+		if (yBrowserItemProvider == null) {
+			yBrowserItemProvider = new YBrowserItemProvider(this);
+		}
+
+		return yBrowserItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDateTimeItemProvider yDateTimeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDateTimeAdapter() {
+		if (yDateTimeItemProvider == null) {
+			yDateTimeItemProvider = new YDateTimeItemProvider(this);
+		}
+
+		return yDateTimeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDecimalFieldItemProvider yDecimalFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYDecimalFieldAdapter() {
+		if (yDecimalFieldItemProvider == null) {
+			yDecimalFieldItemProvider = new YDecimalFieldItemProvider(this);
+		}
+
+		return yDecimalFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YNumericFieldItemProvider yNumericFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYNumericFieldAdapter() {
+		if (yNumericFieldItemProvider == null) {
+			yNumericFieldItemProvider = new YNumericFieldItemProvider(this);
+		}
+
+		return yNumericFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YComboBoxItemProvider yComboBoxItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYComboBoxAdapter() {
+		if (yComboBoxItemProvider == null) {
+			yComboBoxItemProvider = new YComboBoxItemProvider(this);
+		}
+
+		return yComboBoxItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YButtonItemProvider yButtonItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYButtonAdapter() {
+		if (yButtonItemProvider == null) {
+			yButtonItemProvider = new YButtonItemProvider(this);
+		}
+
+		return yButtonItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSliderItemProvider ySliderItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYSliderAdapter() {
+		if (ySliderItemProvider == null) {
+			ySliderItemProvider = new YSliderItemProvider(this);
+		}
+
+		return ySliderItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YToggleButtonItemProvider yToggleButtonItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYToggleButtonAdapter() {
+		if (yToggleButtonItemProvider == null) {
+			yToggleButtonItemProvider = new YToggleButtonItemProvider(this);
+		}
+
+		return yToggleButtonItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YProgressBarItemProvider yProgressBarItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYProgressBarAdapter() {
+		if (yProgressBarItemProvider == null) {
+			yProgressBarItemProvider = new YProgressBarItemProvider(this);
+		}
+
+		return yProgressBarItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTabSheetItemProvider yTabSheetItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTabSheetAdapter() {
+		if (yTabSheetItemProvider == null) {
+			yTabSheetItemProvider = new YTabSheetItemProvider(this);
+		}
+
+		return yTabSheetItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTabItemProvider yTabItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTabAdapter() {
+		if (yTabItemProvider == null) {
+			yTabItemProvider = new YTabItemProvider(this);
+		}
+
+		return yTabItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YMasterDetailItemProvider yMasterDetailItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYMasterDetailAdapter() {
+		if (yMasterDetailItemProvider == null) {
+			yMasterDetailItemProvider = new YMasterDetailItemProvider(this);
+		}
+
+		return yMasterDetailItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YFormLayoutItemProvider yFormLayoutItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYFormLayoutAdapter() {
+		if (yFormLayoutItemProvider == null) {
+			yFormLayoutItemProvider = new YFormLayoutItemProvider(this);
+		}
+
+		return yFormLayoutItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YFormLayoutCellStyleItemProvider yFormLayoutCellStyleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYFormLayoutCellStyleAdapter() {
+		if (yFormLayoutCellStyleItemProvider == null) {
+			yFormLayoutCellStyleItemProvider = new YFormLayoutCellStyleItemProvider(this);
+		}
+
+		return yFormLayoutCellStyleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTextSearchFieldItemProvider yTextSearchFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYTextSearchFieldAdapter() {
+		if (yTextSearchFieldItemProvider == null) {
+			yTextSearchFieldItemProvider = new YTextSearchFieldItemProvider(this);
+		}
+
+		return yTextSearchFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBooleanSearchFieldItemProvider yBooleanSearchFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBooleanSearchFieldAdapter() {
+		if (yBooleanSearchFieldItemProvider == null) {
+			yBooleanSearchFieldItemProvider = new YBooleanSearchFieldItemProvider(this);
+		}
+
+		return yBooleanSearchFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YNumericSearchFieldItemProvider yNumericSearchFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYNumericSearchFieldAdapter() {
+		if (yNumericSearchFieldItemProvider == null) {
+			yNumericSearchFieldItemProvider = new YNumericSearchFieldItemProvider(this);
+		}
+
+		return yNumericSearchFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YReferenceSearchFieldItemProvider yReferenceSearchFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYReferenceSearchFieldAdapter() {
+		if (yReferenceSearchFieldItemProvider == null) {
+			yReferenceSearchFieldItemProvider = new YReferenceSearchFieldItemProvider(this);
+		}
+
+		return yReferenceSearchFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YPanelItemProvider yPanelItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYPanelAdapter() {
+		if (yPanelItemProvider == null) {
+			yPanelItemProvider = new YPanelItemProvider(this);
+		}
+
+		return yPanelItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSplitPanelItemProvider ySplitPanelItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYSplitPanelAdapter() {
+		if (ySplitPanelItemProvider == null) {
+			ySplitPanelItemProvider = new YSplitPanelItemProvider(this);
+		}
+
+		return ySplitPanelItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSearchPanelItemProvider ySearchPanelItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYSearchPanelAdapter() {
+		if (ySearchPanelItemProvider == null) {
+			ySearchPanelItemProvider = new YSearchPanelItemProvider(this);
+		}
+
+		return ySearchPanelItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEnumOptionsGroupItemProvider yEnumOptionsGroupItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYEnumOptionsGroupAdapter() {
+		if (yEnumOptionsGroupItemProvider == null) {
+			yEnumOptionsGroupItemProvider = new YEnumOptionsGroupItemProvider(this);
+		}
+
+		return yEnumOptionsGroupItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEnumListItemProvider yEnumListItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYEnumListAdapter() {
+		if (yEnumListItemProvider == null) {
+			yEnumListItemProvider = new YEnumListItemProvider(this);
+		}
+
+		return yEnumListItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YEnumComboBoxItemProvider yEnumComboBoxItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYEnumComboBoxAdapter() {
+		if (yEnumComboBoxItemProvider == null) {
+			yEnumComboBoxItemProvider = new YEnumComboBoxItemProvider(this);
+		}
+
+		return yEnumComboBoxItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YAddToTableCommandItemProvider yAddToTableCommandItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYAddToTableCommandAdapter() {
+		if (yAddToTableCommandItemProvider == null) {
+			yAddToTableCommandItemProvider = new YAddToTableCommandItemProvider(this);
+		}
+
+		return yAddToTableCommandItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YRemoveFromTableCommandItemProvider yRemoveFromTableCommandItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYRemoveFromTableCommandAdapter() {
+		if (yRemoveFromTableCommandItemProvider == null) {
+			yRemoveFromTableCommandItemProvider = new YRemoveFromTableCommandItemProvider(this);
+		}
+
+		return yRemoveFromTableCommandItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBrowserStreamInputItemProvider yBrowserStreamInputItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYBrowserStreamInputAdapter() {
+		if (yBrowserStreamInputItemProvider == null) {
+			yBrowserStreamInputItemProvider = new YBrowserStreamInputItemProvider(this);
+		}
+
+		return yBrowserStreamInputItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSetNewBeanInstanceCommandItemProvider ySetNewBeanInstanceCommandItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYSetNewBeanInstanceCommandAdapter() {
+		if (ySetNewBeanInstanceCommandItemProvider == null) {
+			ySetNewBeanInstanceCommandItemProvider = new YSetNewBeanInstanceCommandItemProvider(this);
+		}
+
+		return ySetNewBeanInstanceCommandItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YCssLayoutItemProvider yCssLayoutItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYCssLayoutAdapter() {
+		if (yCssLayoutItemProvider == null) {
+			yCssLayoutItemProvider = new YCssLayoutItemProvider(this);
+		}
+
+		return yCssLayoutItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YCssLayoutCellStyleItemProvider yCssLayoutCellStyleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYCssLayoutCellStyleAdapter() {
+		if (yCssLayoutCellStyleItemProvider == null) {
+			yCssLayoutCellStyleItemProvider = new YCssLayoutCellStyleItemProvider(this);
+		}
+
+		return yCssLayoutCellStyleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YFilterItemProvider yFilterItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYFilterAdapter() {
+		if (yFilterItemProvider == null) {
+			yFilterItemProvider = new YFilterItemProvider(this);
+		}
+
+		return yFilterItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YAbsoluteLayoutItemProvider yAbsoluteLayoutItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYAbsoluteLayoutAdapter() {
+		if (yAbsoluteLayoutItemProvider == null) {
+			yAbsoluteLayoutItemProvider = new YAbsoluteLayoutItemProvider(this);
+		}
+
+		return yAbsoluteLayoutItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YAbsoluteLayoutCellStyleItemProvider yAbsoluteLayoutCellStyleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYAbsoluteLayoutCellStyleAdapter() {
+		if (yAbsoluteLayoutCellStyleItemProvider == null) {
+			yAbsoluteLayoutCellStyleItemProvider = new YAbsoluteLayoutCellStyleItemProvider(this);
+		}
+
+		return yAbsoluteLayoutCellStyleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSuggestTextFieldItemProvider ySuggestTextFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYSuggestTextFieldAdapter() {
+		if (ySuggestTextFieldItemProvider == null) {
+			ySuggestTextFieldItemProvider = new YSuggestTextFieldItemProvider(this);
+		}
+
+		return ySuggestTextFieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YPasswordFieldItemProvider yPasswordFieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createYPasswordFieldAdapter() {
+		if (yPasswordFieldItemProvider == null) {
+			yPasswordFieldItemProvider = new YPasswordFieldItemProvider(this);
+		}
+
+		return yPasswordFieldItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<IChildCreationExtender> getChildCreationExtenders() {
+		return childCreationExtenderManager.getChildCreationExtenders();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+		return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return childCreationExtenderManager;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (yGridLayoutItemProvider != null) yGridLayoutItemProvider.dispose();
+		if (yGridLayoutCellStyleItemProvider != null) yGridLayoutCellStyleItemProvider.dispose();
+		if (yHorizontalLayoutItemProvider != null) yHorizontalLayoutItemProvider.dispose();
+		if (yHorizontalLayoutCellStyleItemProvider != null) yHorizontalLayoutCellStyleItemProvider.dispose();
+		if (yVerticalLayoutItemProvider != null) yVerticalLayoutItemProvider.dispose();
+		if (yVerticalLayoutCellStyleItemProvider != null) yVerticalLayoutCellStyleItemProvider.dispose();
+		if (ySpanInfoItemProvider != null) ySpanInfoItemProvider.dispose();
+		if (yTableItemProvider != null) yTableItemProvider.dispose();
+		if (yColumnItemProvider != null) yColumnItemProvider.dispose();
+		if (yTreeItemProvider != null) yTreeItemProvider.dispose();
+		if (yOptionsGroupItemProvider != null) yOptionsGroupItemProvider.dispose();
+		if (yListItemProvider != null) yListItemProvider.dispose();
+		if (yLabelItemProvider != null) yLabelItemProvider.dispose();
+		if (yImageItemProvider != null) yImageItemProvider.dispose();
+		if (yTextFieldItemProvider != null) yTextFieldItemProvider.dispose();
+		if (yBeanReferenceFieldItemProvider != null) yBeanReferenceFieldItemProvider.dispose();
+		if (yTextAreaItemProvider != null) yTextAreaItemProvider.dispose();
+		if (yCheckBoxItemProvider != null) yCheckBoxItemProvider.dispose();
+		if (yBrowserItemProvider != null) yBrowserItemProvider.dispose();
+		if (yDateTimeItemProvider != null) yDateTimeItemProvider.dispose();
+		if (yDecimalFieldItemProvider != null) yDecimalFieldItemProvider.dispose();
+		if (yNumericFieldItemProvider != null) yNumericFieldItemProvider.dispose();
+		if (yComboBoxItemProvider != null) yComboBoxItemProvider.dispose();
+		if (yButtonItemProvider != null) yButtonItemProvider.dispose();
+		if (ySliderItemProvider != null) ySliderItemProvider.dispose();
+		if (yToggleButtonItemProvider != null) yToggleButtonItemProvider.dispose();
+		if (yProgressBarItemProvider != null) yProgressBarItemProvider.dispose();
+		if (yTabSheetItemProvider != null) yTabSheetItemProvider.dispose();
+		if (yTabItemProvider != null) yTabItemProvider.dispose();
+		if (yMasterDetailItemProvider != null) yMasterDetailItemProvider.dispose();
+		if (yFormLayoutItemProvider != null) yFormLayoutItemProvider.dispose();
+		if (yFormLayoutCellStyleItemProvider != null) yFormLayoutCellStyleItemProvider.dispose();
+		if (yTextSearchFieldItemProvider != null) yTextSearchFieldItemProvider.dispose();
+		if (yBooleanSearchFieldItemProvider != null) yBooleanSearchFieldItemProvider.dispose();
+		if (yNumericSearchFieldItemProvider != null) yNumericSearchFieldItemProvider.dispose();
+		if (yReferenceSearchFieldItemProvider != null) yReferenceSearchFieldItemProvider.dispose();
+		if (yPanelItemProvider != null) yPanelItemProvider.dispose();
+		if (ySplitPanelItemProvider != null) ySplitPanelItemProvider.dispose();
+		if (ySearchPanelItemProvider != null) ySearchPanelItemProvider.dispose();
+		if (yEnumOptionsGroupItemProvider != null) yEnumOptionsGroupItemProvider.dispose();
+		if (yEnumListItemProvider != null) yEnumListItemProvider.dispose();
+		if (yEnumComboBoxItemProvider != null) yEnumComboBoxItemProvider.dispose();
+		if (yAddToTableCommandItemProvider != null) yAddToTableCommandItemProvider.dispose();
+		if (yRemoveFromTableCommandItemProvider != null) yRemoveFromTableCommandItemProvider.dispose();
+		if (yBrowserStreamInputItemProvider != null) yBrowserStreamInputItemProvider.dispose();
+		if (ySetNewBeanInstanceCommandItemProvider != null) ySetNewBeanInstanceCommandItemProvider.dispose();
+		if (yCssLayoutItemProvider != null) yCssLayoutItemProvider.dispose();
+		if (yCssLayoutCellStyleItemProvider != null) yCssLayoutCellStyleItemProvider.dispose();
+		if (yFilterItemProvider != null) yFilterItemProvider.dispose();
+		if (yAbsoluteLayoutItemProvider != null) yAbsoluteLayoutItemProvider.dispose();
+		if (yAbsoluteLayoutCellStyleItemProvider != null) yAbsoluteLayoutCellStyleItemProvider.dispose();
+		if (ySuggestTextFieldItemProvider != null) ySuggestTextFieldItemProvider.dispose();
+		if (yPasswordFieldItemProvider != null) yPasswordFieldItemProvider.dispose();
+	}
+
+	/**
+	 * A child creation extender for the {@link CoreModelPackage}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class CoreModelChildCreationExtender implements IChildCreationExtender {
+		/**
+		 * The switch for creating child descriptors specific to each extended class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected static class CreationSwitch extends CoreModelSwitch<Object> {
+			/**
+			 * The child descriptors being populated.
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			protected List<Object> newChildDescriptors;
+
+			/**
+			 * The domain in which to create the children.
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			protected EditingDomain editingDomain;
+
+			/**
+			 * Creates the a switch for populating child descriptors in the given domain.
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			CreationSwitch(List<Object> newChildDescriptors, EditingDomain editingDomain) {
+				this.newChildDescriptors = newChildDescriptors;
+				this.editingDomain = editingDomain;
+			}
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			@Override
+			public Object caseYLayout(YLayout object) {
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYList()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+						 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+				return null;
+			}
+ 
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			@Override
+			public Object caseYView(YView object) {
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYList()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YVIEW__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+				return null;
+			}
+ 
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			@Override
+			public Object caseYDialog(YDialog object) {
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYList()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YDIALOG__CONTENT,
+						 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+				return null;
+			}
+ 
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			@Override
+			public Object caseYCommandSet(YCommandSet object) {
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YCOMMAND_SET__COMMANDS,
+						 ExtensionModelFactory.eINSTANCE.createYAddToTableCommand()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YCOMMAND_SET__COMMANDS,
+						 ExtensionModelFactory.eINSTANCE.createYRemoveFromTableCommand()));
+
+				newChildDescriptors.add
+					(createChildParameter
+						(CoreModelPackage.Literals.YCOMMAND_SET__COMMANDS,
+						 ExtensionModelFactory.eINSTANCE.createYSetNewBeanInstanceCommand()));
+
+				return null;
+			}
+ 
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 * @generated
+			 */
+			protected CommandParameter createChildParameter(Object feature, Object child) {
+				return new CommandParameter(null, feature, child);
+			}
+
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+			ArrayList<Object> result = new ArrayList<Object>();
+			new CreationSwitch(result, editingDomain).doSwitch((EObject)object);
+			return result;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ResourceLocator getResourceLocator() {
+			return ExtensionEditPlugin.INSTANCE;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YAbsoluteLayoutCellStyleItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YAbsoluteLayoutCellStyleItemProvider.java
new file mode 100644
index 0000000..07bf678
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YAbsoluteLayoutCellStyleItemProvider.java
@@ -0,0 +1,283 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YAbsoluteLayoutCellStyleItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YAbsoluteLayoutCellStyleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTargetPropertyDescriptor(object);
+			addTopPropertyDescriptor(object);
+			addBottomPropertyDescriptor(object);
+			addLeftPropertyDescriptor(object);
+			addRightPropertyDescriptor(object);
+			addZIndexPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Target feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTargetPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAbsoluteLayoutCellStyle_target_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAbsoluteLayoutCellStyle_target_feature", "_UI_YAbsoluteLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT_CELL_STYLE__TARGET,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Top feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTopPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAbsoluteLayoutCellStyle_top_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAbsoluteLayoutCellStyle_top_feature", "_UI_YAbsoluteLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT_CELL_STYLE__TOP,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Bottom feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBottomPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAbsoluteLayoutCellStyle_bottom_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAbsoluteLayoutCellStyle_bottom_feature", "_UI_YAbsoluteLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Left feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLeftPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAbsoluteLayoutCellStyle_left_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAbsoluteLayoutCellStyle_left_feature", "_UI_YAbsoluteLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT_CELL_STYLE__LEFT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Right feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRightPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAbsoluteLayoutCellStyle_right_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAbsoluteLayoutCellStyle_right_feature", "_UI_YAbsoluteLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the ZIndex feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addZIndexPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAbsoluteLayoutCellStyle_zIndex_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAbsoluteLayoutCellStyle_zIndex_feature", "_UI_YAbsoluteLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YAbsoluteLayoutCellStyle.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YAbsoluteLayoutCellStyle"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		YAbsoluteLayoutCellStyle yAbsoluteLayoutCellStyle = (YAbsoluteLayoutCellStyle)object;
+		return getString("_UI_YAbsoluteLayoutCellStyle_type") + " " + yAbsoluteLayoutCellStyle.getTop();
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YAbsoluteLayoutCellStyle.class)) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TOP:
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM:
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__LEFT:
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT:
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YAbsoluteLayoutItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YAbsoluteLayoutItemProvider.java
new file mode 100644
index 0000000..3b7fe20
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YAbsoluteLayoutItemProvider.java
@@ -0,0 +1,477 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YLayoutItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YAbsoluteLayoutItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YAbsoluteLayoutItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addChildResizeEnabledPropertyDescriptor(object);
+			addChildMoveEnabledPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Child Resize Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addChildResizeEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAbsoluteLayout_childResizeEnabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAbsoluteLayout_childResizeEnabled_feature", "_UI_YAbsoluteLayout_type"),
+				 ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Child Move Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addChildMoveEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAbsoluteLayout_childMoveEnabled_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAbsoluteLayout_childMoveEnabled_feature", "_UI_YAbsoluteLayout_type"),
+				 ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT__CELL_STYLES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YAbsoluteLayout.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YAbsoluteLayout.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YAbsoluteLayout)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YAbsoluteLayout_type") :
+			getString("_UI_YAbsoluteLayout_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YAbsoluteLayout.class)) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED:
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CELL_STYLES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT__CELL_STYLES,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayoutCellStyle()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YAddToTableCommandItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YAddToTableCommandItemProvider.java
new file mode 100644
index 0000000..9d35231
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YAddToTableCommandItemProvider.java
@@ -0,0 +1,302 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YAddToTableCommandItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YAddToTableCommandItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addTablePropertyDescriptor(object);
+			addTriggerPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Table feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAddToTableCommand_table_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAddToTableCommand_table_feature", "_UI_YAddToTableCommand_type"),
+				 ExtensionModelPackage.Literals.YADD_TO_TABLE_COMMAND__TABLE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Trigger feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTriggerPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YAddToTableCommand_trigger_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YAddToTableCommand_trigger_feature", "_UI_YAddToTableCommand_type"),
+				 ExtensionModelPackage.Literals.YADD_TO_TABLE_COMMAND__TRIGGER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YAddToTableCommand.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YAddToTableCommand"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YAddToTableCommand)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YAddToTableCommand_type") :
+			getString("_UI_YAddToTableCommand_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YAddToTableCommand.class)) {
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TAGS:
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__ID:
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__NAME:
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TRIGGER:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBeanReferenceFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBeanReferenceFieldItemProvider.java
new file mode 100644
index 0000000..2be6b25
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBeanReferenceFieldItemProvider.java
@@ -0,0 +1,550 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBeanReferenceFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBeanReferenceFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addUseBeanServicePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+			addInMemoryBeanProviderPropertyDescriptor(object);
+			addInMemoryBeanProviderQualifiedNamePropertyDescriptor(object);
+			addCaptionPropertyPathPropertyDescriptor(object);
+			addImagePropertyPathPropertyDescriptor(object);
+			addDescriptionPropertyPropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addReferenceSourceTypePropertyDescriptor(object);
+			addReferenceSourceTypeQualifiedNamePropertyDescriptor(object);
+			addReferenceSourceTypePropertyPropertyDescriptor(object);
+			addRequiredPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Use Bean Service feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUseBeanServicePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanServiceConsumer_useBeanService_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanServiceConsumer_useBeanService_feature", "_UI_YBeanServiceConsumer_type"),
+				 ExtensionModelPackage.Literals.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_datadescription_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_value_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_type_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_emfNsURI_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_typeQualifiedName_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the In Memory Bean Provider feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInMemoryBeanProviderPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_inMemoryBeanProvider_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_inMemoryBeanProvider_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the In Memory Bean Provider Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInMemoryBeanProviderQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_inMemoryBeanProviderQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_inMemoryBeanProviderQualifiedName_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Caption Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCaptionPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_captionPropertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_captionPropertyPath_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Image Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addImagePropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_imagePropertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_imagePropertyPath_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_descriptionProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_descriptionProperty_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_description_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Reference Source Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReferenceSourceTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_referenceSourceType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_referenceSourceType_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Reference Source Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReferenceSourceTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_referenceSourceTypeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_referenceSourceTypeQualifiedName_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Reference Source Type Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReferenceSourceTypePropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_referenceSourceTypeProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_referenceSourceTypeProperty_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Required feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRequiredPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanReferenceField_required_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanReferenceField_required_feature", "_UI_YBeanReferenceField_type"),
+				 ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD__REQUIRED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YBeanReferenceField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBeanReferenceField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBeanReferenceField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBeanReferenceField_type") :
+			getString("_UI_YBeanReferenceField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBeanReferenceField.class)) {
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__USE_BEAN_SERVICE:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__EMF_NS_URI:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY:
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REQUIRED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBooleanSearchFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBooleanSearchFieldItemProvider.java
new file mode 100644
index 0000000..96b767e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBooleanSearchFieldItemProvider.java
@@ -0,0 +1,238 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBooleanSearchFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBooleanSearchFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBooleanSearchField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBooleanSearchField_datadescription_feature", "_UI_YBooleanSearchField_type"),
+				 ExtensionModelPackage.Literals.YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBooleanSearchField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBooleanSearchField_value_feature", "_UI_YBooleanSearchField_type"),
+				 ExtensionModelPackage.Literals.YBOOLEAN_SEARCH_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBooleanSearchField_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBooleanSearchField_propertyPath_feature", "_UI_YBooleanSearchField_type"),
+				 ExtensionModelPackage.Literals.YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YBooleanSearchField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBooleanSearchField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBooleanSearchField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBooleanSearchField_type") :
+			getString("_UI_YBooleanSearchField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBooleanSearchField.class)) {
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE:
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBrowserItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBrowserItemProvider.java
new file mode 100644
index 0000000..fd4bcb5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBrowserItemProvider.java
@@ -0,0 +1,237 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBrowserItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBrowserItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBrowser_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBrowser_datatype_feature", "_UI_YBrowser_type"),
+				 ExtensionModelPackage.Literals.YBROWSER__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBrowser_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBrowser_datadescription_feature", "_UI_YBrowser_type"),
+				 ExtensionModelPackage.Literals.YBROWSER__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBrowser_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBrowser_value_feature", "_UI_YBrowser_type"),
+				 ExtensionModelPackage.Literals.YBROWSER__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YBrowser.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBrowser"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBrowser)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBrowser_type") :
+			getString("_UI_YBrowser_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBrowser.class)) {
+			case ExtensionModelPackage.YBROWSER__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBrowserStreamInputItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBrowserStreamInputItemProvider.java
new file mode 100644
index 0000000..ee14cb3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YBrowserStreamInputItemProvider.java
@@ -0,0 +1,214 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YBrowserStreamInputItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YBrowserStreamInputItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addFilenamePropertyDescriptor(object);
+			addInputStreamPropertyDescriptor(object);
+			addMimeTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Filename feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFilenamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBrowserStreamInput_filename_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBrowserStreamInput_filename_feature", "_UI_YBrowserStreamInput_type"),
+				 ExtensionModelPackage.Literals.YBROWSER_STREAM_INPUT__FILENAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Input Stream feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInputStreamPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBrowserStreamInput_inputStream_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBrowserStreamInput_inputStream_feature", "_UI_YBrowserStreamInput_type"),
+				 ExtensionModelPackage.Literals.YBROWSER_STREAM_INPUT__INPUT_STREAM,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Mime Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMimeTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBrowserStreamInput_mimeType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBrowserStreamInput_mimeType_feature", "_UI_YBrowserStreamInput_type"),
+				 ExtensionModelPackage.Literals.YBROWSER_STREAM_INPUT__MIME_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YBrowserStreamInput.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YBrowserStreamInput"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YBrowserStreamInput)object).getFilename();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YBrowserStreamInput_type") :
+			getString("_UI_YBrowserStreamInput_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YBrowserStreamInput.class)) {
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__FILENAME:
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__INPUT_STREAM:
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__MIME_TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YButtonItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YButtonItemProvider.java
new file mode 100644
index 0000000..ac67881
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YButtonItemProvider.java
@@ -0,0 +1,361 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YActionItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YButtonItemProvider extends YActionItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YButtonItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addInitialEditablePropertyDescriptor(object);
+			addEditablePropertyDescriptor(object);
+			addTabIndexPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addClickListenersPropertyDescriptor(object);
+			addLastClickTimePropertyDescriptor(object);
+			addImagePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Editable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitialEditablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEditable_initialEditable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEditable_initialEditable_feature", "_UI_YEditable_type"),
+				 CoreModelPackage.Literals.YEDITABLE__INITIAL_EDITABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Editable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEditablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEditable_editable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEditable_editable_feature", "_UI_YEditable_type"),
+				 CoreModelPackage.Literals.YEDITABLE__EDITABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tab Index feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTabIndexPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFocusable_tabIndex_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFocusable_tabIndex_feature", "_UI_YFocusable_type"),
+				 CoreModelPackage.Literals.YFOCUSABLE__TAB_INDEX,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YButton_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YButton_datadescription_feature", "_UI_YButton_type"),
+				 ExtensionModelPackage.Literals.YBUTTON__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Click Listeners feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addClickListenersPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YButton_clickListeners_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YButton_clickListeners_feature", "_UI_YButton_type"),
+				 ExtensionModelPackage.Literals.YBUTTON__CLICK_LISTENERS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Last Click Time feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLastClickTimePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YButton_lastClickTime_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YButton_lastClickTime_feature", "_UI_YButton_type"),
+				 ExtensionModelPackage.Literals.YBUTTON__LAST_CLICK_TIME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Image feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addImagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YButton_image_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YButton_image_feature", "_UI_YButton_type"),
+				 ExtensionModelPackage.Literals.YBUTTON__IMAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YButton.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YButton"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YButton)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YButton_type") :
+			getString("_UI_YButton_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YButton.class)) {
+			case ExtensionModelPackage.YBUTTON__INITIAL_EDITABLE:
+			case ExtensionModelPackage.YBUTTON__EDITABLE:
+			case ExtensionModelPackage.YBUTTON__TAB_INDEX:
+			case ExtensionModelPackage.YBUTTON__CLICK_LISTENERS:
+			case ExtensionModelPackage.YBUTTON__LAST_CLICK_TIME:
+			case ExtensionModelPackage.YBUTTON__IMAGE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YCheckBoxItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YCheckBoxItemProvider.java
new file mode 100644
index 0000000..fbdf6f5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YCheckBoxItemProvider.java
@@ -0,0 +1,237 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YCheckBoxItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YCheckBoxItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCheckBox_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCheckBox_datadescription_feature", "_UI_YCheckBox_type"),
+				 ExtensionModelPackage.Literals.YCHECK_BOX__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCheckBox_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCheckBox_datatype_feature", "_UI_YCheckBox_type"),
+				 ExtensionModelPackage.Literals.YCHECK_BOX__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCheckBox_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCheckBox_value_feature", "_UI_YCheckBox_type"),
+				 ExtensionModelPackage.Literals.YCHECK_BOX__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YCheckBox.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YCheckBox"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YCheckBox)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YCheckBox_type") :
+			getString("_UI_YCheckBox_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YCheckBox.class)) {
+			case ExtensionModelPackage.YCHECK_BOX__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YColumnItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YColumnItemProvider.java
new file mode 100644
index 0000000..1a691fc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YColumnItemProvider.java
@@ -0,0 +1,533 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YColumn;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YColumnItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YColumnItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addIconPropertyDescriptor(object);
+			addVisiblePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addOrderablePropertyDescriptor(object);
+			addCollapsedPropertyDescriptor(object);
+			addCollapsiblePropertyDescriptor(object);
+			addAlignmentPropertyDescriptor(object);
+			addExpandRatioPropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Icon feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIconPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_icon_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_icon_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__ICON,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Visible feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVisiblePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_visible_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_visible_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__VISIBLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_datadescription_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Orderable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOrderablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_orderable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_orderable_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__ORDERABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collapsed feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollapsedPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_collapsed_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_collapsed_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__COLLAPSED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collapsible feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollapsiblePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_collapsible_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_collapsible_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__COLLAPSIBLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Alignment feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAlignmentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_alignment_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_alignment_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__ALIGNMENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Expand Ratio feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addExpandRatioPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_expandRatio_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_expandRatio_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__EXPAND_RATIO,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_propertyPath_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_type_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YColumn_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YColumn_typeQualifiedName_feature", "_UI_YColumn_type"),
+				 ExtensionModelPackage.Literals.YCOLUMN__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YCOLUMN__ORPHAN_DATADESCRIPTIONS);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YCOLUMN__CONVERTER);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YColumn.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YColumn"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YColumn)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YColumn_type") :
+			getString("_UI_YColumn_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YColumn.class)) {
+			case ExtensionModelPackage.YCOLUMN__TAGS:
+			case ExtensionModelPackage.YCOLUMN__ID:
+			case ExtensionModelPackage.YCOLUMN__NAME:
+			case ExtensionModelPackage.YCOLUMN__ICON:
+			case ExtensionModelPackage.YCOLUMN__VISIBLE:
+			case ExtensionModelPackage.YCOLUMN__ORDERABLE:
+			case ExtensionModelPackage.YCOLUMN__COLLAPSED:
+			case ExtensionModelPackage.YCOLUMN__COLLAPSIBLE:
+			case ExtensionModelPackage.YCOLUMN__ALIGNMENT:
+			case ExtensionModelPackage.YCOLUMN__EXPAND_RATIO:
+			case ExtensionModelPackage.YCOLUMN__PROPERTY_PATH:
+			case ExtensionModelPackage.YCOLUMN__TYPE:
+			case ExtensionModelPackage.YCOLUMN__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YCOLUMN__PROPERTIES:
+			case ExtensionModelPackage.YCOLUMN__ORPHAN_DATADESCRIPTIONS:
+			case ExtensionModelPackage.YCOLUMN__CONVERTER:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YCOLUMN__ORPHAN_DATADESCRIPTIONS,
+				 DatatypesFactory.eINSTANCE.createYDatadescription()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YCOLUMN__CONVERTER,
+				 CoreModelFactory.eINSTANCE.createYDelegateConverter()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YComboBoxItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YComboBoxItemProvider.java
new file mode 100644
index 0000000..5938897
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YComboBoxItemProvider.java
@@ -0,0 +1,476 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YComboBoxItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YComboBoxItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCollectionBindingEndpointPropertyDescriptor(object);
+			addSelectionBindingEndpointPropertyDescriptor(object);
+			addUseBeanServicePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addSelectionPropertyDescriptor(object);
+			addCollectionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+			addCaptionPropertyPropertyDescriptor(object);
+			addImagePropertyPropertyDescriptor(object);
+			addDescriptionPropertyPropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCollectionBindable_collectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCollectionBindable_collectionBindingEndpoint_feature", "_UI_YCollectionBindable_type"),
+				 CoreModelPackage.Literals.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSelectionBindable_selectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSelectionBindable_selectionBindingEndpoint_feature", "_UI_YSelectionBindable_type"),
+				 CoreModelPackage.Literals.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Use Bean Service feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUseBeanServicePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanServiceConsumer_useBeanService_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanServiceConsumer_useBeanService_feature", "_UI_YBeanServiceConsumer_type"),
+				 ExtensionModelPackage.Literals.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_datadescription_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_datatype_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_selection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_selection_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_collection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_collection_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__COLLECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_type_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_emfNsURI_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_typeQualifiedName_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Caption Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCaptionPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_captionProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_captionProperty_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__CAPTION_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Image Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addImagePropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_imageProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_imageProperty_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__IMAGE_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_descriptionProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_descriptionProperty_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__DESCRIPTION_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YComboBox_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YComboBox_description_feature", "_UI_YComboBox_type"),
+				 ExtensionModelPackage.Literals.YCOMBO_BOX__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YComboBox.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YComboBox"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YComboBox)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YComboBox_type") :
+			getString("_UI_YComboBox_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YComboBox.class)) {
+			case ExtensionModelPackage.YCOMBO_BOX__USE_BEAN_SERVICE:
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION:
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION:
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE:
+			case ExtensionModelPackage.YCOMBO_BOX__EMF_NS_URI:
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE_QUALIFIED_NAME:
+			case ExtensionModelPackage.YCOMBO_BOX__CAPTION_PROPERTY:
+			case ExtensionModelPackage.YCOMBO_BOX__IMAGE_PROPERTY:
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION_PROPERTY:
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YCssLayoutCellStyleItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YCssLayoutCellStyleItemProvider.java
new file mode 100644
index 0000000..3483509
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YCssLayoutCellStyleItemProvider.java
@@ -0,0 +1,191 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YCssLayoutCellStyleItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YCssLayoutCellStyleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTargetPropertyDescriptor(object);
+			addAlignmentPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Target feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTargetPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssLayoutCellStyle_target_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssLayoutCellStyle_target_feature", "_UI_YCssLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YCSS_LAYOUT_CELL_STYLE__TARGET,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Alignment feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAlignmentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssLayoutCellStyle_alignment_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssLayoutCellStyle_alignment_feature", "_UI_YCssLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YCSS_LAYOUT_CELL_STYLE__ALIGNMENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YCssLayoutCellStyle.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YCssLayoutCellStyle"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		YAlignment labelValue = ((YCssLayoutCellStyle)object).getAlignment();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YCssLayoutCellStyle_type") :
+			getString("_UI_YCssLayoutCellStyle_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YCssLayoutCellStyle.class)) {
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__ALIGNMENT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YCssLayoutItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YCssLayoutItemProvider.java
new file mode 100644
index 0000000..cbe1770
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YCssLayoutItemProvider.java
@@ -0,0 +1,477 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YLayoutItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YCssLayoutItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YCssLayoutItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSpacingPropertyDescriptor(object);
+			addMarginPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Spacing feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSpacingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpacingable_spacing_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpacingable_spacing_feature", "_UI_YSpacingable_type"),
+				 CoreModelPackage.Literals.YSPACINGABLE__SPACING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Margin feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMarginPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMarginable_margin_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMarginable_margin_feature", "_UI_YMarginable_type"),
+				 CoreModelPackage.Literals.YMARGINABLE__MARGIN,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YCSS_LAYOUT__CELL_STYLES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YCssLayout.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YCssLayout"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YCssLayout)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YCssLayout_type") :
+			getString("_UI_YCssLayout_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YCssLayout.class)) {
+			case ExtensionModelPackage.YCSS_LAYOUT__SPACING:
+			case ExtensionModelPackage.YCSS_LAYOUT__MARGIN:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YCSS_LAYOUT__CELL_STYLES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YCSS_LAYOUT__CELL_STYLES,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayoutCellStyle()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YDateTimeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YDateTimeItemProvider.java
new file mode 100644
index 0000000..4cc5b69
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YDateTimeItemProvider.java
@@ -0,0 +1,237 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YDateTimeItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDateTimeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDateTime_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDateTime_datatype_feature", "_UI_YDateTime_type"),
+				 ExtensionModelPackage.Literals.YDATE_TIME__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDateTime_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDateTime_datadescription_feature", "_UI_YDateTime_type"),
+				 ExtensionModelPackage.Literals.YDATE_TIME__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDateTime_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDateTime_value_feature", "_UI_YDateTime_type"),
+				 ExtensionModelPackage.Literals.YDATE_TIME__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YDateTime.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YDateTime"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YDateTime)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YDateTime_type") :
+			getString("_UI_YDateTime_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDateTime.class)) {
+			case ExtensionModelPackage.YDATE_TIME__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YDecimalFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YDecimalFieldItemProvider.java
new file mode 100644
index 0000000..23d2008
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YDecimalFieldItemProvider.java
@@ -0,0 +1,237 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YDecimalFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDecimalFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDecimalField_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDecimalField_datatype_feature", "_UI_YDecimalField_type"),
+				 ExtensionModelPackage.Literals.YDECIMAL_FIELD__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDecimalField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDecimalField_datadescription_feature", "_UI_YDecimalField_type"),
+				 ExtensionModelPackage.Literals.YDECIMAL_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YDecimalField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YDecimalField_value_feature", "_UI_YDecimalField_type"),
+				 ExtensionModelPackage.Literals.YDECIMAL_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YDecimalField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YDecimalField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YDecimalField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YDecimalField_type") :
+			getString("_UI_YDecimalField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YDecimalField.class)) {
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YEnumComboBoxItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YEnumComboBoxItemProvider.java
new file mode 100644
index 0000000..2f9ecd5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YEnumComboBoxItemProvider.java
@@ -0,0 +1,332 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YEnumComboBoxItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEnumComboBoxItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCollectionBindingEndpointPropertyDescriptor(object);
+			addSelectionBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addSelectionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCollectionBindable_collectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCollectionBindable_collectionBindingEndpoint_feature", "_UI_YCollectionBindable_type"),
+				 CoreModelPackage.Literals.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSelectionBindable_selectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSelectionBindable_selectionBindingEndpoint_feature", "_UI_YSelectionBindable_type"),
+				 CoreModelPackage.Literals.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumComboBox_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumComboBox_datadescription_feature", "_UI_YEnumComboBox_type"),
+				 ExtensionModelPackage.Literals.YENUM_COMBO_BOX__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumComboBox_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumComboBox_datatype_feature", "_UI_YEnumComboBox_type"),
+				 ExtensionModelPackage.Literals.YENUM_COMBO_BOX__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumComboBox_selection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumComboBox_selection_feature", "_UI_YEnumComboBox_type"),
+				 ExtensionModelPackage.Literals.YENUM_COMBO_BOX__SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumComboBox_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumComboBox_type_feature", "_UI_YEnumComboBox_type"),
+				 ExtensionModelPackage.Literals.YENUM_COMBO_BOX__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumComboBox_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumComboBox_emfNsURI_feature", "_UI_YEnumComboBox_type"),
+				 ExtensionModelPackage.Literals.YENUM_COMBO_BOX__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumComboBox_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumComboBox_typeQualifiedName_feature", "_UI_YEnumComboBox_type"),
+				 ExtensionModelPackage.Literals.YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YEnumComboBox.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YEnumComboBox"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YEnumComboBox)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YEnumComboBox_type") :
+			getString("_UI_YEnumComboBox_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YEnumComboBox.class)) {
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION:
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE:
+			case ExtensionModelPackage.YENUM_COMBO_BOX__EMF_NS_URI:
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YEnumListItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YEnumListItemProvider.java
new file mode 100644
index 0000000..bcd2faf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YEnumListItemProvider.java
@@ -0,0 +1,403 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YEnumListItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEnumListItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCollectionBindingEndpointPropertyDescriptor(object);
+			addSelectionBindingEndpointPropertyDescriptor(object);
+			addMultiSelectionBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addSelectionTypePropertyDescriptor(object);
+			addSelectionPropertyDescriptor(object);
+			addMultiSelectionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCollectionBindable_collectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCollectionBindable_collectionBindingEndpoint_feature", "_UI_YCollectionBindable_type"),
+				 CoreModelPackage.Literals.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSelectionBindable_selectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSelectionBindable_selectionBindingEndpoint_feature", "_UI_YSelectionBindable_type"),
+				 CoreModelPackage.Literals.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature", "_UI_YMultiSelectionBindable_type"),
+				 CoreModelPackage.Literals.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumList_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumList_datadescription_feature", "_UI_YEnumList_type"),
+				 ExtensionModelPackage.Literals.YENUM_LIST__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumList_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumList_datatype_feature", "_UI_YEnumList_type"),
+				 ExtensionModelPackage.Literals.YENUM_LIST__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumList_selectionType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumList_selectionType_feature", "_UI_YEnumList_type"),
+				 ExtensionModelPackage.Literals.YENUM_LIST__SELECTION_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumList_selection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumList_selection_feature", "_UI_YEnumList_type"),
+				 ExtensionModelPackage.Literals.YENUM_LIST__SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumList_multiSelection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumList_multiSelection_feature", "_UI_YEnumList_type"),
+				 ExtensionModelPackage.Literals.YENUM_LIST__MULTI_SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumList_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumList_type_feature", "_UI_YEnumList_type"),
+				 ExtensionModelPackage.Literals.YENUM_LIST__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumList_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumList_emfNsURI_feature", "_UI_YEnumList_type"),
+				 ExtensionModelPackage.Literals.YENUM_LIST__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumList_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumList_typeQualifiedName_feature", "_UI_YEnumList_type"),
+				 ExtensionModelPackage.Literals.YENUM_LIST__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YEnumList.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YEnumList"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YEnumList)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YEnumList_type") :
+			getString("_UI_YEnumList_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YEnumList.class)) {
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_TYPE:
+			case ExtensionModelPackage.YENUM_LIST__SELECTION:
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION:
+			case ExtensionModelPackage.YENUM_LIST__TYPE:
+			case ExtensionModelPackage.YENUM_LIST__EMF_NS_URI:
+			case ExtensionModelPackage.YENUM_LIST__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YEnumOptionsGroupItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YEnumOptionsGroupItemProvider.java
new file mode 100644
index 0000000..3746ee0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YEnumOptionsGroupItemProvider.java
@@ -0,0 +1,403 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YEnumOptionsGroupItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEnumOptionsGroupItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCollectionBindingEndpointPropertyDescriptor(object);
+			addSelectionBindingEndpointPropertyDescriptor(object);
+			addMultiSelectionBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addSelectionTypePropertyDescriptor(object);
+			addSelectionPropertyDescriptor(object);
+			addMultiSelectionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCollectionBindable_collectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCollectionBindable_collectionBindingEndpoint_feature", "_UI_YCollectionBindable_type"),
+				 CoreModelPackage.Literals.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSelectionBindable_selectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSelectionBindable_selectionBindingEndpoint_feature", "_UI_YSelectionBindable_type"),
+				 CoreModelPackage.Literals.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature", "_UI_YMultiSelectionBindable_type"),
+				 CoreModelPackage.Literals.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumOptionsGroup_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumOptionsGroup_datadescription_feature", "_UI_YEnumOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumOptionsGroup_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumOptionsGroup_datatype_feature", "_UI_YEnumOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumOptionsGroup_selectionType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumOptionsGroup_selectionType_feature", "_UI_YEnumOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP__SELECTION_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumOptionsGroup_selection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumOptionsGroup_selection_feature", "_UI_YEnumOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP__SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumOptionsGroup_multiSelection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumOptionsGroup_multiSelection_feature", "_UI_YEnumOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP__MULTI_SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumOptionsGroup_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumOptionsGroup_type_feature", "_UI_YEnumOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumOptionsGroup_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumOptionsGroup_emfNsURI_feature", "_UI_YEnumOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YEnumOptionsGroup_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YEnumOptionsGroup_typeQualifiedName_feature", "_UI_YEnumOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YEnumOptionsGroup.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YEnumOptionsGroup"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YEnumOptionsGroup)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YEnumOptionsGroup_type") :
+			getString("_UI_YEnumOptionsGroup_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YEnumOptionsGroup.class)) {
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_TYPE:
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION:
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION:
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE:
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__EMF_NS_URI:
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YFilterItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YFilterItemProvider.java
new file mode 100644
index 0000000..b86e448
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YFilterItemProvider.java
@@ -0,0 +1,303 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFilter;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YFilterItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFilterItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+			addFilterValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFilter_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFilter_propertyPath_feature", "_UI_YFilter_type"),
+				 ExtensionModelPackage.Literals.YFILTER__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Filter Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFilterValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFilter_filterValue_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFilter_filterValue_feature", "_UI_YFilter_type"),
+				 ExtensionModelPackage.Literals.YFILTER__FILTER_VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YFilter.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YFilter"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YFilter)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YFilter_type") :
+			getString("_UI_YFilter_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YFilter.class)) {
+			case ExtensionModelPackage.YFILTER__TAGS:
+			case ExtensionModelPackage.YFILTER__ID:
+			case ExtensionModelPackage.YFILTER__NAME:
+			case ExtensionModelPackage.YFILTER__PROPERTY_PATH:
+			case ExtensionModelPackage.YFILTER__FILTER_VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YFILTER__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YFormLayoutCellStyleItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YFormLayoutCellStyleItemProvider.java
new file mode 100644
index 0000000..ecb0ba5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YFormLayoutCellStyleItemProvider.java
@@ -0,0 +1,191 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YFormLayoutCellStyleItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFormLayoutCellStyleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTargetPropertyDescriptor(object);
+			addAlignmentPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Target feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTargetPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFormLayoutCellStyle_target_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFormLayoutCellStyle_target_feature", "_UI_YFormLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YFORM_LAYOUT_CELL_STYLE__TARGET,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Alignment feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAlignmentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFormLayoutCellStyle_alignment_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFormLayoutCellStyle_alignment_feature", "_UI_YFormLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YFORM_LAYOUT_CELL_STYLE__ALIGNMENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YFormLayoutCellStyle.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YFormLayoutCellStyle"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		YAlignment labelValue = ((YFormLayoutCellStyle)object).getAlignment();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YFormLayoutCellStyle_type") :
+			getString("_UI_YFormLayoutCellStyle_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YFormLayoutCellStyle.class)) {
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__ALIGNMENT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YFormLayoutItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YFormLayoutItemProvider.java
new file mode 100644
index 0000000..6f59954
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YFormLayoutItemProvider.java
@@ -0,0 +1,477 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YLayoutItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YFormLayoutItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YFormLayoutItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSpacingPropertyDescriptor(object);
+			addMarginPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Spacing feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSpacingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpacingable_spacing_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpacingable_spacing_feature", "_UI_YSpacingable_type"),
+				 CoreModelPackage.Literals.YSPACINGABLE__SPACING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Margin feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMarginPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMarginable_margin_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMarginable_margin_feature", "_UI_YMarginable_type"),
+				 CoreModelPackage.Literals.YMARGINABLE__MARGIN,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YFORM_LAYOUT__CELL_STYLES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YFormLayout.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YFormLayout"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YFormLayout)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YFormLayout_type") :
+			getString("_UI_YFormLayout_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YFormLayout.class)) {
+			case ExtensionModelPackage.YFORM_LAYOUT__SPACING:
+			case ExtensionModelPackage.YFORM_LAYOUT__MARGIN:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YFORM_LAYOUT__CELL_STYLES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YFORM_LAYOUT__CELL_STYLES,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayoutCellStyle()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YGridLayoutCellStyleItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YGridLayoutCellStyleItemProvider.java
new file mode 100644
index 0000000..2e8651d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YGridLayoutCellStyleItemProvider.java
@@ -0,0 +1,231 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YGridLayoutCellStyleItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YGridLayoutCellStyleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTargetPropertyDescriptor(object);
+			addAlignmentPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Target feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTargetPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YGridLayoutCellStyle_target_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YGridLayoutCellStyle_target_feature", "_UI_YGridLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YGRID_LAYOUT_CELL_STYLE__TARGET,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Alignment feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAlignmentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YGridLayoutCellStyle_alignment_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YGridLayoutCellStyle_alignment_feature", "_UI_YGridLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YGRID_LAYOUT_CELL_STYLE__ALIGNMENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YGridLayoutCellStyle.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YGridLayoutCellStyle"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		YAlignment labelValue = ((YGridLayoutCellStyle)object).getAlignment();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YGridLayoutCellStyle_type") :
+			getString("_UI_YGridLayoutCellStyle_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YGridLayoutCellStyle.class)) {
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__ALIGNMENT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO,
+				 ExtensionModelFactory.eINSTANCE.createYSpanInfo()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YGridLayoutItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YGridLayoutItemProvider.java
new file mode 100644
index 0000000..be57bc1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YGridLayoutItemProvider.java
@@ -0,0 +1,501 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YLayoutItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YGridLayoutItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YGridLayoutItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSpacingPropertyDescriptor(object);
+			addMarginPropertyDescriptor(object);
+			addColumnsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Spacing feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSpacingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpacingable_spacing_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpacingable_spacing_feature", "_UI_YSpacingable_type"),
+				 CoreModelPackage.Literals.YSPACINGABLE__SPACING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Margin feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMarginPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMarginable_margin_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMarginable_margin_feature", "_UI_YMarginable_type"),
+				 CoreModelPackage.Literals.YMARGINABLE__MARGIN,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Columns feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addColumnsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YGridLayout_columns_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YGridLayout_columns_feature", "_UI_YGridLayout_type"),
+				 ExtensionModelPackage.Literals.YGRID_LAYOUT__COLUMNS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YGRID_LAYOUT__CELL_STYLES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YGridLayout.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YGridLayout.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YGridLayout)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YGridLayout_type") :
+			getString("_UI_YGridLayout_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YGridLayout.class)) {
+			case ExtensionModelPackage.YGRID_LAYOUT__SPACING:
+			case ExtensionModelPackage.YGRID_LAYOUT__MARGIN:
+			case ExtensionModelPackage.YGRID_LAYOUT__COLUMNS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT__CELL_STYLES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YGRID_LAYOUT__CELL_STYLES,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayoutCellStyle()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YHorizontalLayoutCellStyleItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YHorizontalLayoutCellStyleItemProvider.java
new file mode 100644
index 0000000..d378e34
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YHorizontalLayoutCellStyleItemProvider.java
@@ -0,0 +1,191 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YHorizontalLayoutCellStyleItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YHorizontalLayoutCellStyleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTargetPropertyDescriptor(object);
+			addAlignmentPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Target feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTargetPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YHorizontalLayoutCellStyle_target_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YHorizontalLayoutCellStyle_target_feature", "_UI_YHorizontalLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Alignment feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAlignmentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YHorizontalLayoutCellStyle_alignment_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YHorizontalLayoutCellStyle_alignment_feature", "_UI_YHorizontalLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YHorizontalLayoutCellStyle.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YHorizontalLayoutCellStyle"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		YAlignment labelValue = ((YHorizontalLayoutCellStyle)object).getAlignment();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YHorizontalLayoutCellStyle_type") :
+			getString("_UI_YHorizontalLayoutCellStyle_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YHorizontalLayoutCellStyle.class)) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YHorizontalLayoutItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YHorizontalLayoutItemProvider.java
new file mode 100644
index 0000000..a3f2507
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YHorizontalLayoutItemProvider.java
@@ -0,0 +1,477 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YLayoutItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YHorizontalLayoutItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YHorizontalLayoutItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSpacingPropertyDescriptor(object);
+			addMarginPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Spacing feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSpacingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpacingable_spacing_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpacingable_spacing_feature", "_UI_YSpacingable_type"),
+				 CoreModelPackage.Literals.YSPACINGABLE__SPACING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Margin feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMarginPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMarginable_margin_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMarginable_margin_feature", "_UI_YMarginable_type"),
+				 CoreModelPackage.Literals.YMARGINABLE__MARGIN,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YHORIZONTAL_LAYOUT__CELL_STYLES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YHorizontalLayout.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YHorizontalLayout"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YHorizontalLayout)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YHorizontalLayout_type") :
+			getString("_UI_YHorizontalLayout_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YHorizontalLayout.class)) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__SPACING:
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__MARGIN:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__CELL_STYLES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YHORIZONTAL_LAYOUT__CELL_STYLES,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayoutCellStyle()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YImageItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YImageItemProvider.java
new file mode 100644
index 0000000..93d9de9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YImageItemProvider.java
@@ -0,0 +1,287 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YFieldItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YImage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YImageItemProvider extends YFieldItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YImageItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YImage_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YImage_datadescription_feature", "_UI_YImage_type"),
+				 ExtensionModelPackage.Literals.YIMAGE__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YImage_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YImage_value_feature", "_UI_YImage_type"),
+				 ExtensionModelPackage.Literals.YIMAGE__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YImage.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YImage"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YImage)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YImage_type") :
+			getString("_UI_YImage_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YImage.class)) {
+			case ExtensionModelPackage.YIMAGE__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YInputItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YInputItemProvider.java
new file mode 100644
index 0000000..ecc1a63
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YInputItemProvider.java
@@ -0,0 +1,197 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YFieldItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YInput;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YInput} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YInputItemProvider extends YFieldItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YInputItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YInput)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YInput_type") :
+			getString("_UI_YInput_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YLabelItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YLabelItemProvider.java
new file mode 100644
index 0000000..671b9b8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YLabelItemProvider.java
@@ -0,0 +1,287 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YFieldItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YLabel;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YLabelItemProvider extends YFieldItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YLabelItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YLabel_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YLabel_datadescription_feature", "_UI_YLabel_type"),
+				 ExtensionModelPackage.Literals.YLABEL__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YLabel_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YLabel_value_feature", "_UI_YLabel_type"),
+				 ExtensionModelPackage.Literals.YLABEL__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YLabel.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YLabel"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YLabel)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YLabel_type") :
+			getString("_UI_YLabel_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YLabel.class)) {
+			case ExtensionModelPackage.YLABEL__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YListItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YListItemProvider.java
new file mode 100644
index 0000000..133273f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YListItemProvider.java
@@ -0,0 +1,547 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YList;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YList} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YListItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YListItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCollectionBindingEndpointPropertyDescriptor(object);
+			addSelectionBindingEndpointPropertyDescriptor(object);
+			addMultiSelectionBindingEndpointPropertyDescriptor(object);
+			addUseBeanServicePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addSelectionTypePropertyDescriptor(object);
+			addSelectionPropertyDescriptor(object);
+			addMultiSelectionPropertyDescriptor(object);
+			addCollectionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+			addCaptionPropertyPropertyDescriptor(object);
+			addImagePropertyPropertyDescriptor(object);
+			addDescriptionPropertyPropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCollectionBindable_collectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCollectionBindable_collectionBindingEndpoint_feature", "_UI_YCollectionBindable_type"),
+				 CoreModelPackage.Literals.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSelectionBindable_selectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSelectionBindable_selectionBindingEndpoint_feature", "_UI_YSelectionBindable_type"),
+				 CoreModelPackage.Literals.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature", "_UI_YMultiSelectionBindable_type"),
+				 CoreModelPackage.Literals.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Use Bean Service feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUseBeanServicePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanServiceConsumer_useBeanService_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanServiceConsumer_useBeanService_feature", "_UI_YBeanServiceConsumer_type"),
+				 ExtensionModelPackage.Literals.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_datadescription_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_datatype_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_selectionType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_selectionType_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__SELECTION_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_selection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_selection_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_multiSelection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_multiSelection_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__MULTI_SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_collection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_collection_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__COLLECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_type_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_emfNsURI_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_typeQualifiedName_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Caption Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCaptionPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_captionProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_captionProperty_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__CAPTION_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Image Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addImagePropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_imageProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_imageProperty_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__IMAGE_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_descriptionProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_descriptionProperty_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__DESCRIPTION_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YList_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YList_description_feature", "_UI_YList_type"),
+				 ExtensionModelPackage.Literals.YLIST__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YList.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YList"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YList)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YList_type") :
+			getString("_UI_YList_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YList.class)) {
+			case ExtensionModelPackage.YLIST__USE_BEAN_SERVICE:
+			case ExtensionModelPackage.YLIST__SELECTION_TYPE:
+			case ExtensionModelPackage.YLIST__SELECTION:
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION:
+			case ExtensionModelPackage.YLIST__COLLECTION:
+			case ExtensionModelPackage.YLIST__TYPE:
+			case ExtensionModelPackage.YLIST__EMF_NS_URI:
+			case ExtensionModelPackage.YLIST__TYPE_QUALIFIED_NAME:
+			case ExtensionModelPackage.YLIST__CAPTION_PROPERTY:
+			case ExtensionModelPackage.YLIST__IMAGE_PROPERTY:
+			case ExtensionModelPackage.YLIST__DESCRIPTION_PROPERTY:
+			case ExtensionModelPackage.YLIST__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YMasterDetailItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YMasterDetailItemProvider.java
new file mode 100644
index 0000000..db4041c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YMasterDetailItemProvider.java
@@ -0,0 +1,827 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YMasterDetailItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YMasterDetailItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCollectionBindingEndpointPropertyDescriptor(object);
+			addSelectionBindingEndpointPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addSelectionPropertyDescriptor(object);
+			addCollectionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCollectionBindable_collectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCollectionBindable_collectionBindingEndpoint_feature", "_UI_YCollectionBindable_type"),
+				 CoreModelPackage.Literals.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSelectionBindable_selectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSelectionBindable_selectionBindingEndpoint_feature", "_UI_YSelectionBindable_type"),
+				 CoreModelPackage.Literals.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMasterDetail_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMasterDetail_datatype_feature", "_UI_YMasterDetail_type"),
+				 ExtensionModelPackage.Literals.YMASTER_DETAIL__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMasterDetail_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMasterDetail_datadescription_feature", "_UI_YMasterDetail_type"),
+				 ExtensionModelPackage.Literals.YMASTER_DETAIL__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMasterDetail_selection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMasterDetail_selection_feature", "_UI_YMasterDetail_type"),
+				 ExtensionModelPackage.Literals.YMASTER_DETAIL__SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMasterDetail_collection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMasterDetail_collection_feature", "_UI_YMasterDetail_type"),
+				 ExtensionModelPackage.Literals.YMASTER_DETAIL__COLLECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMasterDetail_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMasterDetail_type_feature", "_UI_YMasterDetail_type"),
+				 ExtensionModelPackage.Literals.YMASTER_DETAIL__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMasterDetail_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMasterDetail_emfNsURI_feature", "_UI_YMasterDetail_type"),
+				 ExtensionModelPackage.Literals.YMASTER_DETAIL__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMasterDetail_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMasterDetail_typeQualifiedName_feature", "_UI_YMasterDetail_type"),
+				 ExtensionModelPackage.Literals.YMASTER_DETAIL__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YMasterDetail.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YMasterDetail"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YMasterDetail)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YMasterDetail_type") :
+			getString("_UI_YMasterDetail_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YMasterDetail.class)) {
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION:
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION:
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE:
+			case ExtensionModelPackage.YMASTER_DETAIL__EMF_NS_URI:
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT:
+			case ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 CoreModelFactory.eINSTANCE.createYLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 CoreModelFactory.eINSTANCE.createYHelperLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 CoreModelFactory.eINSTANCE.createYField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT,
+				 CoreModelFactory.eINSTANCE.createYAction()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 CoreModelFactory.eINSTANCE.createYLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 CoreModelFactory.eINSTANCE.createYHelperLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 CoreModelFactory.eINSTANCE.createYField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT,
+				 CoreModelFactory.eINSTANCE.createYAction()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS ||
+			childFeature == ExtensionModelPackage.Literals.YMASTER_DETAIL__MASTER_ELEMENT ||
+			childFeature == ExtensionModelPackage.Literals.YMASTER_DETAIL__DETAIL_ELEMENT;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YNumericFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YNumericFieldItemProvider.java
new file mode 100644
index 0000000..eba5e02
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YNumericFieldItemProvider.java
@@ -0,0 +1,237 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YNumericFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YNumericFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericField_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericField_datatype_feature", "_UI_YNumericField_type"),
+				 ExtensionModelPackage.Literals.YNUMERIC_FIELD__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericField_datadescription_feature", "_UI_YNumericField_type"),
+				 ExtensionModelPackage.Literals.YNUMERIC_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericField_value_feature", "_UI_YNumericField_type"),
+				 ExtensionModelPackage.Literals.YNUMERIC_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YNumericField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YNumericField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YNumericField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YNumericField_type") :
+			getString("_UI_YNumericField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YNumericField.class)) {
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YNumericSearchFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YNumericSearchFieldItemProvider.java
new file mode 100644
index 0000000..a0be3ef
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YNumericSearchFieldItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YNumericSearchFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YNumericSearchFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+			addWildcardPropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericSearchField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericSearchField_datadescription_feature", "_UI_YNumericSearchField_type"),
+				 ExtensionModelPackage.Literals.YNUMERIC_SEARCH_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericSearchField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericSearchField_value_feature", "_UI_YNumericSearchField_type"),
+				 ExtensionModelPackage.Literals.YNUMERIC_SEARCH_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Wildcard feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addWildcardPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericSearchField_wildcard_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericSearchField_wildcard_feature", "_UI_YNumericSearchField_type"),
+				 ExtensionModelPackage.Literals.YNUMERIC_SEARCH_FIELD__WILDCARD,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericSearchField_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericSearchField_propertyPath_feature", "_UI_YNumericSearchField_type"),
+				 ExtensionModelPackage.Literals.YNUMERIC_SEARCH_FIELD__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericSearchField_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericSearchField_type_feature", "_UI_YNumericSearchField_type"),
+				 ExtensionModelPackage.Literals.YNUMERIC_SEARCH_FIELD__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YNumericSearchField_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YNumericSearchField_typeQualifiedName_feature", "_UI_YNumericSearchField_type"),
+				 ExtensionModelPackage.Literals.YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YNumericSearchField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YNumericSearchField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YNumericSearchField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YNumericSearchField_type") :
+			getString("_UI_YNumericSearchField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YNumericSearchField.class)) {
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE:
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__WILDCARD:
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__PROPERTY_PATH:
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE:
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YOptionsGroupItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YOptionsGroupItemProvider.java
new file mode 100644
index 0000000..33996f9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YOptionsGroupItemProvider.java
@@ -0,0 +1,547 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YOptionsGroupItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YOptionsGroupItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCollectionBindingEndpointPropertyDescriptor(object);
+			addSelectionBindingEndpointPropertyDescriptor(object);
+			addMultiSelectionBindingEndpointPropertyDescriptor(object);
+			addUseBeanServicePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addSelectionTypePropertyDescriptor(object);
+			addSelectionPropertyDescriptor(object);
+			addMultiSelectionPropertyDescriptor(object);
+			addCollectionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+			addCaptionPropertyPropertyDescriptor(object);
+			addImagePropertyPropertyDescriptor(object);
+			addDescriptionPropertyPropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCollectionBindable_collectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCollectionBindable_collectionBindingEndpoint_feature", "_UI_YCollectionBindable_type"),
+				 CoreModelPackage.Literals.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSelectionBindable_selectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSelectionBindable_selectionBindingEndpoint_feature", "_UI_YSelectionBindable_type"),
+				 CoreModelPackage.Literals.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature", "_UI_YMultiSelectionBindable_type"),
+				 CoreModelPackage.Literals.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Use Bean Service feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUseBeanServicePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanServiceConsumer_useBeanService_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanServiceConsumer_useBeanService_feature", "_UI_YBeanServiceConsumer_type"),
+				 ExtensionModelPackage.Literals.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_datadescription_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_datatype_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_selectionType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_selectionType_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__SELECTION_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_selection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_selection_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_multiSelection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_multiSelection_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__MULTI_SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_collection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_collection_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__COLLECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_type_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_emfNsURI_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_typeQualifiedName_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Caption Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCaptionPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_captionProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_captionProperty_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__CAPTION_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Image Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addImagePropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_imageProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_imageProperty_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__IMAGE_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_descriptionProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_descriptionProperty_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__DESCRIPTION_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YOptionsGroup_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YOptionsGroup_description_feature", "_UI_YOptionsGroup_type"),
+				 ExtensionModelPackage.Literals.YOPTIONS_GROUP__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YOptionsGroup.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YOptionsGroup"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YOptionsGroup)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YOptionsGroup_type") :
+			getString("_UI_YOptionsGroup_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YOptionsGroup.class)) {
+			case ExtensionModelPackage.YOPTIONS_GROUP__USE_BEAN_SERVICE:
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_TYPE:
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION:
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION:
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION:
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE:
+			case ExtensionModelPackage.YOPTIONS_GROUP__EMF_NS_URI:
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+			case ExtensionModelPackage.YOPTIONS_GROUP__CAPTION_PROPERTY:
+			case ExtensionModelPackage.YOPTIONS_GROUP__IMAGE_PROPERTY:
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION_PROPERTY:
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YPanelItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YPanelItemProvider.java
new file mode 100644
index 0000000..886857f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YPanelItemProvider.java
@@ -0,0 +1,483 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YLayoutItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPanel;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YPanelItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YPanelItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTabIndexPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addFirstContentPropertyDescriptor(object);
+			addSecondContentPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Tab Index feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTabIndexPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFocusable_tabIndex_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFocusable_tabIndex_feature", "_UI_YFocusable_type"),
+				 CoreModelPackage.Literals.YFOCUSABLE__TAB_INDEX,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YPanel_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YPanel_datadescription_feature", "_UI_YPanel_type"),
+				 ExtensionModelPackage.Literals.YPANEL__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the First Content feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFirstContentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YPanel_firstContent_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YPanel_firstContent_feature", "_UI_YPanel_type"),
+				 ExtensionModelPackage.Literals.YPANEL__FIRST_CONTENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Second Content feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSecondContentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YPanel_secondContent_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YPanel_secondContent_feature", "_UI_YPanel_type"),
+				 ExtensionModelPackage.Literals.YPANEL__SECOND_CONTENT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YPanel.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YPanel"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YPanel)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YPanel_type") :
+			getString("_UI_YPanel_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YPanel.class)) {
+			case ExtensionModelPackage.YPANEL__TAB_INDEX:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YPasswordFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YPasswordFieldItemProvider.java
new file mode 100644
index 0000000..dc13657
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YPasswordFieldItemProvider.java
@@ -0,0 +1,203 @@
+/**
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YPasswordFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YPasswordFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YPasswordField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YPasswordField_datadescription_feature", "_UI_YPasswordField_type"),
+				 ExtensionModelPackage.Literals.YPASSWORD_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YPasswordField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YPasswordField_value_feature", "_UI_YPasswordField_type"),
+				 ExtensionModelPackage.Literals.YPASSWORD_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YPasswordField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YPasswordField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YPasswordField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YPasswordField_type") :
+			getString("_UI_YPasswordField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YPasswordField.class)) {
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YProgressBarItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YProgressBarItemProvider.java
new file mode 100644
index 0000000..fd4ef2e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YProgressBarItemProvider.java
@@ -0,0 +1,237 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YProgressBarItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YProgressBarItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YProgressBar_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YProgressBar_datatype_feature", "_UI_YProgressBar_type"),
+				 ExtensionModelPackage.Literals.YPROGRESS_BAR__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YProgressBar_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YProgressBar_datadescription_feature", "_UI_YProgressBar_type"),
+				 ExtensionModelPackage.Literals.YPROGRESS_BAR__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YProgressBar_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YProgressBar_value_feature", "_UI_YProgressBar_type"),
+				 ExtensionModelPackage.Literals.YPROGRESS_BAR__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YProgressBar.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YProgressBar"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YProgressBar)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YProgressBar_type") :
+			getString("_UI_YProgressBar_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YProgressBar.class)) {
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YReferenceSearchFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YReferenceSearchFieldItemProvider.java
new file mode 100644
index 0000000..3592b9b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YReferenceSearchFieldItemProvider.java
@@ -0,0 +1,334 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YReferenceSearchFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YReferenceSearchFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+			addWildcardPropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YReferenceSearchField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YReferenceSearchField_datadescription_feature", "_UI_YReferenceSearchField_type"),
+				 ExtensionModelPackage.Literals.YREFERENCE_SEARCH_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YReferenceSearchField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YReferenceSearchField_value_feature", "_UI_YReferenceSearchField_type"),
+				 ExtensionModelPackage.Literals.YREFERENCE_SEARCH_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Wildcard feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addWildcardPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YReferenceSearchField_wildcard_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YReferenceSearchField_wildcard_feature", "_UI_YReferenceSearchField_type"),
+				 ExtensionModelPackage.Literals.YREFERENCE_SEARCH_FIELD__WILDCARD,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YReferenceSearchField_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YReferenceSearchField_propertyPath_feature", "_UI_YReferenceSearchField_type"),
+				 ExtensionModelPackage.Literals.YREFERENCE_SEARCH_FIELD__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YReferenceSearchField_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YReferenceSearchField_type_feature", "_UI_YReferenceSearchField_type"),
+				 ExtensionModelPackage.Literals.YREFERENCE_SEARCH_FIELD__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YReferenceSearchField_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YReferenceSearchField_emfNsURI_feature", "_UI_YReferenceSearchField_type"),
+				 ExtensionModelPackage.Literals.YREFERENCE_SEARCH_FIELD__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YReferenceSearchField_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YReferenceSearchField_typeQualifiedName_feature", "_UI_YReferenceSearchField_type"),
+				 ExtensionModelPackage.Literals.YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YReferenceSearchField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YReferenceSearchField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YReferenceSearchField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YReferenceSearchField_type") :
+			getString("_UI_YReferenceSearchField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YReferenceSearchField.class)) {
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE:
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__WILDCARD:
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__PROPERTY_PATH:
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE:
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__EMF_NS_URI:
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YRemoveFromTableCommandItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YRemoveFromTableCommandItemProvider.java
new file mode 100644
index 0000000..a8014f3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YRemoveFromTableCommandItemProvider.java
@@ -0,0 +1,302 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YRemoveFromTableCommandItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YRemoveFromTableCommandItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addTablePropertyDescriptor(object);
+			addTriggerPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Table feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YRemoveFromTableCommand_table_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YRemoveFromTableCommand_table_feature", "_UI_YRemoveFromTableCommand_type"),
+				 ExtensionModelPackage.Literals.YREMOVE_FROM_TABLE_COMMAND__TABLE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Trigger feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTriggerPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YRemoveFromTableCommand_trigger_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YRemoveFromTableCommand_trigger_feature", "_UI_YRemoveFromTableCommand_type"),
+				 ExtensionModelPackage.Literals.YREMOVE_FROM_TABLE_COMMAND__TRIGGER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YRemoveFromTableCommand.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YRemoveFromTableCommand"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YRemoveFromTableCommand)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YRemoveFromTableCommand_type") :
+			getString("_UI_YRemoveFromTableCommand_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YRemoveFromTableCommand.class)) {
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TAGS:
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__ID:
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__NAME:
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TRIGGER:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSearchPanelItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSearchPanelItemProvider.java
new file mode 100644
index 0000000..1e871ee
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSearchPanelItemProvider.java
@@ -0,0 +1,558 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YLayoutItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YSearchPanelItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSearchPanelItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSpacingPropertyDescriptor(object);
+			addMarginPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+			addApplyFilterPropertyDescriptor(object);
+			addFilterPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Spacing feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSpacingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpacingable_spacing_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpacingable_spacing_feature", "_UI_YSpacingable_type"),
+				 CoreModelPackage.Literals.YSPACINGABLE__SPACING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Margin feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMarginPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMarginable_margin_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMarginable_margin_feature", "_UI_YMarginable_type"),
+				 CoreModelPackage.Literals.YMARGINABLE__MARGIN,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSearchPanel_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSearchPanel_type_feature", "_UI_YSearchPanel_type"),
+				 ExtensionModelPackage.Literals.YSEARCH_PANEL__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSearchPanel_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSearchPanel_emfNsURI_feature", "_UI_YSearchPanel_type"),
+				 ExtensionModelPackage.Literals.YSEARCH_PANEL__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSearchPanel_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSearchPanel_typeQualifiedName_feature", "_UI_YSearchPanel_type"),
+				 ExtensionModelPackage.Literals.YSEARCH_PANEL__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Apply Filter feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addApplyFilterPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSearchPanel_applyFilter_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSearchPanel_applyFilter_feature", "_UI_YSearchPanel_type"),
+				 ExtensionModelPackage.Literals.YSEARCH_PANEL__APPLY_FILTER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Filter feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFilterPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSearchPanel_filter_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSearchPanel_filter_feature", "_UI_YSearchPanel_type"),
+				 ExtensionModelPackage.Literals.YSEARCH_PANEL__FILTER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YSearchPanel.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YSearchPanel"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YSearchPanel)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YSearchPanel_type") :
+			getString("_UI_YSearchPanel_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YSearchPanel.class)) {
+			case ExtensionModelPackage.YSEARCH_PANEL__SPACING:
+			case ExtensionModelPackage.YSEARCH_PANEL__MARGIN:
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE:
+			case ExtensionModelPackage.YSEARCH_PANEL__EMF_NS_URI:
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE_QUALIFIED_NAME:
+			case ExtensionModelPackage.YSEARCH_PANEL__APPLY_FILTER:
+			case ExtensionModelPackage.YSEARCH_PANEL__FILTER:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSetNewBeanInstanceCommandItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSetNewBeanInstanceCommandItemProvider.java
new file mode 100644
index 0000000..511e290
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSetNewBeanInstanceCommandItemProvider.java
@@ -0,0 +1,404 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YSetNewBeanInstanceCommandItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSetNewBeanInstanceCommandItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addTriggerPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Trigger feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTriggerPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSetNewBeanInstanceCommand_trigger_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSetNewBeanInstanceCommand_trigger_feature", "_UI_YSetNewBeanInstanceCommand_type"),
+				 ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSetNewBeanInstanceCommand_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSetNewBeanInstanceCommand_type_feature", "_UI_YSetNewBeanInstanceCommand_type"),
+				 ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSetNewBeanInstanceCommand_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSetNewBeanInstanceCommand_emfNsURI_feature", "_UI_YSetNewBeanInstanceCommand_type"),
+				 ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSetNewBeanInstanceCommand_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSetNewBeanInstanceCommand_typeQualifiedName_feature", "_UI_YSetNewBeanInstanceCommand_type"),
+				 ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YSetNewBeanInstanceCommand.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YSetNewBeanInstanceCommand"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YSetNewBeanInstanceCommand)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YSetNewBeanInstanceCommand_type") :
+			getString("_UI_YSetNewBeanInstanceCommand_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YSetNewBeanInstanceCommand.class)) {
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TAGS:
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__ID:
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__NAME:
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER:
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE:
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI:
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__PROPERTIES:
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 BindingFactory.eINSTANCE.createYBeanValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 BindingFactory.eINSTANCE.createYDetailValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 BindingFactory.eINSTANCE.createYECViewModelValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 BindingFactory.eINSTANCE.createYVisibilityProcessorValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 BindingFactory.eINSTANCE.createYNoOpValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 CoreModelFactory.eINSTANCE.createYContextValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 CoreModelFactory.eINSTANCE.createYBeanSlotValueBindingEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableValueEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 CoreModelFactory.eINSTANCE.createYEmbeddableSelectionEndpoint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET,
+				 CoreModelFactory.eINSTANCE.createYActivatedEndpoint()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSliderItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSliderItemProvider.java
new file mode 100644
index 0000000..3aef04f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSliderItemProvider.java
@@ -0,0 +1,310 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSlider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YSliderItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSliderItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+			addMaxValuePropertyDescriptor(object);
+			addMinValuePropertyDescriptor(object);
+			addResolutionPropertyDescriptor(object);
+			addOrientationPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSlider_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSlider_datadescription_feature", "_UI_YSlider_type"),
+				 ExtensionModelPackage.Literals.YSLIDER__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSlider_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSlider_value_feature", "_UI_YSlider_type"),
+				 ExtensionModelPackage.Literals.YSLIDER__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Max Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMaxValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSlider_maxValue_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSlider_maxValue_feature", "_UI_YSlider_type"),
+				 ExtensionModelPackage.Literals.YSLIDER__MAX_VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Min Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMinValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSlider_minValue_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSlider_minValue_feature", "_UI_YSlider_type"),
+				 ExtensionModelPackage.Literals.YSLIDER__MIN_VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Resolution feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addResolutionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSlider_resolution_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSlider_resolution_feature", "_UI_YSlider_type"),
+				 ExtensionModelPackage.Literals.YSLIDER__RESOLUTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Orientation feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOrientationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSlider_orientation_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSlider_orientation_feature", "_UI_YSlider_type"),
+				 ExtensionModelPackage.Literals.YSLIDER__ORIENTATION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YSlider.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YSlider"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YSlider)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YSlider_type") :
+			getString("_UI_YSlider_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YSlider.class)) {
+			case ExtensionModelPackage.YSLIDER__VALUE:
+			case ExtensionModelPackage.YSLIDER__MAX_VALUE:
+			case ExtensionModelPackage.YSLIDER__MIN_VALUE:
+			case ExtensionModelPackage.YSLIDER__RESOLUTION:
+			case ExtensionModelPackage.YSLIDER__ORIENTATION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSpanInfoItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSpanInfoItemProvider.java
new file mode 100644
index 0000000..0bcc1dd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSpanInfoItemProvider.java
@@ -0,0 +1,236 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YSpanInfoItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSpanInfoItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addColumnFromPropertyDescriptor(object);
+			addRowFromPropertyDescriptor(object);
+			addColumnToPropertyDescriptor(object);
+			addRowToPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Column From feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addColumnFromPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpanInfo_columnFrom_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpanInfo_columnFrom_feature", "_UI_YSpanInfo_type"),
+				 ExtensionModelPackage.Literals.YSPAN_INFO__COLUMN_FROM,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Row From feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRowFromPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpanInfo_rowFrom_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpanInfo_rowFrom_feature", "_UI_YSpanInfo_type"),
+				 ExtensionModelPackage.Literals.YSPAN_INFO__ROW_FROM,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Column To feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addColumnToPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpanInfo_columnTo_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpanInfo_columnTo_feature", "_UI_YSpanInfo_type"),
+				 ExtensionModelPackage.Literals.YSPAN_INFO__COLUMN_TO,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Row To feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRowToPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpanInfo_rowTo_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpanInfo_rowTo_feature", "_UI_YSpanInfo_type"),
+				 ExtensionModelPackage.Literals.YSPAN_INFO__ROW_TO,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YSpanInfo.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YSpanInfo"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		YSpanInfo ySpanInfo = (YSpanInfo)object;
+		return getString("_UI_YSpanInfo_type") + " " + ySpanInfo.getColumnFrom();
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YSpanInfo.class)) {
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_FROM:
+			case ExtensionModelPackage.YSPAN_INFO__ROW_FROM:
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_TO:
+			case ExtensionModelPackage.YSPAN_INFO__ROW_TO:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSplitPanelItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSplitPanelItemProvider.java
new file mode 100644
index 0000000..e4fea53
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSplitPanelItemProvider.java
@@ -0,0 +1,524 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YLayoutItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YSplitPanelItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSplitPanelItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addDatadescriptionPropertyDescriptor(object);
+			addFillHorizontalPropertyDescriptor(object);
+			addSplitPositionPropertyDescriptor(object);
+			addVerticalPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSplitPanel_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSplitPanel_datadescription_feature", "_UI_YSplitPanel_type"),
+				 ExtensionModelPackage.Literals.YSPLIT_PANEL__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Fill Horizontal feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFillHorizontalPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSplitPanel_fillHorizontal_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSplitPanel_fillHorizontal_feature", "_UI_YSplitPanel_type"),
+				 ExtensionModelPackage.Literals.YSPLIT_PANEL__FILL_HORIZONTAL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Split Position feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSplitPositionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSplitPanel_splitPosition_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSplitPanel_splitPosition_feature", "_UI_YSplitPanel_type"),
+				 ExtensionModelPackage.Literals.YSPLIT_PANEL__SPLIT_POSITION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Vertical feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVerticalPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSplitPanel_vertical_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSplitPanel_vertical_feature", "_UI_YSplitPanel_type"),
+				 ExtensionModelPackage.Literals.YSPLIT_PANEL__VERTICAL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YSPLIT_PANEL__CELL_STYLES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YSplitPanel.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YSplitPanel"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YSplitPanel)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YSplitPanel_type") :
+			getString("_UI_YSplitPanel_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YSplitPanel.class)) {
+			case ExtensionModelPackage.YSPLIT_PANEL__FILL_HORIZONTAL:
+			case ExtensionModelPackage.YSPLIT_PANEL__SPLIT_POSITION:
+			case ExtensionModelPackage.YSPLIT_PANEL__VERTICAL:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YSPLIT_PANEL__CELL_STYLES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YSPLIT_PANEL__CELL_STYLES,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayoutCellStyle()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSuggestTextFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSuggestTextFieldItemProvider.java
new file mode 100644
index 0000000..a32679d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YSuggestTextFieldItemProvider.java
@@ -0,0 +1,477 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YSuggestTextFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSuggestTextFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+			addUseSuggestionsPropertyDescriptor(object);
+			addAutoHidePopupPropertyDescriptor(object);
+			addLastSuggestionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+			addItemCaptionPropertyPropertyDescriptor(object);
+			addItemFilterPropertyPropertyDescriptor(object);
+			addItemUUIDPropertyPropertyDescriptor(object);
+			addEventPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_datatype_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_datadescription_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_value_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Use Suggestions feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUseSuggestionsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_useSuggestions_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_useSuggestions_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Auto Hide Popup feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAutoHidePopupPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_autoHidePopup_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_autoHidePopup_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Last Suggestion feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLastSuggestionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_lastSuggestion_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_lastSuggestion_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__LAST_SUGGESTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_type_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_emfNsURI_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_typeQualifiedName_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Item Caption Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addItemCaptionPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_itemCaptionProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_itemCaptionProperty_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Item Filter Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addItemFilterPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_itemFilterProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_itemFilterProperty_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Item UUID Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addItemUUIDPropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_itemUUIDProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_itemUUIDProperty_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Event feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEventPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSuggestTextField_event_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSuggestTextField_event_feature", "_UI_YSuggestTextField_type"),
+				 ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD__EVENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YSuggestTextField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YSuggestTextField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YSuggestTextField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YSuggestTextField_type") :
+			getString("_UI_YSuggestTextField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YSuggestTextField.class)) {
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__LAST_SUGGESTION:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EMF_NS_URI:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY:
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EVENT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTabItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTabItemProvider.java
new file mode 100644
index 0000000..1763823
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTabItemProvider.java
@@ -0,0 +1,552 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTabItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTabItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addCssClassPropertyDescriptor(object);
+			addCssIDPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_id_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YElement_name_feature", "_UI_YElement_type"),
+				 CoreModelPackage.Literals.YELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTaggable_tags_feature", "_UI_YTaggable_type"),
+				 CoreModelPackage.Literals.YTAGGABLE__TAGS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css Class feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCssClassPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssAble_cssClass_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssAble_cssClass_feature", "_UI_YCssAble_type"),
+				 CoreModelPackage.Literals.YCSS_ABLE__CSS_CLASS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Css ID feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCssIDPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCssAble_cssID_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCssAble_cssID_feature", "_UI_YCssAble_type"),
+				 CoreModelPackage.Literals.YCSS_ABLE__CSS_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTab_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTab_datadescription_feature", "_UI_YTab_type"),
+				 ExtensionModelPackage.Literals.YTAB__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(CoreModelPackage.Literals.YELEMENT__PROPERTIES);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YTAB__ORPHAN_DATADESCRIPTIONS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YTab.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTab"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTab)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTab_type") :
+			getString("_UI_YTab_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTab.class)) {
+			case ExtensionModelPackage.YTAB__TAGS:
+			case ExtensionModelPackage.YTAB__ID:
+			case ExtensionModelPackage.YTAB__NAME:
+			case ExtensionModelPackage.YTAB__CSS_CLASS:
+			case ExtensionModelPackage.YTAB__CSS_ID:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YTAB__PROPERTIES:
+			case ExtensionModelPackage.YTAB__EMBEDDABLE:
+			case ExtensionModelPackage.YTAB__ORPHAN_DATADESCRIPTIONS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YELEMENT__PROPERTIES,
+				 CoreModelFactory.eINSTANCE.create(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP)));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 CoreModelFactory.eINSTANCE.createYLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 CoreModelFactory.eINSTANCE.createYHelperLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 CoreModelFactory.eINSTANCE.createYField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__EMBEDDABLE,
+				 CoreModelFactory.eINSTANCE.createYAction()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB__ORPHAN_DATADESCRIPTIONS,
+				 DatatypesFactory.eINSTANCE.createYDatadescription()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTabSheetItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTabSheetItemProvider.java
new file mode 100644
index 0000000..c905cb2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTabSheetItemProvider.java
@@ -0,0 +1,258 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YEmbeddableItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTabSheetItemProvider extends YEmbeddableItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTabSheetItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTabIndexPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Tab Index feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTabIndexPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFocusable_tabIndex_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFocusable_tabIndex_feature", "_UI_YFocusable_type"),
+				 CoreModelPackage.Literals.YFOCUSABLE__TAB_INDEX,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YTAB_SHEET__TABS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YTabSheet.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTabSheet.png"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTabSheet)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTabSheet_type") :
+			getString("_UI_YTabSheet_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTabSheet.class)) {
+			case ExtensionModelPackage.YTAB_SHEET__TAB_INDEX:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YTAB_SHEET__TABS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTAB_SHEET__TABS,
+				 ExtensionModelFactory.eINSTANCE.createYTab()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTableItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTableItemProvider.java
new file mode 100644
index 0000000..cd22000
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTableItemProvider.java
@@ -0,0 +1,564 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTableItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTableItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCollectionBindingEndpointPropertyDescriptor(object);
+			addSelectionBindingEndpointPropertyDescriptor(object);
+			addMultiSelectionBindingEndpointPropertyDescriptor(object);
+			addUseBeanServicePropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addSelectionTypePropertyDescriptor(object);
+			addSelectionPropertyDescriptor(object);
+			addMultiSelectionPropertyDescriptor(object);
+			addCollectionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+			addItemImagePropertyPropertyDescriptor(object);
+			addFilterPropertyDescriptor(object);
+			addRefreshPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCollectionBindable_collectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCollectionBindable_collectionBindingEndpoint_feature", "_UI_YCollectionBindable_type"),
+				 CoreModelPackage.Literals.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSelectionBindable_selectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSelectionBindable_selectionBindingEndpoint_feature", "_UI_YSelectionBindable_type"),
+				 CoreModelPackage.Literals.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature", "_UI_YMultiSelectionBindable_type"),
+				 CoreModelPackage.Literals.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Use Bean Service feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUseBeanServicePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanServiceConsumer_useBeanService_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanServiceConsumer_useBeanService_feature", "_UI_YBeanServiceConsumer_type"),
+				 ExtensionModelPackage.Literals.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_datatype_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_datadescription_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_selectionType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_selectionType_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__SELECTION_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_selection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_selection_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_multiSelection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_multiSelection_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__MULTI_SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_collection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_collection_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__COLLECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_type_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_emfNsURI_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_typeQualifiedName_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Item Image Property feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addItemImagePropertyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_itemImageProperty_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_itemImageProperty_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__ITEM_IMAGE_PROPERTY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Filter feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFilterPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_filter_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_filter_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__FILTER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Refresh feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRefreshPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTable_refresh_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTable_refresh_feature", "_UI_YTable_type"),
+				 ExtensionModelPackage.Literals.YTABLE__REFRESH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YTABLE__COLUMNS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YTable.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTable"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTable)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTable_type") :
+			getString("_UI_YTable_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTable.class)) {
+			case ExtensionModelPackage.YTABLE__USE_BEAN_SERVICE:
+			case ExtensionModelPackage.YTABLE__SELECTION_TYPE:
+			case ExtensionModelPackage.YTABLE__SELECTION:
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION:
+			case ExtensionModelPackage.YTABLE__COLLECTION:
+			case ExtensionModelPackage.YTABLE__TYPE:
+			case ExtensionModelPackage.YTABLE__EMF_NS_URI:
+			case ExtensionModelPackage.YTABLE__TYPE_QUALIFIED_NAME:
+			case ExtensionModelPackage.YTABLE__ITEM_IMAGE_PROPERTY:
+			case ExtensionModelPackage.YTABLE__FILTER:
+			case ExtensionModelPackage.YTABLE__REFRESH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YTABLE__COLUMNS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YTABLE__COLUMNS,
+				 ExtensionModelFactory.eINSTANCE.createYColumn()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTextAreaItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTextAreaItemProvider.java
new file mode 100644
index 0000000..68c69e0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTextAreaItemProvider.java
@@ -0,0 +1,285 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTextAreaItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTextAreaItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+			addWordWrapPropertyDescriptor(object);
+			addRowsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextArea_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextArea_datadescription_feature", "_UI_YTextArea_type"),
+				 ExtensionModelPackage.Literals.YTEXT_AREA__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextArea_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextArea_datatype_feature", "_UI_YTextArea_type"),
+				 ExtensionModelPackage.Literals.YTEXT_AREA__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextArea_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextArea_value_feature", "_UI_YTextArea_type"),
+				 ExtensionModelPackage.Literals.YTEXT_AREA__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Word Wrap feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addWordWrapPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextArea_wordWrap_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextArea_wordWrap_feature", "_UI_YTextArea_type"),
+				 ExtensionModelPackage.Literals.YTEXT_AREA__WORD_WRAP,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Rows feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRowsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextArea_rows_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextArea_rows_feature", "_UI_YTextArea_type"),
+				 ExtensionModelPackage.Literals.YTEXT_AREA__ROWS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YTextArea.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTextArea"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTextArea)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTextArea_type") :
+			getString("_UI_YTextArea_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTextArea.class)) {
+			case ExtensionModelPackage.YTEXT_AREA__VALUE:
+			case ExtensionModelPackage.YTEXT_AREA__WORD_WRAP:
+			case ExtensionModelPackage.YTEXT_AREA__ROWS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTextFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTextFieldItemProvider.java
new file mode 100644
index 0000000..c88e933
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTextFieldItemProvider.java
@@ -0,0 +1,237 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTextFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTextFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextField_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextField_datatype_feature", "_UI_YTextField_type"),
+				 ExtensionModelPackage.Literals.YTEXT_FIELD__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextField_datadescription_feature", "_UI_YTextField_type"),
+				 ExtensionModelPackage.Literals.YTEXT_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextField_value_feature", "_UI_YTextField_type"),
+				 ExtensionModelPackage.Literals.YTEXT_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YTextField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTextField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTextField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTextField_type") :
+			getString("_UI_YTextField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTextField.class)) {
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTextSearchFieldItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTextSearchFieldItemProvider.java
new file mode 100644
index 0000000..31ab6d4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTextSearchFieldItemProvider.java
@@ -0,0 +1,262 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTextSearchFieldItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTextSearchFieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addValueBindingEndpointPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+			addWildcardPropertyDescriptor(object);
+			addPropertyPathPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Value Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValueBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YValueBindable_valueBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YValueBindable_valueBindingEndpoint_feature", "_UI_YValueBindable_type"),
+				 CoreModelPackage.Literals.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextSearchField_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextSearchField_datadescription_feature", "_UI_YTextSearchField_type"),
+				 ExtensionModelPackage.Literals.YTEXT_SEARCH_FIELD__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextSearchField_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextSearchField_value_feature", "_UI_YTextSearchField_type"),
+				 ExtensionModelPackage.Literals.YTEXT_SEARCH_FIELD__VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Wildcard feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addWildcardPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextSearchField_wildcard_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextSearchField_wildcard_feature", "_UI_YTextSearchField_type"),
+				 ExtensionModelPackage.Literals.YTEXT_SEARCH_FIELD__WILDCARD,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Property Path feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPropertyPathPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTextSearchField_propertyPath_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTextSearchField_propertyPath_feature", "_UI_YTextSearchField_type"),
+				 ExtensionModelPackage.Literals.YTEXT_SEARCH_FIELD__PROPERTY_PATH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YTextSearchField.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTextSearchField"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTextSearchField)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTextSearchField_type") :
+			getString("_UI_YTextSearchField_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTextSearchField.class)) {
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE:
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__WILDCARD:
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__PROPERTY_PATH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YToggleButtonItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YToggleButtonItemProvider.java
new file mode 100644
index 0000000..db26f5d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YToggleButtonItemProvider.java
@@ -0,0 +1,289 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YActionItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YToggleButtonItemProvider extends YActionItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YToggleButtonItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addInitialActivatedPropertyDescriptor(object);
+			addActivatedPropertyDescriptor(object);
+			addTabIndexPropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Initial Activated feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitialActivatedPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YActivateable_initialActivated_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YActivateable_initialActivated_feature", "_UI_YActivateable_type"),
+				 CoreModelPackage.Literals.YACTIVATEABLE__INITIAL_ACTIVATED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Activated feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addActivatedPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YActivateable_activated_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YActivateable_activated_feature", "_UI_YActivateable_type"),
+				 CoreModelPackage.Literals.YACTIVATEABLE__ACTIVATED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tab Index feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTabIndexPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YFocusable_tabIndex_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YFocusable_tabIndex_feature", "_UI_YFocusable_type"),
+				 CoreModelPackage.Literals.YFOCUSABLE__TAB_INDEX,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YToggleButton_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YToggleButton_datadescription_feature", "_UI_YToggleButton_type"),
+				 ExtensionModelPackage.Literals.YTOGGLE_BUTTON__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YToggleButton.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YToggleButton"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YToggleButton)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YToggleButton_type") :
+			getString("_UI_YToggleButton_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YToggleButton.class)) {
+			case ExtensionModelPackage.YTOGGLE_BUTTON__INITIAL_ACTIVATED:
+			case ExtensionModelPackage.YTOGGLE_BUTTON__ACTIVATED:
+			case ExtensionModelPackage.YTOGGLE_BUTTON__TAB_INDEX:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTreeItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTreeItemProvider.java
new file mode 100644
index 0000000..fb3ac30
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YTreeItemProvider.java
@@ -0,0 +1,451 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTree;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YTreeItemProvider extends YInputItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YTreeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCollectionBindingEndpointPropertyDescriptor(object);
+			addSelectionBindingEndpointPropertyDescriptor(object);
+			addMultiSelectionBindingEndpointPropertyDescriptor(object);
+			addUseBeanServicePropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+			addDatadescriptionPropertyDescriptor(object);
+			addSelectionTypePropertyDescriptor(object);
+			addSelectionPropertyDescriptor(object);
+			addMultiSelectionPropertyDescriptor(object);
+			addCollectionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
+			addEmfNsURIPropertyDescriptor(object);
+			addTypeQualifiedNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YCollectionBindable_collectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YCollectionBindable_collectionBindingEndpoint_feature", "_UI_YCollectionBindable_type"),
+				 CoreModelPackage.Literals.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSelectionBindable_selectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSelectionBindable_selectionBindingEndpoint_feature", "_UI_YSelectionBindable_type"),
+				 CoreModelPackage.Literals.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection Binding Endpoint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionBindingEndpointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMultiSelectionBindable_multiSelectionBindingEndpoint_feature", "_UI_YMultiSelectionBindable_type"),
+				 CoreModelPackage.Literals.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Use Bean Service feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUseBeanServicePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YBeanServiceConsumer_useBeanService_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YBeanServiceConsumer_useBeanService_feature", "_UI_YBeanServiceConsumer_type"),
+				 ExtensionModelPackage.Literals.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTree_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTree_datatype_feature", "_UI_YTree_type"),
+				 ExtensionModelPackage.Literals.YTREE__DATATYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datadescription feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatadescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTree_datadescription_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTree_datadescription_feature", "_UI_YTree_type"),
+				 ExtensionModelPackage.Literals.YTREE__DATADESCRIPTION,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTree_selectionType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTree_selectionType_feature", "_UI_YTree_type"),
+				 ExtensionModelPackage.Literals.YTREE__SELECTION_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTree_selection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTree_selection_feature", "_UI_YTree_type"),
+				 ExtensionModelPackage.Literals.YTREE__SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Multi Selection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMultiSelectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTree_multiSelection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTree_multiSelection_feature", "_UI_YTree_type"),
+				 ExtensionModelPackage.Literals.YTREE__MULTI_SELECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collection feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollectionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTree_collection_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTree_collection_feature", "_UI_YTree_type"),
+				 ExtensionModelPackage.Literals.YTREE__COLLECTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTree_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTree_type_feature", "_UI_YTree_type"),
+				 ExtensionModelPackage.Literals.YTREE__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Emf Ns URI feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEmfNsURIPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTree_emfNsURI_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTree_emfNsURI_feature", "_UI_YTree_type"),
+				 ExtensionModelPackage.Literals.YTREE__EMF_NS_URI,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YTree_typeQualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YTree_typeQualifiedName_feature", "_UI_YTree_type"),
+				 ExtensionModelPackage.Literals.YTREE__TYPE_QUALIFIED_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YTree.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YTree"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YTree)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YTree_type") :
+			getString("_UI_YTree_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YTree.class)) {
+			case ExtensionModelPackage.YTREE__USE_BEAN_SERVICE:
+			case ExtensionModelPackage.YTREE__SELECTION_TYPE:
+			case ExtensionModelPackage.YTREE__SELECTION:
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION:
+			case ExtensionModelPackage.YTREE__COLLECTION:
+			case ExtensionModelPackage.YTREE__TYPE:
+			case ExtensionModelPackage.YTREE__EMF_NS_URI:
+			case ExtensionModelPackage.YTREE__TYPE_QUALIFIED_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == CoreModelPackage.Literals.YFIELD__VALIDATORS ||
+			childFeature == CoreModelPackage.Literals.YFIELD__INTERNAL_VALIDATORS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YVerticalLayoutCellStyleItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YVerticalLayoutCellStyleItemProvider.java
new file mode 100644
index 0000000..cd24b83
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YVerticalLayoutCellStyleItemProvider.java
@@ -0,0 +1,191 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YVerticalLayoutCellStyleItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YVerticalLayoutCellStyleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTargetPropertyDescriptor(object);
+			addAlignmentPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Target feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTargetPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVerticalLayoutCellStyle_target_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVerticalLayoutCellStyle_target_feature", "_UI_YVerticalLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YVERTICAL_LAYOUT_CELL_STYLE__TARGET,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Alignment feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAlignmentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YVerticalLayoutCellStyle_alignment_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YVerticalLayoutCellStyle_alignment_feature", "_UI_YVerticalLayoutCellStyle_type"),
+				 ExtensionModelPackage.Literals.YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns YVerticalLayoutCellStyle.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YVerticalLayoutCellStyle"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		YAlignment labelValue = ((YVerticalLayoutCellStyle)object).getAlignment();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YVerticalLayoutCellStyle_type") :
+			getString("_UI_YVerticalLayoutCellStyle_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YVerticalLayoutCellStyle.class)) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YVerticalLayoutItemProvider.java b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YVerticalLayoutItemProvider.java
new file mode 100644
index 0000000..7a459e9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.edit/src/org/eclipse/osbp/ecview/core/extension/model/extension/provider/YVerticalLayoutItemProvider.java
@@ -0,0 +1,477 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.provider.YLayoutItemProvider;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class YVerticalLayoutItemProvider extends YLayoutItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YVerticalLayoutItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSpacingPropertyDescriptor(object);
+			addMarginPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Spacing feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSpacingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YSpacingable_spacing_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YSpacingable_spacing_feature", "_UI_YSpacingable_type"),
+				 CoreModelPackage.Literals.YSPACINGABLE__SPACING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Margin feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMarginPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_YMarginable_margin_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_YMarginable_margin_feature", "_UI_YMarginable_type"),
+				 CoreModelPackage.Literals.YMARGINABLE__MARGIN,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ExtensionModelPackage.Literals.YVERTICAL_LAYOUT__CELL_STYLES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns YVerticalLayout.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/YVerticalLayout"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((YVerticalLayout)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_YVerticalLayout_type") :
+			getString("_UI_YVerticalLayout_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(YVerticalLayout.class)) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__SPACING:
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__MARGIN:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__CELL_STYLES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTextAreaDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYNumericDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDecimalDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTableDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYCheckBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYComboBoxDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYListDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYOptionsGroupDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYBrowserDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTreeDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYProgressBarDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYTabSheetDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YEMBEDDABLE__ORPHAN_DATATYPES,
+				 ExtDatatypesFactory.eINSTANCE.createYMasterDetailDatatype()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYGridLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYHorizontalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTree()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYImage()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBeanReferenceField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextArea()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCheckBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBrowser()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDateTime()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYDecimalField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSlider()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYToggleButton()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYProgressBar()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTabSheet()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYMasterDetail()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYFormLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYTextSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYBooleanSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYNumericSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYReferenceSearchField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSplitPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSearchPanel()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumOptionsGroup()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumList()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYEnumComboBox()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYCssLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYAbsoluteLayout()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYSuggestTextField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(CoreModelPackage.Literals.YLAYOUT__ELEMENTS,
+				 ExtensionModelFactory.eINSTANCE.createYPasswordField()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ExtensionModelPackage.Literals.YVERTICAL_LAYOUT__CELL_STYLES,
+				 ExtensionModelFactory.eINSTANCE.createYVerticalLayoutCellStyle()));
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/.project b/org.eclipse.osbp.ecview.core.extension.model.editor/.project
new file mode 100644
index 0000000..479ae78
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.extension.model.editor</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.extension.model.editor/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4a9e5fd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.extension.model.editor;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation.ExtensionEditorPlugin$Implementation
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation,
+ org.eclipse.osbp.ecview.core.extension.model.extension.presentation
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.osbp.ecview.core.extension.model.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport,
+ org.eclipse.osbp.ecview.core.common.model.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/build.properties b/org.eclipse.osbp.ecview.core.extension.model.editor/build.properties
new file mode 100644
index 0000000..5fb0771
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+               icons/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/obj16/ExtDatatypesModelFile.gif b/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/obj16/ExtDatatypesModelFile.gif
new file mode 100644
index 0000000..e5c6e17
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/obj16/ExtDatatypesModelFile.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/obj16/ExtensionModelModelFile.gif b/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/obj16/ExtensionModelModelFile.gif
new file mode 100644
index 0000000..e526a91
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/obj16/ExtensionModelModelFile.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/wizban/NewExtDatatypes.gif b/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/wizban/NewExtDatatypes.gif
new file mode 100644
index 0000000..caab214
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/wizban/NewExtDatatypes.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/wizban/NewExtensionModel.gif b/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/wizban/NewExtensionModel.gif
new file mode 100644
index 0000000..32e5988
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/icons/full/wizban/NewExtensionModel.gif
Binary files differ
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/plugin.properties b/org.eclipse.osbp.ecview.core.extension.model.editor/plugin.properties
new file mode 100644
index 0000000..6bf16ed
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/plugin.properties
@@ -0,0 +1,62 @@
+#
+
+pluginName = Extension Editor
+providerName = www.example.org
+
+_UI_ExtDatatypesEditor_menu = &ExtDatatypes Editor
+_UI_ExtensionModelEditor_menu = &ExtensionModel Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_ExtDatatypesModelWizard_label = ExtDatatypes Model
+_UI_ExtDatatypesModelWizard_description = Create a new ExtDatatypes model
+
+_UI_ExtDatatypesEditor_label = ExtDatatypes Model Editor
+
+_UI_ExtDatatypesEditorFilenameDefaultBase = My
+_UI_ExtDatatypesEditorFilenameExtensions = extdatatypes
+
+_UI_ExtensionModelModelWizard_label = ExtensionModel Model
+_UI_ExtensionModelModelWizard_description = Create a new ExtensionModel model
+
+_UI_ExtensionModelEditor_label = ExtensionModel Model Editor
+
+_UI_ExtensionModelEditorFilenameDefaultBase = My
+_UI_ExtensionModelEditorFilenameExtensions = extensionmodel
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?
+
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/plugin.xml b/org.eclipse.osbp.ecview.core.extension.model.editor/plugin.xml
new file mode 100644
index 0000000..d66d581
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/plugin.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated extension -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation.ExtDatatypesModelWizardID"
+            name="%_UI_ExtDatatypesModelWizard_label"
+            class="org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation.ExtDatatypesModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/ExtDatatypesModelFile.gif">
+         <description>%_UI_ExtDatatypesModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+   <extension point="org.eclipse.ui.editors">
+      <!-- @generated extension -->
+      <editor
+            id="org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation.ExtDatatypesEditorID"
+            name="%_UI_ExtDatatypesEditor_label"
+            icon="icons/full/obj16/ExtDatatypesModelFile.gif"
+            extensions="extdatatypes"
+            class="org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation.ExtDatatypesEditor"
+            contributorClass="org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation.ExtDatatypesActionBarContributor">
+      </editor>
+   </extension>
+
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated extension -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="org.eclipse.osbp.ecview.core.extension.model.extension.presentation.ExtensionModelModelWizardID"
+            name="%_UI_ExtensionModelModelWizard_label"
+            class="org.eclipse.osbp.ecview.core.extension.model.extension.presentation.ExtensionModelModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/ExtensionModelModelFile.gif">
+         <description>%_UI_ExtensionModelModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+   <extension point="org.eclipse.ui.editors">
+      <!-- @generated extension -->
+      <editor
+            id="org.eclipse.osbp.ecview.core.extension.model.extension.presentation.ExtensionModelEditorID"
+            name="%_UI_ExtensionModelEditor_label"
+            icon="icons/full/obj16/ExtensionModelModelFile.gif"
+            extensions="extensionmodel"
+            class="org.eclipse.osbp.ecview.core.extension.model.extension.presentation.ExtensionModelEditor"
+            contributorClass="org.eclipse.osbp.ecview.core.extension.model.extension.presentation.ExtensionModelActionBarContributor">
+      </editor>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtDatatypesActionBarContributor.java b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtDatatypesActionBarContributor.java
new file mode 100644
index 0000000..2a90d52
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtDatatypesActionBarContributor.java
@@ -0,0 +1,434 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the ExtDatatypes model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtDatatypesActionBarContributor
+	extends EditingDomainActionBarContributor
+	implements ISelectionChangedListener {
+	/**
+	 * This keeps track of the active editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IEditorPart activeEditorPart;
+
+	/**
+	 * This keeps track of the current selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionProvider selectionProvider;
+
+	/**
+	 * This action opens the Properties view.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction showPropertiesViewAction =
+		new Action(ExtensionEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+			@Override
+			public void run() {
+				try {
+					getPage().showView("org.eclipse.ui.views.PropertySheet");
+				}
+				catch (PartInitException exception) {
+					ExtensionEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * This action refreshes the viewer of the current editor if the editor
+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction refreshViewerAction =
+		new Action(ExtensionEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+			@Override
+			public boolean isEnabled() {
+				return activeEditorPart instanceof IViewerProvider;
+			}
+
+			@Override
+			public void run() {
+				if (activeEditorPart instanceof IViewerProvider) {
+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+					if (viewer != null) {
+						viewer.refresh();
+					}
+				}
+			}
+		};
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createChildActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createChildMenuManager;
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createSiblingActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createSiblingMenuManager;
+
+	/**
+	 * This creates an instance of the contributor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtDatatypesActionBarContributor() {
+		super(ADDITIONS_LAST_STYLE);
+		loadResourceAction = new LoadResourceAction();
+		validateAction = new ValidateAction();
+		controlAction = new ControlAction();
+	}
+
+	/**
+	 * This adds Separators for editor additions to the tool bar.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToToolBar(IToolBarManager toolBarManager) {
+		toolBarManager.add(new Separator("extdatatypes-settings"));
+		toolBarManager.add(new Separator("extdatatypes-additions"));
+	}
+
+	/**
+	 * This adds to the menu bar a menu and some separators for editor additions,
+	 * as well as the sub-menus for object creation items.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToMenu(IMenuManager menuManager) {
+		super.contributeToMenu(menuManager);
+
+		IMenuManager submenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtDatatypesEditor_menu"), "org.eclipse.osbp.ecview.core.extension.model.datatypesMenuID");
+		menuManager.insertAfter("additions", submenuManager);
+		submenuManager.add(new Separator("settings"));
+		submenuManager.add(new Separator("actions"));
+		submenuManager.add(new Separator("additions"));
+		submenuManager.add(new Separator("additions-end"));
+
+		// Prepare for CreateChild item addition or removal.
+		//
+		createChildMenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		submenuManager.insertBefore("additions", createChildMenuManager);
+
+		// Prepare for CreateSibling item addition or removal.
+		//
+		createSiblingMenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+		// Force an update because Eclipse hides empty menus now.
+		//
+		submenuManager.addMenuListener
+			(new IMenuListener() {
+				 public void menuAboutToShow(IMenuManager menuManager) {
+					 menuManager.updateAll(true);
+				 }
+			 });
+
+		addGlobalActions(submenuManager);
+	}
+
+	/**
+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setActiveEditor(IEditorPart part) {
+		super.setActiveEditor(part);
+		activeEditorPart = part;
+
+		// Switch to the new selection provider.
+		//
+		if (selectionProvider != null) {
+			selectionProvider.removeSelectionChangedListener(this);
+		}
+		if (part == null) {
+			selectionProvider = null;
+		}
+		else {
+			selectionProvider = part.getSite().getSelectionProvider();
+			selectionProvider.addSelectionChangedListener(this);
+
+			// Fake a selection changed event to update the menus.
+			//
+			if (selectionProvider.getSelection() != null) {
+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+			}
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+	 * that can be added to the selected object and updating the menus accordingly.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		// Remove any menu items for old selection.
+		//
+		if (createChildMenuManager != null) {
+			depopulateManager(createChildMenuManager, createChildActions);
+		}
+		if (createSiblingMenuManager != null) {
+			depopulateManager(createSiblingMenuManager, createSiblingActions);
+		}
+
+		// Query the new selection for appropriate new child/sibling descriptors
+		//
+		Collection<?> newChildDescriptors = null;
+		Collection<?> newSiblingDescriptors = null;
+
+		ISelection selection = event.getSelection();
+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+			Object object = ((IStructuredSelection)selection).getFirstElement();
+
+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+			newChildDescriptors = domain.getNewChildDescriptors(object, null);
+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+		}
+
+		// Generate actions for selection; populate and redraw the menus.
+		//
+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+		if (createChildMenuManager != null) {
+			populateManager(createChildMenuManager, createChildActions, null);
+			createChildMenuManager.update(true);
+		}
+		if (createSiblingMenuManager != null) {
+			populateManager(createSiblingMenuManager, createSiblingActions, null);
+			createSiblingMenuManager.update(true);
+		}
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+	 * by inserting them before the specified contribution item <code>contributionID</code>.
+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+		if (actions != null) {
+			for (IAction action : actions) {
+				if (contributionID != null) {
+					manager.insertBefore(contributionID, action);
+				}
+				else {
+					manager.add(action);
+				}
+			}
+		}
+	}
+		
+	/**
+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+		if (actions != null) {
+			IContributionItem[] items = manager.getItems();
+			for (int i = 0; i < items.length; i++) {
+				// Look into SubContributionItems
+				//
+				IContributionItem contributionItem = items[i];
+				while (contributionItem instanceof SubContributionItem) {
+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+				}
+
+				// Delete the ActionContributionItems with matching action.
+				//
+				if (contributionItem instanceof ActionContributionItem) {
+					IAction action = ((ActionContributionItem)contributionItem).getAction();
+					if (actions.contains(action)) {
+						manager.remove(contributionItem);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This populates the pop-up menu before it appears.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void menuAboutToShow(IMenuManager menuManager) {
+		super.menuAboutToShow(menuManager);
+		MenuManager submenuManager = null;
+
+		submenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		populateManager(submenuManager, createChildActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+
+		submenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		populateManager(submenuManager, createSiblingActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+	}
+
+	/**
+	 * This inserts global actions before the "additions-end" separator.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void addGlobalActions(IMenuManager menuManager) {
+		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
+		menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+		super.addGlobalActions(menuManager);
+	}
+
+	/**
+	 * This ensures that a delete action will clean up all references to deleted objects.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean removeAllReferencesOnDelete() {
+		return true;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtDatatypesEditor.java b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtDatatypesEditor.java
new file mode 100644
index 0000000..16e4260
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtDatatypesEditor.java
@@ -0,0 +1,1850 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.provider.ExtDatatypesItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.BindingItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.provider.AuthorizationItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.core.provider.CoreModelItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.provider.DatatypesItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.provider.ValidationItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.visibility.provider.VisibilityItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.provider.ExtensionModelItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+
+/**
+ * This is an example of a ExtDatatypes model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtDatatypesEditor
+	extends MultiPageEditorPart
+	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+	/**
+	 * This keeps track of the editing domain that is used to track all changes to the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AdapterFactoryEditingDomain editingDomain;
+
+	/**
+	 * This is the one adapter factory used for providing views of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory adapterFactory;
+
+	/**
+	 * This is the content outline page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IContentOutlinePage contentOutlinePage;
+
+	/**
+	 * This is a kludge...
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStatusLineManager contentOutlineStatusLineManager;
+
+	/**
+	 * This is the content outline page's viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer contentOutlineViewer;
+
+	/**
+	 * This is the property sheet page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+	/**
+	 * This is the viewer that shadows the selection in the content outline.
+	 * The parent relation must be correctly defined for this to work.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer selectionViewer;
+
+	/**
+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer parentViewer;
+
+	/**
+	 * This shows how a tree view works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewer;
+
+	/**
+	 * This shows how a list view works.
+	 * A list viewer doesn't support icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ListViewer listViewer;
+
+	/**
+	 * This shows how a table view works.
+	 * A table can be used as a list with icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableViewer tableViewer;
+
+	/**
+	 * This shows how a tree view with columns works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewerWithColumns;
+
+	/**
+	 * This keeps track of the active viewer pane, in the book.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewerPane currentViewerPane;
+
+	/**
+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Viewer currentViewer;
+
+	/**
+	 * This listens to which ever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionChangedListener selectionChangedListener;
+
+	/**
+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+	/**
+	 * This keeps track of the selection of the editor as a whole.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+	/**
+	 * The MarkerHelper is responsible for creating workspace resource markers presented
+	 * in Eclipse's Problems View.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+	/**
+	 * This listens for when the outline becomes active
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPartListener partListener =
+		new IPartListener() {
+			public void partActivated(IWorkbenchPart p) {
+				if (p instanceof ContentOutline) {
+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+						getActionBarContributor().setActiveEditor(ExtDatatypesEditor.this);
+
+						setCurrentViewer(contentOutlineViewer);
+					}
+				}
+				else if (p instanceof PropertySheet) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+						getActionBarContributor().setActiveEditor(ExtDatatypesEditor.this);
+						handleActivate();
+					}
+				}
+				else if (p == ExtDatatypesEditor.this) {
+					handleActivate();
+				}
+			}
+			public void partBroughtToTop(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partClosed(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partDeactivated(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partOpened(IWorkbenchPart p) {
+				// Ignore.
+			}
+		};
+
+	/**
+	 * Resources that have been removed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been changed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been saved.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+	/**
+	 * Map to store the diagnostic associated with a resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+	/**
+	 * Controls whether the problem indication should be updated.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean updateProblemIndication = true;
+
+	/**
+	 * Adapter used to update the problem indication when resources are demanded loaded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EContentAdapter problemIndicationAdapter =
+		new EContentAdapter() {
+			@Override
+			public void notifyChanged(Notification notification) {
+				if (notification.getNotifier() instanceof Resource) {
+					switch (notification.getFeatureID(Resource.class)) {
+						case Resource.RESOURCE__IS_LOADED:
+						case Resource.RESOURCE__ERRORS:
+						case Resource.RESOURCE__WARNINGS: {
+							Resource resource = (Resource)notification.getNotifier();
+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+							if (diagnostic.getSeverity() != Diagnostic.OK) {
+								resourceToDiagnosticMap.put(resource, diagnostic);
+							}
+							else {
+								resourceToDiagnosticMap.remove(resource);
+							}
+
+							if (updateProblemIndication) {
+								getSite().getShell().getDisplay().asyncExec
+									(new Runnable() {
+										 public void run() {
+											 updateProblemIndication();
+										 }
+									 });
+							}
+							break;
+						}
+					}
+				}
+				else {
+					super.notifyChanged(notification);
+				}
+			}
+
+			@Override
+			protected void setTarget(Resource target) {
+				basicSetTarget(target);
+			}
+
+			@Override
+			protected void unsetTarget(Resource target) {
+				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
+			}
+		};
+
+	/**
+	 * This listens for workspace changes.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IResourceChangeListener resourceChangeListener =
+		new IResourceChangeListener() {
+			public void resourceChanged(IResourceChangeEvent event) {
+				IResourceDelta delta = event.getDelta();
+				try {
+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+						protected ResourceSet resourceSet = editingDomain.getResourceSet();
+						protected Collection<Resource> changedResources = new ArrayList<Resource>();
+						protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+						public boolean visit(IResourceDelta delta) {
+							if (delta.getResource().getType() == IResource.FILE) {
+								if (delta.getKind() == IResourceDelta.REMOVED ||
+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+									if (resource != null) {
+										if (delta.getKind() == IResourceDelta.REMOVED) {
+											removedResources.add(resource);
+										}
+										else if (!savedResources.remove(resource)) {
+											changedResources.add(resource);
+										}
+									}
+								}
+								return false;
+							}
+
+							return true;
+						}
+
+						public Collection<Resource> getChangedResources() {
+							return changedResources;
+						}
+
+						public Collection<Resource> getRemovedResources() {
+							return removedResources;
+						}
+					}
+
+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+					delta.accept(visitor);
+
+					if (!visitor.getRemovedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 removedResources.addAll(visitor.getRemovedResources());
+									 if (!isDirty()) {
+										 getSite().getPage().closeEditor(ExtDatatypesEditor.this, false);
+									 }
+								 }
+							 });
+					}
+
+					if (!visitor.getChangedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 changedResources.addAll(visitor.getChangedResources());
+									 if (getSite().getPage().getActiveEditor() == ExtDatatypesEditor.this) {
+										 handleActivate();
+									 }
+								 }
+							 });
+					}
+				}
+				catch (CoreException exception) {
+					ExtensionEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * Handles activation of the editor or it's associated views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleActivate() {
+		// Recompute the read only state.
+		//
+		if (editingDomain.getResourceToReadOnlyMap() != null) {
+		  editingDomain.getResourceToReadOnlyMap().clear();
+
+		  // Refresh any actions that may become enabled or disabled.
+		  //
+		  setSelection(getSelection());
+		}
+
+		if (!removedResources.isEmpty()) {
+			if (handleDirtyConflict()) {
+				getSite().getPage().closeEditor(ExtDatatypesEditor.this, false);
+			}
+			else {
+				removedResources.clear();
+				changedResources.clear();
+				savedResources.clear();
+			}
+		}
+		else if (!changedResources.isEmpty()) {
+			changedResources.removeAll(savedResources);
+			handleChangedResources();
+			changedResources.clear();
+			savedResources.clear();
+		}
+	}
+
+	/**
+	 * Handles what to do with changed resources on activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleChangedResources() {
+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+			if (isDirty()) {
+				changedResources.addAll(editingDomain.getResourceSet().getResources());
+			}
+			editingDomain.getCommandStack().flush();
+
+			updateProblemIndication = false;
+			for (Resource resource : changedResources) {
+				if (resource.isLoaded()) {
+					resource.unload();
+					try {
+						resource.load(Collections.EMPTY_MAP);
+					}
+					catch (IOException exception) {
+						if (!resourceToDiagnosticMap.containsKey(resource)) {
+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+						}
+					}
+				}
+			}
+
+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+				setSelection(StructuredSelection.EMPTY);
+			}
+
+			updateProblemIndication = true;
+			updateProblemIndication();
+		}
+	}
+
+	/**
+	 * Updates the problems indication with the information described in the specified diagnostic.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void updateProblemIndication() {
+		if (updateProblemIndication) {
+			BasicDiagnostic diagnostic =
+				new BasicDiagnostic
+					(Diagnostic.OK,
+					 "org.eclipse.osbp.ecview.core.extension.model.editor",
+					 0,
+					 null,
+					 new Object [] { editingDomain.getResourceSet() });
+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+					diagnostic.add(childDiagnostic);
+				}
+			}
+
+			int lastEditorPage = getPageCount() - 1;
+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					setActivePage(lastEditorPage);
+				}
+			}
+			else if (diagnostic.getSeverity() != Diagnostic.OK) {
+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+				problemEditorPart.setDiagnostic(diagnostic);
+				problemEditorPart.setMarkerHelper(markerHelper);
+				try {
+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+					setPageText(lastEditorPage, problemEditorPart.getPartName());
+					setActivePage(lastEditorPage);
+					showTabs();
+				}
+				catch (PartInitException exception) {
+					ExtensionEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+
+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+				markerHelper.deleteMarkers(editingDomain.getResourceSet());
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					try {
+						markerHelper.createMarkers(diagnostic);
+					}
+					catch (CoreException exception) {
+						ExtensionEditorPlugin.INSTANCE.log(exception);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Shows a dialog that asks if conflicting changes should be discarded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean handleDirtyConflict() {
+		return
+			MessageDialog.openQuestion
+				(getSite().getShell(),
+				 getString("_UI_FileConflict_label"),
+				 getString("_WARN_FileConflict"));
+	}
+
+	/**
+	 * This creates a model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtDatatypesEditor() {
+		super();
+		initializeEditingDomain();
+	}
+
+	/**
+	 * This sets up the editing domain for the model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void initializeEditingDomain() {
+		// Create an adapter factory that yields item providers.
+		//
+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ExtDatatypesItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ExtensionModelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new BindingItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new CoreModelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new AuthorizationItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new DatatypesItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ValidationItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new VisibilityItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+		// Create the command stack that will notify this editor as commands are executed.
+		//
+		BasicCommandStack commandStack = new BasicCommandStack();
+
+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+		//
+		commandStack.addCommandStackListener
+			(new CommandStackListener() {
+				 public void commandStackChanged(final EventObject event) {
+					 getContainer().getDisplay().asyncExec
+						 (new Runnable() {
+							  public void run() {
+								  firePropertyChange(IEditorPart.PROP_DIRTY);
+
+								  // Try to select the affected objects.
+								  //
+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+								  if (mostRecentCommand != null) {
+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+								  }
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
+								  }
+							  }
+						  });
+				 }
+			 });
+
+		// Create the editing domain with a special command stack.
+		//
+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+	}
+
+	/**
+	 * This is here for the listener to be able to call it.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+			@Override
+	protected void firePropertyChange(int action) {
+		super.firePropertyChange(action);
+	}
+
+	/**
+	 * This sets the selection into whichever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectionToViewer(Collection<?> collection) {
+		final Collection<?> theSelection = collection;
+		// Make sure it's okay.
+		//
+		if (theSelection != null && !theSelection.isEmpty()) {
+			Runnable runnable =
+				new Runnable() {
+					public void run() {
+						// Try to select the items in the current content viewer of the editor.
+						//
+						if (currentViewer != null) {
+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+						}
+					}
+				};
+			getSite().getShell().getDisplay().asyncExec(runnable);
+		}
+	}
+
+	/**
+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+			super(adapterFactory);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getElements(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getChildren(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public boolean hasChildren(Object object) {
+			Object parent = super.getParent(object);
+			return parent != null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object getParent(Object object) {
+			return null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewerPane(ViewerPane viewerPane) {
+		if (currentViewerPane != viewerPane) {
+			if (currentViewerPane != null) {
+				currentViewerPane.showFocus(false);
+			}
+			currentViewerPane = viewerPane;
+		}
+		setCurrentViewer(currentViewerPane.getViewer());
+	}
+
+	/**
+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+	 * is the current one.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewer(Viewer viewer) {
+		// If it is changing...
+		//
+		if (currentViewer != viewer) {
+			if (selectionChangedListener == null) {
+				// Create the listener on demand.
+				//
+				selectionChangedListener =
+					new ISelectionChangedListener() {
+						// This just notifies those things that are affected by the section.
+						//
+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+							setSelection(selectionChangedEvent.getSelection());
+						}
+					};
+			}
+
+			// Stop listening to the old one.
+			//
+			if (currentViewer != null) {
+				currentViewer.removeSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Start listening to the new one.
+			//
+			if (viewer != null) {
+				viewer.addSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Remember it.
+			//
+			currentViewer = viewer;
+
+			// Set the editors selection based on the current viewer's selection.
+			//
+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+		}
+	}
+
+	/**
+	 * This returns the viewer as required by the {@link IViewerProvider} interface.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Viewer getViewer() {
+		return currentViewer;
+	}
+
+	/**
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createContextMenuFor(StructuredViewer viewer) {
+		MenuManager contextMenu = new MenuManager("#PopUp");
+		contextMenu.add(new Separator("additions"));
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(this);
+		Menu menu= contextMenu.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+	}
+
+	/**
+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createModel() {
+		URI resourceURI = EditUIUtil.getURI(getEditorInput());
+		Exception exception = null;
+		Resource resource = null;
+		try {
+			// Load the resource through the editing domain.
+			//
+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+		}
+		catch (Exception e) {
+			exception = e;
+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+		}
+
+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+		if (diagnostic.getSeverity() != Diagnostic.OK) {
+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
+		}
+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+	}
+
+	/**
+	 * Returns a diagnostic describing the errors and warnings listed in the resource
+	 * and the specified exception (if any).
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+		if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+			BasicDiagnostic basicDiagnostic =
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.extension.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object [] { exception == null ? (Object)resource : exception });
+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+			return basicDiagnostic;
+		}
+		else if (exception != null) {
+			return
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.extension.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object[] { exception });
+		}
+		else {
+			return Diagnostic.OK_INSTANCE;
+		}
+	}
+
+	/**
+	 * This is the method used by the framework to install your own controls.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void createPages() {
+		// Creates the model from the editor input
+		//
+		createModel();
+
+		// Only creates the other pages if there is something that can be edited
+		//
+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+			// Create a page for the selection tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtDatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				selectionViewer = (TreeViewer)viewerPane.getViewer();
+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				selectionViewer.setInput(editingDomain.getResourceSet());
+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+				viewerPane.setTitle(editingDomain.getResourceSet());
+
+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(selectionViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+			}
+
+			// Create a page for the parent tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtDatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				parentViewer = (TreeViewer)viewerPane.getViewer();
+				parentViewer.setAutoExpandLevel(30);
+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(parentViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ParentPage_label"));
+			}
+
+			// This is the page for the list viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtDatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new ListViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				listViewer = (ListViewer)viewerPane.getViewer();
+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(listViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ListPage_label"));
+			}
+
+			// This is the page for the tree viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtDatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				treeViewer = (TreeViewer)viewerPane.getViewer();
+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(treeViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreePage_label"));
+			}
+
+			// This is the page for the table viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtDatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TableViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				tableViewer = (TableViewer)viewerPane.getViewer();
+
+				Table table = tableViewer.getTable();
+				TableLayout layout = new TableLayout();
+				table.setLayout(layout);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
+
+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(3, 100, true));
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+
+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(2, 100, true));
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+
+				tableViewer.setColumnProperties(new String [] {"a", "b"});
+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(tableViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TablePage_label"));
+			}
+
+			// This is the page for the table tree viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtDatatypesEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+				Tree tree = treeViewerWithColumns.getTree();
+				tree.setLayoutData(new FillLayout());
+				tree.setHeaderVisible(true);
+				tree.setLinesVisible(true);
+
+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+				objectColumn.setWidth(250);
+
+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+				selfColumn.setWidth(200);
+
+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(treeViewerWithColumns);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+			}
+
+			getSite().getShell().getDisplay().asyncExec
+				(new Runnable() {
+					 public void run() {
+						 setActivePage(0);
+					 }
+				 });
+		}
+
+		// Ensures that this editor will only display the page's tab
+		// area if there are more than one page
+		//
+		getContainer().addControlListener
+			(new ControlAdapter() {
+				boolean guard = false;
+				@Override
+				public void controlResized(ControlEvent event) {
+					if (!guard) {
+						guard = true;
+						hideTabs();
+						guard = false;
+					}
+				}
+			 });
+
+		getSite().getShell().getDisplay().asyncExec
+			(new Runnable() {
+				 public void run() {
+					 updateProblemIndication();
+				 }
+			 });
+	}
+
+	/**
+	 * If there is just one page in the multi-page editor part,
+	 * this hides the single tab at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void hideTabs() {
+		if (getPageCount() <= 1) {
+			setPageText(0, "");
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(1);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y + 6);
+			}
+		}
+	}
+
+	/**
+	 * If there is more than one page in the multi-page editor part,
+	 * this shows the tabs at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void showTabs() {
+		if (getPageCount() > 1) {
+			setPageText(0, getString("_UI_SelectionPage_label"));
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y - 6);
+			}
+		}
+	}
+
+	/**
+	 * This is used to track the active viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void pageChange(int pageIndex) {
+		super.pageChange(pageIndex);
+
+		if (contentOutlinePage != null) {
+			handleContentOutlineSelection(contentOutlinePage.getSelection());
+		}
+	}
+
+	/**
+	 * This is how the framework determines which interfaces we implement.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("rawtypes")
+	@Override
+	public Object getAdapter(Class key) {
+		if (key.equals(IContentOutlinePage.class)) {
+			return showOutlineView() ? getContentOutlinePage() : null;
+		}
+		else if (key.equals(IPropertySheetPage.class)) {
+			return getPropertySheetPage();
+		}
+		else if (key.equals(IGotoMarker.class)) {
+			return this;
+		}
+		else {
+			return super.getAdapter(key);
+		}
+	}
+
+	/**
+	 * This accesses a cached version of the content outliner.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IContentOutlinePage getContentOutlinePage() {
+		if (contentOutlinePage == null) {
+			// The content outline is just a tree.
+			//
+			class MyContentOutlinePage extends ContentOutlinePage {
+				@Override
+				public void createControl(Composite parent) {
+					super.createControl(parent);
+					contentOutlineViewer = getTreeViewer();
+					contentOutlineViewer.addSelectionChangedListener(this);
+
+					// Set up the tree viewer.
+					//
+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+					contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+					// Make sure our popups work.
+					//
+					createContextMenuFor(contentOutlineViewer);
+
+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+					  // Select the root object in the view.
+					  //
+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+					}
+				}
+
+				@Override
+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+					super.makeContributions(menuManager, toolBarManager, statusLineManager);
+					contentOutlineStatusLineManager = statusLineManager;
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			}
+
+			contentOutlinePage = new MyContentOutlinePage();
+
+			// Listen to selection so that we can handle it is a special way.
+			//
+			contentOutlinePage.addSelectionChangedListener
+				(new ISelectionChangedListener() {
+					 // This ensures that we handle selections correctly.
+					 //
+					 public void selectionChanged(SelectionChangedEvent event) {
+						 handleContentOutlineSelection(event.getSelection());
+					 }
+				 });
+		}
+
+		return contentOutlinePage;
+	}
+
+	/**
+	 * This accesses a cached version of the property sheet.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPropertySheetPage getPropertySheetPage() {
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					ExtDatatypesEditor.this.setSelectionToViewer(selection);
+					ExtDatatypesEditor.this.setFocus();
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
+
+		return propertySheetPage;
+	}
+
+	/**
+	 * This deals with how we want selection in the outliner to affect the other views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void handleContentOutlineSelection(ISelection selection) {
+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+			if (selectedElements.hasNext()) {
+				// Get the first selected element.
+				//
+				Object selectedElement = selectedElements.next();
+
+				// If it's the selection viewer, then we want it to select the same selection as this selection.
+				//
+				if (currentViewerPane.getViewer() == selectionViewer) {
+					ArrayList<Object> selectionList = new ArrayList<Object>();
+					selectionList.add(selectedElement);
+					while (selectedElements.hasNext()) {
+						selectionList.add(selectedElements.next());
+					}
+
+					// Set the selection to the widget.
+					//
+					selectionViewer.setSelection(new StructuredSelection(selectionList));
+				}
+				else {
+					// Set the input to the widget.
+					//
+					if (currentViewerPane.getViewer().getInput() != selectedElement) {
+						currentViewerPane.getViewer().setInput(selectedElement);
+						currentViewerPane.setTitle(selectedElement);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isDirty() {
+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply saves the model file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSave(IProgressMonitor progressMonitor) {
+		// Save only resources that have actually changed.
+		//
+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+		// Do the work within an operation because this is a long running activity that modifies the workbench.
+		//
+		WorkspaceModifyOperation operation =
+			new WorkspaceModifyOperation() {
+				// This is the method that gets invoked when the operation runs.
+				//
+				@Override
+				public void execute(IProgressMonitor monitor) {
+					// Save the resources to the file system.
+					//
+					boolean first = true;
+					for (Resource resource : editingDomain.getResourceSet().getResources()) {
+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+							try {
+								long timeStamp = resource.getTimeStamp();
+								resource.save(saveOptions);
+								if (resource.getTimeStamp() != timeStamp) {
+									savedResources.add(resource);
+								}
+							}
+							catch (Exception exception) {
+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+							}
+							first = false;
+						}
+					}
+				}
+			};
+
+		updateProblemIndication = false;
+		try {
+			// This runs the options, and shows progress.
+			//
+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+			// Refresh the necessary state.
+			//
+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+			firePropertyChange(IEditorPart.PROP_DIRTY);
+		}
+		catch (Exception exception) {
+			// Something went wrong that shouldn't.
+			//
+			ExtensionEditorPlugin.INSTANCE.log(exception);
+		}
+		updateProblemIndication = true;
+		updateProblemIndication();
+	}
+
+	/**
+	 * This returns whether something has been persisted to the URI of the specified resource.
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean isPersisted(Resource resource) {
+		boolean result = false;
+		try {
+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+			if (stream != null) {
+				result = true;
+				stream.close();
+			}
+		}
+		catch (IOException e) {
+			// Ignore
+		}
+		return result;
+	}
+
+	/**
+	 * This always returns true because it is not currently supported.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return true;
+	}
+
+	/**
+	 * This also changes the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSaveAs() {
+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+		saveAsDialog.open();
+		IPath path = saveAsDialog.getResult();
+		if (path != null) {
+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			if (file != null) {
+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+			}
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void doSaveAs(URI uri, IEditorInput editorInput) {
+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		IProgressMonitor progressMonitor =
+			getActionBars().getStatusLineManager() != null ?
+				getActionBars().getStatusLineManager().getProgressMonitor() :
+				new NullProgressMonitor();
+		doSave(progressMonitor);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void gotoMarker(IMarker marker) {
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
+		}
+	}
+
+	/**
+	 * This is called during startup.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput editorInput) {
+		setSite(site);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		site.setSelectionProvider(this);
+		site.getPage().addPartListener(partListener);
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFocus() {
+		if (currentViewerPane != null) {
+			currentViewerPane.setFocus();
+		}
+		else {
+			getControl(getActivePage()).setFocus();
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.add(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.remove(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISelection getSelection() {
+		return editorSelection;
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+	 * Calling this result will notify the listeners.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelection(ISelection selection) {
+		editorSelection = selection;
+
+		for (ISelectionChangedListener listener : selectionChangedListeners) {
+			listener.selectionChanged(new SelectionChangedEvent(this, selection));
+		}
+		setStatusLineManager(selection);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStatusLineManager(ISelection selection) {
+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+		if (statusLineManager != null) {
+			if (selection instanceof IStructuredSelection) {
+				Collection<?> collection = ((IStructuredSelection)selection).toList();
+				switch (collection.size()) {
+					case 0: {
+						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+						break;
+					}
+					case 1: {
+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+						break;
+					}
+					default: {
+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+						break;
+					}
+				}
+			}
+			else {
+				statusLineManager.setMessage("");
+			}
+		}
+	}
+
+	/**
+	 * This looks up a string in the plugin's plugin.properties file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key) {
+		return ExtensionEditorPlugin.INSTANCE.getString(key);
+	}
+
+	/**
+	 * This looks up a string in plugin.properties, making a substitution.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key, Object s1) {
+		return ExtensionEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void menuAboutToShow(IMenuManager menuManager) {
+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomainActionBarContributor getActionBarContributor() {
+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IActionBars getActionBars() {
+		return getActionBarContributor().getActionBars();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdapterFactory getAdapterFactory() {
+		return adapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void dispose() {
+		updateProblemIndication = false;
+
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+		getSite().getPage().removePartListener(partListener);
+
+		adapterFactory.dispose();
+
+		if (getActionBarContributor().getActiveEditor() == this) {
+			getActionBarContributor().setActiveEditor(null);
+		}
+
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
+			propertySheetPage.dispose();
+		}
+
+		if (contentOutlinePage != null) {
+			contentOutlinePage.dispose();
+		}
+
+		super.dispose();
+	}
+
+	/**
+	 * Returns whether the outline view should be presented to the user.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean showOutlineView() {
+		return true;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtDatatypesModelWizard.java b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtDatatypesModelWizard.java
new file mode 100644
index 0000000..806f1dd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtDatatypesModelWizard.java
@@ -0,0 +1,639 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.provider.ExtensionEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtDatatypesModelWizard extends Wizard implements INewWizard {
+	/**
+	 * The supported extensions for created files.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<String> FILE_EXTENSIONS =
+		Collections.unmodifiableList(Arrays.asList(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtDatatypesEditorFilenameExtensions").split("\\s*,\\s*")));
+
+	/**
+	 * A formatted list of supported file extensions, suitable for display.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String FORMATTED_FILE_EXTENSIONS =
+		ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtDatatypesEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+	/**
+	 * This caches an instance of the model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtDatatypesPackage extDatatypesPackage = ExtDatatypesPackage.eINSTANCE;
+
+	/**
+	 * This caches an instance of the model factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtDatatypesFactory extDatatypesFactory = extDatatypesPackage.getExtDatatypesFactory();
+
+	/**
+	 * This is the file creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtDatatypesModelWizardNewFileCreationPage newFileCreationPage;
+
+	/**
+	 * This is the initial object creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtDatatypesModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+	/**
+	 * Remember the selection during initialization for populating the default container.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStructuredSelection selection;
+
+	/**
+	 * Remember the workbench during initialization.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IWorkbench workbench;
+
+	/**
+	 * Caches the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<String> initialObjectNames;
+
+	/**
+	 * This just records the information.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle(ExtensionEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ExtensionEditorPlugin.INSTANCE.getImage("full/wizban/NewExtDatatypes")));
+	}
+
+	/**
+	 * Returns the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<String> getInitialObjectNames() {
+		if (initialObjectNames == null) {
+			initialObjectNames = new ArrayList<String>();
+			for (EClassifier eClassifier : extDatatypesPackage.getEClassifiers()) {
+				if (eClassifier instanceof EClass) {
+					EClass eClass = (EClass)eClassifier;
+					if (!eClass.isAbstract()) {
+						initialObjectNames.add(eClass.getName());
+					}
+				}
+			}
+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+		}
+		return initialObjectNames;
+	}
+
+	/**
+	 * Create a new model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EObject createInitialModel() {
+		EClass eClass = (EClass)extDatatypesPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+		EObject rootObject = extDatatypesFactory.create(eClass);
+		return rootObject;
+	}
+
+	/**
+	 * Do the work after everything is specified.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean performFinish() {
+		try {
+			// Remember the file.
+			//
+			final IFile modelFile = getModelFile();
+
+			// Do the work within an operation.
+			//
+			WorkspaceModifyOperation operation =
+				new WorkspaceModifyOperation() {
+					@Override
+					protected void execute(IProgressMonitor progressMonitor) {
+						try {
+							// Create a resource set
+							//
+							ResourceSet resourceSet = new ResourceSetImpl();
+
+							// Get the URI of the model file.
+							//
+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+							// Create a resource for this file.
+							//
+							Resource resource = resourceSet.createResource(fileURI);
+
+							// Add the initial model object to the contents.
+							//
+							EObject rootObject = createInitialModel();
+							if (rootObject != null) {
+								resource.getContents().add(rootObject);
+							}
+
+							// Save the contents of the resource to the file system.
+							//
+							Map<Object, Object> options = new HashMap<Object, Object>();
+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+							resource.save(options);
+						}
+						catch (Exception exception) {
+							ExtensionEditorPlugin.INSTANCE.log(exception);
+						}
+						finally {
+							progressMonitor.done();
+						}
+					}
+				};
+
+			getContainer().run(false, false, operation);
+
+			// Select the new file resource in the current view.
+			//
+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			final IWorkbenchPart activePart = page.getActivePart();
+			if (activePart instanceof ISetSelectionTarget) {
+				final ISelection targetSelection = new StructuredSelection(modelFile);
+				getShell().getDisplay().asyncExec
+					(new Runnable() {
+						 public void run() {
+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+						 }
+					 });
+			}
+
+			// Open an editor on the new file.
+			//
+			try {
+				page.openEditor
+					(new FileEditorInput(modelFile),
+					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
+			}
+			catch (PartInitException exception) {
+				MessageDialog.openError(workbenchWindow.getShell(), ExtensionEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+				return false;
+			}
+
+			return true;
+		}
+		catch (Exception exception) {
+			ExtensionEditorPlugin.INSTANCE.log(exception);
+			return false;
+		}
+	}
+
+	/**
+	 * This is the one page of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ExtDatatypesModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ExtDatatypesModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+			super(pageId, selection);
+		}
+
+		/**
+		 * The framework calls this to see if the file is correct.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		protected boolean validatePage() {
+			if (super.validatePage()) {
+				String extension = new Path(getFileName()).getFileExtension();
+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+					setErrorMessage(ExtensionEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+					return false;
+				}
+				return true;
+			}
+			return false;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public IFile getModelFile() {
+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+		}
+	}
+
+	/**
+	 * This is the page where the type of object to create is selected.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ExtDatatypesModelWizardInitialObjectCreationPage extends WizardPage {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo initialObjectField;
+
+		/**
+		 * @generated
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 */
+		protected List<String> encodings;
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo encodingField;
+
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ExtDatatypesModelWizardInitialObjectCreationPage(String pageId) {
+			super(pageId);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public void createControl(Composite parent) {
+			Composite composite = new Composite(parent, SWT.NONE);
+			{
+				GridLayout layout = new GridLayout();
+				layout.numColumns = 1;
+				layout.verticalSpacing = 12;
+				composite.setLayout(layout);
+
+				GridData data = new GridData();
+				data.verticalAlignment = GridData.FILL;
+				data.grabExcessVerticalSpace = true;
+				data.horizontalAlignment = GridData.FILL;
+				composite.setLayoutData(data);
+			}
+
+			Label containerLabel = new Label(composite, SWT.LEFT);
+			{
+				containerLabel.setText(ExtensionEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				containerLabel.setLayoutData(data);
+			}
+
+			initialObjectField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				initialObjectField.setLayoutData(data);
+			}
+
+			for (String objectName : getInitialObjectNames()) {
+				initialObjectField.add(getLabel(objectName));
+			}
+
+			if (initialObjectField.getItemCount() == 1) {
+				initialObjectField.select(0);
+			}
+			initialObjectField.addModifyListener(validator);
+
+			Label encodingLabel = new Label(composite, SWT.LEFT);
+			{
+				encodingLabel.setText(ExtensionEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				encodingLabel.setLayoutData(data);
+			}
+			encodingField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				encodingField.setLayoutData(data);
+			}
+
+			for (String encoding : getEncodings()) {
+				encodingField.add(encoding);
+			}
+
+			encodingField.select(0);
+			encodingField.addModifyListener(validator);
+
+			setPageComplete(validatePage());
+			setControl(composite);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected ModifyListener validator =
+			new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					setPageComplete(validatePage());
+				}
+			};
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected boolean validatePage() {
+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public void setVisible(boolean visible) {
+			super.setVisible(visible);
+			if (visible) {
+				if (initialObjectField.getItemCount() == 1) {
+					initialObjectField.clearSelection();
+					encodingField.setFocus();
+				}
+				else {
+					encodingField.clearSelection();
+					initialObjectField.setFocus();
+				}
+			}
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getInitialObjectName() {
+			String label = initialObjectField.getText();
+
+			for (String name : getInitialObjectNames()) {
+				if (getLabel(name).equals(label)) {
+					return name;
+				}
+			}
+			return null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getEncoding() {
+			return encodingField.getText();
+		}
+
+		/**
+		 * Returns the label for the specified type name.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected String getLabel(String typeName) {
+			try {
+				return ExtensionEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+			}
+			catch(MissingResourceException mre) {
+				ExtensionEditorPlugin.INSTANCE.log(mre);
+			}
+			return typeName;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Collection<String> getEncodings() {
+			if (encodings == null) {
+				encodings = new ArrayList<String>();
+				for (StringTokenizer stringTokenizer = new StringTokenizer(ExtensionEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+					encodings.add(stringTokenizer.nextToken());
+				}
+			}
+			return encodings;
+		}
+	}
+
+	/**
+	 * The framework calls this to create the contents of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+		@Override
+	public void addPages() {
+		// Create a page, set the title, and the initial model file name.
+		//
+		newFileCreationPage = new ExtDatatypesModelWizardNewFileCreationPage("Whatever", selection);
+		newFileCreationPage.setTitle(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtDatatypesModelWizard_label"));
+		newFileCreationPage.setDescription(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtDatatypesModelWizard_description"));
+		newFileCreationPage.setFileName(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtDatatypesEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+		addPage(newFileCreationPage);
+
+		// Try and get the resource selection to determine a current directory for the file dialog.
+		//
+		if (selection != null && !selection.isEmpty()) {
+			// Get the resource...
+			//
+			Object selectedElement = selection.iterator().next();
+			if (selectedElement instanceof IResource) {
+				// Get the resource parent, if its a file.
+				//
+				IResource selectedResource = (IResource)selectedElement;
+				if (selectedResource.getType() == IResource.FILE) {
+					selectedResource = selectedResource.getParent();
+				}
+
+				// This gives us a directory...
+				//
+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+					// Set this for the container.
+					//
+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+					// Make up a unique new name here.
+					//
+					String defaultModelBaseFilename = ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtDatatypesEditorFilenameDefaultBase");
+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+					}
+					newFileCreationPage.setFileName(modelFilename);
+				}
+			}
+		}
+		initialObjectCreationPage = new ExtDatatypesModelWizardInitialObjectCreationPage("Whatever2");
+		initialObjectCreationPage.setTitle(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtDatatypesModelWizard_label"));
+		initialObjectCreationPage.setDescription(ExtensionEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+		addPage(initialObjectCreationPage);
+	}
+
+	/**
+	 * Get the file from the page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IFile getModelFile() {
+		return newFileCreationPage.getModelFile();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtensionEditorPlugin.java b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtensionEditorPlugin.java
new file mode 100644
index 0000000..400e46d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/presentation/ExtensionEditorPlugin.java
@@ -0,0 +1,105 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.ECViewCoreEditPlugin;
+
+/**
+ * This is the central singleton for the Extension editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ExtensionEditorPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final ExtensionEditorPlugin INSTANCE = new ExtensionEditorPlugin();
+	
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtensionEditorPlugin() {
+		super
+			(new ResourceLocator [] {
+				ECViewCoreEditPlugin.INSTANCE,
+			});
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+	
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+	
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipseUIPlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+	
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/extension/presentation/ExtensionModelActionBarContributor.java b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/extension/presentation/ExtensionModelActionBarContributor.java
new file mode 100644
index 0000000..5b51050
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/extension/presentation/ExtensionModelActionBarContributor.java
@@ -0,0 +1,436 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation.ExtensionEditorPlugin;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the ExtensionModel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtensionModelActionBarContributor
+	extends EditingDomainActionBarContributor
+	implements ISelectionChangedListener {
+	/**
+	 * This keeps track of the active editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IEditorPart activeEditorPart;
+
+	/**
+	 * This keeps track of the current selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionProvider selectionProvider;
+
+	/**
+	 * This action opens the Properties view.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction showPropertiesViewAction =
+		new Action(ExtensionEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+			@Override
+			public void run() {
+				try {
+					getPage().showView("org.eclipse.ui.views.PropertySheet");
+				}
+				catch (PartInitException exception) {
+					ExtensionEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * This action refreshes the viewer of the current editor if the editor
+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction refreshViewerAction =
+		new Action(ExtensionEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+			@Override
+			public boolean isEnabled() {
+				return activeEditorPart instanceof IViewerProvider;
+			}
+
+			@Override
+			public void run() {
+				if (activeEditorPart instanceof IViewerProvider) {
+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+					if (viewer != null) {
+						viewer.refresh();
+					}
+				}
+			}
+		};
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createChildActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createChildMenuManager;
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createSiblingActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createSiblingMenuManager;
+
+	/**
+	 * This creates an instance of the contributor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtensionModelActionBarContributor() {
+		super(ADDITIONS_LAST_STYLE);
+		loadResourceAction = new LoadResourceAction();
+		validateAction = new ValidateAction();
+		controlAction = new ControlAction();
+	}
+
+	/**
+	 * This adds Separators for editor additions to the tool bar.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToToolBar(IToolBarManager toolBarManager) {
+		toolBarManager.add(new Separator("extensionmodel-settings"));
+		toolBarManager.add(new Separator("extensionmodel-additions"));
+	}
+
+	/**
+	 * This adds to the menu bar a menu and some separators for editor additions,
+	 * as well as the sub-menus for object creation items.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToMenu(IMenuManager menuManager) {
+		super.contributeToMenu(menuManager);
+
+		IMenuManager submenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtensionModelEditor_menu"), "org.eclipse.osbp.ecview.core.extension.model.extensionMenuID");
+		menuManager.insertAfter("additions", submenuManager);
+		submenuManager.add(new Separator("settings"));
+		submenuManager.add(new Separator("actions"));
+		submenuManager.add(new Separator("additions"));
+		submenuManager.add(new Separator("additions-end"));
+
+		// Prepare for CreateChild item addition or removal.
+		//
+		createChildMenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		submenuManager.insertBefore("additions", createChildMenuManager);
+
+		// Prepare for CreateSibling item addition or removal.
+		//
+		createSiblingMenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+		// Force an update because Eclipse hides empty menus now.
+		//
+		submenuManager.addMenuListener
+			(new IMenuListener() {
+				 public void menuAboutToShow(IMenuManager menuManager) {
+					 menuManager.updateAll(true);
+				 }
+			 });
+
+		addGlobalActions(submenuManager);
+	}
+
+	/**
+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setActiveEditor(IEditorPart part) {
+		super.setActiveEditor(part);
+		activeEditorPart = part;
+
+		// Switch to the new selection provider.
+		//
+		if (selectionProvider != null) {
+			selectionProvider.removeSelectionChangedListener(this);
+		}
+		if (part == null) {
+			selectionProvider = null;
+		}
+		else {
+			selectionProvider = part.getSite().getSelectionProvider();
+			selectionProvider.addSelectionChangedListener(this);
+
+			// Fake a selection changed event to update the menus.
+			//
+			if (selectionProvider.getSelection() != null) {
+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+			}
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+	 * that can be added to the selected object and updating the menus accordingly.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		// Remove any menu items for old selection.
+		//
+		if (createChildMenuManager != null) {
+			depopulateManager(createChildMenuManager, createChildActions);
+		}
+		if (createSiblingMenuManager != null) {
+			depopulateManager(createSiblingMenuManager, createSiblingActions);
+		}
+
+		// Query the new selection for appropriate new child/sibling descriptors
+		//
+		Collection<?> newChildDescriptors = null;
+		Collection<?> newSiblingDescriptors = null;
+
+		ISelection selection = event.getSelection();
+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+			Object object = ((IStructuredSelection)selection).getFirstElement();
+
+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+			newChildDescriptors = domain.getNewChildDescriptors(object, null);
+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+		}
+
+		// Generate actions for selection; populate and redraw the menus.
+		//
+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+		if (createChildMenuManager != null) {
+			populateManager(createChildMenuManager, createChildActions, null);
+			createChildMenuManager.update(true);
+		}
+		if (createSiblingMenuManager != null) {
+			populateManager(createSiblingMenuManager, createSiblingActions, null);
+			createSiblingMenuManager.update(true);
+		}
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+	 * by inserting them before the specified contribution item <code>contributionID</code>.
+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+		if (actions != null) {
+			for (IAction action : actions) {
+				if (contributionID != null) {
+					manager.insertBefore(contributionID, action);
+				}
+				else {
+					manager.add(action);
+				}
+			}
+		}
+	}
+		
+	/**
+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+		if (actions != null) {
+			IContributionItem[] items = manager.getItems();
+			for (int i = 0; i < items.length; i++) {
+				// Look into SubContributionItems
+				//
+				IContributionItem contributionItem = items[i];
+				while (contributionItem instanceof SubContributionItem) {
+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+				}
+
+				// Delete the ActionContributionItems with matching action.
+				//
+				if (contributionItem instanceof ActionContributionItem) {
+					IAction action = ((ActionContributionItem)contributionItem).getAction();
+					if (actions.contains(action)) {
+						manager.remove(contributionItem);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This populates the pop-up menu before it appears.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void menuAboutToShow(IMenuManager menuManager) {
+		super.menuAboutToShow(menuManager);
+		MenuManager submenuManager = null;
+
+		submenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		populateManager(submenuManager, createChildActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+
+		submenuManager = new MenuManager(ExtensionEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		populateManager(submenuManager, createSiblingActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+	}
+
+	/**
+	 * This inserts global actions before the "additions-end" separator.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void addGlobalActions(IMenuManager menuManager) {
+		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
+		menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+		super.addGlobalActions(menuManager);
+	}
+
+	/**
+	 * This ensures that a delete action will clean up all references to deleted objects.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean removeAllReferencesOnDelete() {
+		return true;
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/extension/presentation/ExtensionModelEditor.java b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/extension/presentation/ExtensionModelEditor.java
new file mode 100644
index 0000000..a7a5734
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/extension/presentation/ExtensionModelEditor.java
@@ -0,0 +1,1852 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.provider.ExtensionModelItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.provider.BindingItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.core.authorization.provider.AuthorizationItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.core.provider.CoreModelItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.provider.DatatypesItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.provider.ValidationItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.common.model.visibility.provider.VisibilityItemProviderAdapterFactory;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation.ExtensionEditorPlugin;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.provider.ExtDatatypesItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+
+/**
+ * This is an example of a ExtensionModel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtensionModelEditor
+	extends MultiPageEditorPart
+	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+	/**
+	 * This keeps track of the editing domain that is used to track all changes to the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AdapterFactoryEditingDomain editingDomain;
+
+	/**
+	 * This is the one adapter factory used for providing views of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory adapterFactory;
+
+	/**
+	 * This is the content outline page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IContentOutlinePage contentOutlinePage;
+
+	/**
+	 * This is a kludge...
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStatusLineManager contentOutlineStatusLineManager;
+
+	/**
+	 * This is the content outline page's viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer contentOutlineViewer;
+
+	/**
+	 * This is the property sheet page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+	/**
+	 * This is the viewer that shadows the selection in the content outline.
+	 * The parent relation must be correctly defined for this to work.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer selectionViewer;
+
+	/**
+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer parentViewer;
+
+	/**
+	 * This shows how a tree view works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewer;
+
+	/**
+	 * This shows how a list view works.
+	 * A list viewer doesn't support icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ListViewer listViewer;
+
+	/**
+	 * This shows how a table view works.
+	 * A table can be used as a list with icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableViewer tableViewer;
+
+	/**
+	 * This shows how a tree view with columns works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewerWithColumns;
+
+	/**
+	 * This keeps track of the active viewer pane, in the book.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewerPane currentViewerPane;
+
+	/**
+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Viewer currentViewer;
+
+	/**
+	 * This listens to which ever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionChangedListener selectionChangedListener;
+
+	/**
+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+	/**
+	 * This keeps track of the selection of the editor as a whole.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+	/**
+	 * The MarkerHelper is responsible for creating workspace resource markers presented
+	 * in Eclipse's Problems View.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+	/**
+	 * This listens for when the outline becomes active
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPartListener partListener =
+		new IPartListener() {
+			public void partActivated(IWorkbenchPart p) {
+				if (p instanceof ContentOutline) {
+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+						getActionBarContributor().setActiveEditor(ExtensionModelEditor.this);
+
+						setCurrentViewer(contentOutlineViewer);
+					}
+				}
+				else if (p instanceof PropertySheet) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+						getActionBarContributor().setActiveEditor(ExtensionModelEditor.this);
+						handleActivate();
+					}
+				}
+				else if (p == ExtensionModelEditor.this) {
+					handleActivate();
+				}
+			}
+			public void partBroughtToTop(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partClosed(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partDeactivated(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partOpened(IWorkbenchPart p) {
+				// Ignore.
+			}
+		};
+
+	/**
+	 * Resources that have been removed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been changed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been saved.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+	/**
+	 * Map to store the diagnostic associated with a resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+	/**
+	 * Controls whether the problem indication should be updated.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean updateProblemIndication = true;
+
+	/**
+	 * Adapter used to update the problem indication when resources are demanded loaded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EContentAdapter problemIndicationAdapter =
+		new EContentAdapter() {
+			@Override
+			public void notifyChanged(Notification notification) {
+				if (notification.getNotifier() instanceof Resource) {
+					switch (notification.getFeatureID(Resource.class)) {
+						case Resource.RESOURCE__IS_LOADED:
+						case Resource.RESOURCE__ERRORS:
+						case Resource.RESOURCE__WARNINGS: {
+							Resource resource = (Resource)notification.getNotifier();
+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+							if (diagnostic.getSeverity() != Diagnostic.OK) {
+								resourceToDiagnosticMap.put(resource, diagnostic);
+							}
+							else {
+								resourceToDiagnosticMap.remove(resource);
+							}
+
+							if (updateProblemIndication) {
+								getSite().getShell().getDisplay().asyncExec
+									(new Runnable() {
+										 public void run() {
+											 updateProblemIndication();
+										 }
+									 });
+							}
+							break;
+						}
+					}
+				}
+				else {
+					super.notifyChanged(notification);
+				}
+			}
+
+			@Override
+			protected void setTarget(Resource target) {
+				basicSetTarget(target);
+			}
+
+			@Override
+			protected void unsetTarget(Resource target) {
+				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
+			}
+		};
+
+	/**
+	 * This listens for workspace changes.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IResourceChangeListener resourceChangeListener =
+		new IResourceChangeListener() {
+			public void resourceChanged(IResourceChangeEvent event) {
+				IResourceDelta delta = event.getDelta();
+				try {
+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+						protected ResourceSet resourceSet = editingDomain.getResourceSet();
+						protected Collection<Resource> changedResources = new ArrayList<Resource>();
+						protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+						public boolean visit(IResourceDelta delta) {
+							if (delta.getResource().getType() == IResource.FILE) {
+								if (delta.getKind() == IResourceDelta.REMOVED ||
+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+									if (resource != null) {
+										if (delta.getKind() == IResourceDelta.REMOVED) {
+											removedResources.add(resource);
+										}
+										else if (!savedResources.remove(resource)) {
+											changedResources.add(resource);
+										}
+									}
+								}
+								return false;
+							}
+
+							return true;
+						}
+
+						public Collection<Resource> getChangedResources() {
+							return changedResources;
+						}
+
+						public Collection<Resource> getRemovedResources() {
+							return removedResources;
+						}
+					}
+
+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+					delta.accept(visitor);
+
+					if (!visitor.getRemovedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 removedResources.addAll(visitor.getRemovedResources());
+									 if (!isDirty()) {
+										 getSite().getPage().closeEditor(ExtensionModelEditor.this, false);
+									 }
+								 }
+							 });
+					}
+
+					if (!visitor.getChangedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 changedResources.addAll(visitor.getChangedResources());
+									 if (getSite().getPage().getActiveEditor() == ExtensionModelEditor.this) {
+										 handleActivate();
+									 }
+								 }
+							 });
+					}
+				}
+				catch (CoreException exception) {
+					ExtensionEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * Handles activation of the editor or it's associated views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleActivate() {
+		// Recompute the read only state.
+		//
+		if (editingDomain.getResourceToReadOnlyMap() != null) {
+		  editingDomain.getResourceToReadOnlyMap().clear();
+
+		  // Refresh any actions that may become enabled or disabled.
+		  //
+		  setSelection(getSelection());
+		}
+
+		if (!removedResources.isEmpty()) {
+			if (handleDirtyConflict()) {
+				getSite().getPage().closeEditor(ExtensionModelEditor.this, false);
+			}
+			else {
+				removedResources.clear();
+				changedResources.clear();
+				savedResources.clear();
+			}
+		}
+		else if (!changedResources.isEmpty()) {
+			changedResources.removeAll(savedResources);
+			handleChangedResources();
+			changedResources.clear();
+			savedResources.clear();
+		}
+	}
+
+	/**
+	 * Handles what to do with changed resources on activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleChangedResources() {
+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+			if (isDirty()) {
+				changedResources.addAll(editingDomain.getResourceSet().getResources());
+			}
+			editingDomain.getCommandStack().flush();
+
+			updateProblemIndication = false;
+			for (Resource resource : changedResources) {
+				if (resource.isLoaded()) {
+					resource.unload();
+					try {
+						resource.load(Collections.EMPTY_MAP);
+					}
+					catch (IOException exception) {
+						if (!resourceToDiagnosticMap.containsKey(resource)) {
+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+						}
+					}
+				}
+			}
+
+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+				setSelection(StructuredSelection.EMPTY);
+			}
+
+			updateProblemIndication = true;
+			updateProblemIndication();
+		}
+	}
+
+	/**
+	 * Updates the problems indication with the information described in the specified diagnostic.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void updateProblemIndication() {
+		if (updateProblemIndication) {
+			BasicDiagnostic diagnostic =
+				new BasicDiagnostic
+					(Diagnostic.OK,
+					 "org.eclipse.osbp.ecview.core.extension.model.editor",
+					 0,
+					 null,
+					 new Object [] { editingDomain.getResourceSet() });
+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+					diagnostic.add(childDiagnostic);
+				}
+			}
+
+			int lastEditorPage = getPageCount() - 1;
+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					setActivePage(lastEditorPage);
+				}
+			}
+			else if (diagnostic.getSeverity() != Diagnostic.OK) {
+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+				problemEditorPart.setDiagnostic(diagnostic);
+				problemEditorPart.setMarkerHelper(markerHelper);
+				try {
+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+					setPageText(lastEditorPage, problemEditorPart.getPartName());
+					setActivePage(lastEditorPage);
+					showTabs();
+				}
+				catch (PartInitException exception) {
+					ExtensionEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+
+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+				markerHelper.deleteMarkers(editingDomain.getResourceSet());
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					try {
+						markerHelper.createMarkers(diagnostic);
+					}
+					catch (CoreException exception) {
+						ExtensionEditorPlugin.INSTANCE.log(exception);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Shows a dialog that asks if conflicting changes should be discarded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean handleDirtyConflict() {
+		return
+			MessageDialog.openQuestion
+				(getSite().getShell(),
+				 getString("_UI_FileConflict_label"),
+				 getString("_WARN_FileConflict"));
+	}
+
+	/**
+	 * This creates a model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtensionModelEditor() {
+		super();
+		initializeEditingDomain();
+	}
+
+	/**
+	 * This sets up the editing domain for the model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void initializeEditingDomain() {
+		// Create an adapter factory that yields item providers.
+		//
+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ExtDatatypesItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ExtensionModelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new BindingItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new CoreModelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new AuthorizationItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new DatatypesItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ValidationItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new VisibilityItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+		// Create the command stack that will notify this editor as commands are executed.
+		//
+		BasicCommandStack commandStack = new BasicCommandStack();
+
+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+		//
+		commandStack.addCommandStackListener
+			(new CommandStackListener() {
+				 public void commandStackChanged(final EventObject event) {
+					 getContainer().getDisplay().asyncExec
+						 (new Runnable() {
+							  public void run() {
+								  firePropertyChange(IEditorPart.PROP_DIRTY);
+
+								  // Try to select the affected objects.
+								  //
+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+								  if (mostRecentCommand != null) {
+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+								  }
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
+								  }
+							  }
+						  });
+				 }
+			 });
+
+		// Create the editing domain with a special command stack.
+		//
+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+	}
+
+	/**
+	 * This is here for the listener to be able to call it.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+			@Override
+	protected void firePropertyChange(int action) {
+		super.firePropertyChange(action);
+	}
+
+	/**
+	 * This sets the selection into whichever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectionToViewer(Collection<?> collection) {
+		final Collection<?> theSelection = collection;
+		// Make sure it's okay.
+		//
+		if (theSelection != null && !theSelection.isEmpty()) {
+			Runnable runnable =
+				new Runnable() {
+					public void run() {
+						// Try to select the items in the current content viewer of the editor.
+						//
+						if (currentViewer != null) {
+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+						}
+					}
+				};
+			getSite().getShell().getDisplay().asyncExec(runnable);
+		}
+	}
+
+	/**
+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+			super(adapterFactory);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getElements(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getChildren(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public boolean hasChildren(Object object) {
+			Object parent = super.getParent(object);
+			return parent != null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object getParent(Object object) {
+			return null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewerPane(ViewerPane viewerPane) {
+		if (currentViewerPane != viewerPane) {
+			if (currentViewerPane != null) {
+				currentViewerPane.showFocus(false);
+			}
+			currentViewerPane = viewerPane;
+		}
+		setCurrentViewer(currentViewerPane.getViewer());
+	}
+
+	/**
+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+	 * is the current one.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewer(Viewer viewer) {
+		// If it is changing...
+		//
+		if (currentViewer != viewer) {
+			if (selectionChangedListener == null) {
+				// Create the listener on demand.
+				//
+				selectionChangedListener =
+					new ISelectionChangedListener() {
+						// This just notifies those things that are affected by the section.
+						//
+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+							setSelection(selectionChangedEvent.getSelection());
+						}
+					};
+			}
+
+			// Stop listening to the old one.
+			//
+			if (currentViewer != null) {
+				currentViewer.removeSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Start listening to the new one.
+			//
+			if (viewer != null) {
+				viewer.addSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Remember it.
+			//
+			currentViewer = viewer;
+
+			// Set the editors selection based on the current viewer's selection.
+			//
+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+		}
+	}
+
+	/**
+	 * This returns the viewer as required by the {@link IViewerProvider} interface.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Viewer getViewer() {
+		return currentViewer;
+	}
+
+	/**
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createContextMenuFor(StructuredViewer viewer) {
+		MenuManager contextMenu = new MenuManager("#PopUp");
+		contextMenu.add(new Separator("additions"));
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(this);
+		Menu menu= contextMenu.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+	}
+
+	/**
+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createModel() {
+		URI resourceURI = EditUIUtil.getURI(getEditorInput());
+		Exception exception = null;
+		Resource resource = null;
+		try {
+			// Load the resource through the editing domain.
+			//
+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+		}
+		catch (Exception e) {
+			exception = e;
+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+		}
+
+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+		if (diagnostic.getSeverity() != Diagnostic.OK) {
+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
+		}
+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+	}
+
+	/**
+	 * Returns a diagnostic describing the errors and warnings listed in the resource
+	 * and the specified exception (if any).
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+		if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+			BasicDiagnostic basicDiagnostic =
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.extension.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object [] { exception == null ? (Object)resource : exception });
+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+			return basicDiagnostic;
+		}
+		else if (exception != null) {
+			return
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.osbp.ecview.core.extension.model.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object[] { exception });
+		}
+		else {
+			return Diagnostic.OK_INSTANCE;
+		}
+	}
+
+	/**
+	 * This is the method used by the framework to install your own controls.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void createPages() {
+		// Creates the model from the editor input
+		//
+		createModel();
+
+		// Only creates the other pages if there is something that can be edited
+		//
+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+			// Create a page for the selection tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtensionModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				selectionViewer = (TreeViewer)viewerPane.getViewer();
+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				selectionViewer.setInput(editingDomain.getResourceSet());
+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+				viewerPane.setTitle(editingDomain.getResourceSet());
+
+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(selectionViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+			}
+
+			// Create a page for the parent tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtensionModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				parentViewer = (TreeViewer)viewerPane.getViewer();
+				parentViewer.setAutoExpandLevel(30);
+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(parentViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ParentPage_label"));
+			}
+
+			// This is the page for the list viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtensionModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new ListViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				listViewer = (ListViewer)viewerPane.getViewer();
+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(listViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ListPage_label"));
+			}
+
+			// This is the page for the tree viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtensionModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				treeViewer = (TreeViewer)viewerPane.getViewer();
+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(treeViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreePage_label"));
+			}
+
+			// This is the page for the table viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtensionModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TableViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				tableViewer = (TableViewer)viewerPane.getViewer();
+
+				Table table = tableViewer.getTable();
+				TableLayout layout = new TableLayout();
+				table.setLayout(layout);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
+
+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(3, 100, true));
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+
+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(2, 100, true));
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+
+				tableViewer.setColumnProperties(new String [] {"a", "b"});
+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(tableViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TablePage_label"));
+			}
+
+			// This is the page for the table tree viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), ExtensionModelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+				Tree tree = treeViewerWithColumns.getTree();
+				tree.setLayoutData(new FillLayout());
+				tree.setHeaderVisible(true);
+				tree.setLinesVisible(true);
+
+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+				objectColumn.setWidth(250);
+
+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+				selfColumn.setWidth(200);
+
+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(treeViewerWithColumns);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+			}
+
+			getSite().getShell().getDisplay().asyncExec
+				(new Runnable() {
+					 public void run() {
+						 setActivePage(0);
+					 }
+				 });
+		}
+
+		// Ensures that this editor will only display the page's tab
+		// area if there are more than one page
+		//
+		getContainer().addControlListener
+			(new ControlAdapter() {
+				boolean guard = false;
+				@Override
+				public void controlResized(ControlEvent event) {
+					if (!guard) {
+						guard = true;
+						hideTabs();
+						guard = false;
+					}
+				}
+			 });
+
+		getSite().getShell().getDisplay().asyncExec
+			(new Runnable() {
+				 public void run() {
+					 updateProblemIndication();
+				 }
+			 });
+	}
+
+	/**
+	 * If there is just one page in the multi-page editor part,
+	 * this hides the single tab at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void hideTabs() {
+		if (getPageCount() <= 1) {
+			setPageText(0, "");
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(1);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y + 6);
+			}
+		}
+	}
+
+	/**
+	 * If there is more than one page in the multi-page editor part,
+	 * this shows the tabs at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void showTabs() {
+		if (getPageCount() > 1) {
+			setPageText(0, getString("_UI_SelectionPage_label"));
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y - 6);
+			}
+		}
+	}
+
+	/**
+	 * This is used to track the active viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void pageChange(int pageIndex) {
+		super.pageChange(pageIndex);
+
+		if (contentOutlinePage != null) {
+			handleContentOutlineSelection(contentOutlinePage.getSelection());
+		}
+	}
+
+	/**
+	 * This is how the framework determines which interfaces we implement.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("rawtypes")
+	@Override
+	public Object getAdapter(Class key) {
+		if (key.equals(IContentOutlinePage.class)) {
+			return showOutlineView() ? getContentOutlinePage() : null;
+		}
+		else if (key.equals(IPropertySheetPage.class)) {
+			return getPropertySheetPage();
+		}
+		else if (key.equals(IGotoMarker.class)) {
+			return this;
+		}
+		else {
+			return super.getAdapter(key);
+		}
+	}
+
+	/**
+	 * This accesses a cached version of the content outliner.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IContentOutlinePage getContentOutlinePage() {
+		if (contentOutlinePage == null) {
+			// The content outline is just a tree.
+			//
+			class MyContentOutlinePage extends ContentOutlinePage {
+				@Override
+				public void createControl(Composite parent) {
+					super.createControl(parent);
+					contentOutlineViewer = getTreeViewer();
+					contentOutlineViewer.addSelectionChangedListener(this);
+
+					// Set up the tree viewer.
+					//
+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+					contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+					// Make sure our popups work.
+					//
+					createContextMenuFor(contentOutlineViewer);
+
+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+					  // Select the root object in the view.
+					  //
+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+					}
+				}
+
+				@Override
+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+					super.makeContributions(menuManager, toolBarManager, statusLineManager);
+					contentOutlineStatusLineManager = statusLineManager;
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			}
+
+			contentOutlinePage = new MyContentOutlinePage();
+
+			// Listen to selection so that we can handle it is a special way.
+			//
+			contentOutlinePage.addSelectionChangedListener
+				(new ISelectionChangedListener() {
+					 // This ensures that we handle selections correctly.
+					 //
+					 public void selectionChanged(SelectionChangedEvent event) {
+						 handleContentOutlineSelection(event.getSelection());
+					 }
+				 });
+		}
+
+		return contentOutlinePage;
+	}
+
+	/**
+	 * This accesses a cached version of the property sheet.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPropertySheetPage getPropertySheetPage() {
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					ExtensionModelEditor.this.setSelectionToViewer(selection);
+					ExtensionModelEditor.this.setFocus();
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
+
+		return propertySheetPage;
+	}
+
+	/**
+	 * This deals with how we want selection in the outliner to affect the other views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void handleContentOutlineSelection(ISelection selection) {
+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+			if (selectedElements.hasNext()) {
+				// Get the first selected element.
+				//
+				Object selectedElement = selectedElements.next();
+
+				// If it's the selection viewer, then we want it to select the same selection as this selection.
+				//
+				if (currentViewerPane.getViewer() == selectionViewer) {
+					ArrayList<Object> selectionList = new ArrayList<Object>();
+					selectionList.add(selectedElement);
+					while (selectedElements.hasNext()) {
+						selectionList.add(selectedElements.next());
+					}
+
+					// Set the selection to the widget.
+					//
+					selectionViewer.setSelection(new StructuredSelection(selectionList));
+				}
+				else {
+					// Set the input to the widget.
+					//
+					if (currentViewerPane.getViewer().getInput() != selectedElement) {
+						currentViewerPane.getViewer().setInput(selectedElement);
+						currentViewerPane.setTitle(selectedElement);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isDirty() {
+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply saves the model file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSave(IProgressMonitor progressMonitor) {
+		// Save only resources that have actually changed.
+		//
+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+		// Do the work within an operation because this is a long running activity that modifies the workbench.
+		//
+		WorkspaceModifyOperation operation =
+			new WorkspaceModifyOperation() {
+				// This is the method that gets invoked when the operation runs.
+				//
+				@Override
+				public void execute(IProgressMonitor monitor) {
+					// Save the resources to the file system.
+					//
+					boolean first = true;
+					for (Resource resource : editingDomain.getResourceSet().getResources()) {
+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+							try {
+								long timeStamp = resource.getTimeStamp();
+								resource.save(saveOptions);
+								if (resource.getTimeStamp() != timeStamp) {
+									savedResources.add(resource);
+								}
+							}
+							catch (Exception exception) {
+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+							}
+							first = false;
+						}
+					}
+				}
+			};
+
+		updateProblemIndication = false;
+		try {
+			// This runs the options, and shows progress.
+			//
+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+			// Refresh the necessary state.
+			//
+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+			firePropertyChange(IEditorPart.PROP_DIRTY);
+		}
+		catch (Exception exception) {
+			// Something went wrong that shouldn't.
+			//
+			ExtensionEditorPlugin.INSTANCE.log(exception);
+		}
+		updateProblemIndication = true;
+		updateProblemIndication();
+	}
+
+	/**
+	 * This returns whether something has been persisted to the URI of the specified resource.
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean isPersisted(Resource resource) {
+		boolean result = false;
+		try {
+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+			if (stream != null) {
+				result = true;
+				stream.close();
+			}
+		}
+		catch (IOException e) {
+			// Ignore
+		}
+		return result;
+	}
+
+	/**
+	 * This always returns true because it is not currently supported.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return true;
+	}
+
+	/**
+	 * This also changes the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSaveAs() {
+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+		saveAsDialog.open();
+		IPath path = saveAsDialog.getResult();
+		if (path != null) {
+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			if (file != null) {
+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+			}
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void doSaveAs(URI uri, IEditorInput editorInput) {
+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		IProgressMonitor progressMonitor =
+			getActionBars().getStatusLineManager() != null ?
+				getActionBars().getStatusLineManager().getProgressMonitor() :
+				new NullProgressMonitor();
+		doSave(progressMonitor);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void gotoMarker(IMarker marker) {
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
+		}
+	}
+
+	/**
+	 * This is called during startup.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput editorInput) {
+		setSite(site);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		site.setSelectionProvider(this);
+		site.getPage().addPartListener(partListener);
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFocus() {
+		if (currentViewerPane != null) {
+			currentViewerPane.setFocus();
+		}
+		else {
+			getControl(getActivePage()).setFocus();
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.add(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.remove(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISelection getSelection() {
+		return editorSelection;
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+	 * Calling this result will notify the listeners.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelection(ISelection selection) {
+		editorSelection = selection;
+
+		for (ISelectionChangedListener listener : selectionChangedListeners) {
+			listener.selectionChanged(new SelectionChangedEvent(this, selection));
+		}
+		setStatusLineManager(selection);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStatusLineManager(ISelection selection) {
+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+		if (statusLineManager != null) {
+			if (selection instanceof IStructuredSelection) {
+				Collection<?> collection = ((IStructuredSelection)selection).toList();
+				switch (collection.size()) {
+					case 0: {
+						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+						break;
+					}
+					case 1: {
+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+						break;
+					}
+					default: {
+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+						break;
+					}
+				}
+			}
+			else {
+				statusLineManager.setMessage("");
+			}
+		}
+	}
+
+	/**
+	 * This looks up a string in the plugin's plugin.properties file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key) {
+		return ExtensionEditorPlugin.INSTANCE.getString(key);
+	}
+
+	/**
+	 * This looks up a string in plugin.properties, making a substitution.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key, Object s1) {
+		return ExtensionEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void menuAboutToShow(IMenuManager menuManager) {
+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomainActionBarContributor getActionBarContributor() {
+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IActionBars getActionBars() {
+		return getActionBarContributor().getActionBars();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdapterFactory getAdapterFactory() {
+		return adapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void dispose() {
+		updateProblemIndication = false;
+
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+		getSite().getPage().removePartListener(partListener);
+
+		adapterFactory.dispose();
+
+		if (getActionBarContributor().getActiveEditor() == this) {
+			getActionBarContributor().setActiveEditor(null);
+		}
+
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
+			propertySheetPage.dispose();
+		}
+
+		if (contentOutlinePage != null) {
+			contentOutlinePage.dispose();
+		}
+
+		super.dispose();
+	}
+
+	/**
+	 * Returns whether the outline view should be presented to the user.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean showOutlineView() {
+		return true;
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/extension/presentation/ExtensionModelModelWizard.java b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/extension/presentation/ExtensionModelModelWizard.java
new file mode 100644
index 0000000..8e4c156
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model.editor/src/org/eclipse/osbp/ecview/core/extension/model/extension/presentation/ExtensionModelModelWizard.java
@@ -0,0 +1,641 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.provider.ExtensionEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.presentation.ExtensionEditorPlugin;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtensionModelModelWizard extends Wizard implements INewWizard {
+	/**
+	 * The supported extensions for created files.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<String> FILE_EXTENSIONS =
+		Collections.unmodifiableList(Arrays.asList(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtensionModelEditorFilenameExtensions").split("\\s*,\\s*")));
+
+	/**
+	 * A formatted list of supported file extensions, suitable for display.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String FORMATTED_FILE_EXTENSIONS =
+		ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtensionModelEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+	/**
+	 * This caches an instance of the model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtensionModelPackage extensionModelPackage = ExtensionModelPackage.eINSTANCE;
+
+	/**
+	 * This caches an instance of the model factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtensionModelFactory extensionModelFactory = extensionModelPackage.getExtensionModelFactory();
+
+	/**
+	 * This is the file creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtensionModelModelWizardNewFileCreationPage newFileCreationPage;
+
+	/**
+	 * This is the initial object creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtensionModelModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+	/**
+	 * Remember the selection during initialization for populating the default container.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStructuredSelection selection;
+
+	/**
+	 * Remember the workbench during initialization.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IWorkbench workbench;
+
+	/**
+	 * Caches the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<String> initialObjectNames;
+
+	/**
+	 * This just records the information.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle(ExtensionEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ExtensionEditorPlugin.INSTANCE.getImage("full/wizban/NewExtensionModel")));
+	}
+
+	/**
+	 * Returns the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<String> getInitialObjectNames() {
+		if (initialObjectNames == null) {
+			initialObjectNames = new ArrayList<String>();
+			for (EClassifier eClassifier : extensionModelPackage.getEClassifiers()) {
+				if (eClassifier instanceof EClass) {
+					EClass eClass = (EClass)eClassifier;
+					if (!eClass.isAbstract()) {
+						initialObjectNames.add(eClass.getName());
+					}
+				}
+			}
+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+		}
+		return initialObjectNames;
+	}
+
+	/**
+	 * Create a new model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EObject createInitialModel() {
+		EClass eClass = (EClass)extensionModelPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+		EObject rootObject = extensionModelFactory.create(eClass);
+		return rootObject;
+	}
+
+	/**
+	 * Do the work after everything is specified.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean performFinish() {
+		try {
+			// Remember the file.
+			//
+			final IFile modelFile = getModelFile();
+
+			// Do the work within an operation.
+			//
+			WorkspaceModifyOperation operation =
+				new WorkspaceModifyOperation() {
+					@Override
+					protected void execute(IProgressMonitor progressMonitor) {
+						try {
+							// Create a resource set
+							//
+							ResourceSet resourceSet = new ResourceSetImpl();
+
+							// Get the URI of the model file.
+							//
+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+							// Create a resource for this file.
+							//
+							Resource resource = resourceSet.createResource(fileURI);
+
+							// Add the initial model object to the contents.
+							//
+							EObject rootObject = createInitialModel();
+							if (rootObject != null) {
+								resource.getContents().add(rootObject);
+							}
+
+							// Save the contents of the resource to the file system.
+							//
+							Map<Object, Object> options = new HashMap<Object, Object>();
+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+							resource.save(options);
+						}
+						catch (Exception exception) {
+							ExtensionEditorPlugin.INSTANCE.log(exception);
+						}
+						finally {
+							progressMonitor.done();
+						}
+					}
+				};
+
+			getContainer().run(false, false, operation);
+
+			// Select the new file resource in the current view.
+			//
+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			final IWorkbenchPart activePart = page.getActivePart();
+			if (activePart instanceof ISetSelectionTarget) {
+				final ISelection targetSelection = new StructuredSelection(modelFile);
+				getShell().getDisplay().asyncExec
+					(new Runnable() {
+						 public void run() {
+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+						 }
+					 });
+			}
+
+			// Open an editor on the new file.
+			//
+			try {
+				page.openEditor
+					(new FileEditorInput(modelFile),
+					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
+			}
+			catch (PartInitException exception) {
+				MessageDialog.openError(workbenchWindow.getShell(), ExtensionEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+				return false;
+			}
+
+			return true;
+		}
+		catch (Exception exception) {
+			ExtensionEditorPlugin.INSTANCE.log(exception);
+			return false;
+		}
+	}
+
+	/**
+	 * This is the one page of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ExtensionModelModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ExtensionModelModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+			super(pageId, selection);
+		}
+
+		/**
+		 * The framework calls this to see if the file is correct.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		protected boolean validatePage() {
+			if (super.validatePage()) {
+				String extension = new Path(getFileName()).getFileExtension();
+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+					setErrorMessage(ExtensionEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+					return false;
+				}
+				return true;
+			}
+			return false;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public IFile getModelFile() {
+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+		}
+	}
+
+	/**
+	 * This is the page where the type of object to create is selected.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ExtensionModelModelWizardInitialObjectCreationPage extends WizardPage {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo initialObjectField;
+
+		/**
+		 * @generated
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 */
+		protected List<String> encodings;
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo encodingField;
+
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ExtensionModelModelWizardInitialObjectCreationPage(String pageId) {
+			super(pageId);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public void createControl(Composite parent) {
+			Composite composite = new Composite(parent, SWT.NONE);
+			{
+				GridLayout layout = new GridLayout();
+				layout.numColumns = 1;
+				layout.verticalSpacing = 12;
+				composite.setLayout(layout);
+
+				GridData data = new GridData();
+				data.verticalAlignment = GridData.FILL;
+				data.grabExcessVerticalSpace = true;
+				data.horizontalAlignment = GridData.FILL;
+				composite.setLayoutData(data);
+			}
+
+			Label containerLabel = new Label(composite, SWT.LEFT);
+			{
+				containerLabel.setText(ExtensionEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				containerLabel.setLayoutData(data);
+			}
+
+			initialObjectField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				initialObjectField.setLayoutData(data);
+			}
+
+			for (String objectName : getInitialObjectNames()) {
+				initialObjectField.add(getLabel(objectName));
+			}
+
+			if (initialObjectField.getItemCount() == 1) {
+				initialObjectField.select(0);
+			}
+			initialObjectField.addModifyListener(validator);
+
+			Label encodingLabel = new Label(composite, SWT.LEFT);
+			{
+				encodingLabel.setText(ExtensionEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				encodingLabel.setLayoutData(data);
+			}
+			encodingField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				encodingField.setLayoutData(data);
+			}
+
+			for (String encoding : getEncodings()) {
+				encodingField.add(encoding);
+			}
+
+			encodingField.select(0);
+			encodingField.addModifyListener(validator);
+
+			setPageComplete(validatePage());
+			setControl(composite);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected ModifyListener validator =
+			new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					setPageComplete(validatePage());
+				}
+			};
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected boolean validatePage() {
+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public void setVisible(boolean visible) {
+			super.setVisible(visible);
+			if (visible) {
+				if (initialObjectField.getItemCount() == 1) {
+					initialObjectField.clearSelection();
+					encodingField.setFocus();
+				}
+				else {
+					encodingField.clearSelection();
+					initialObjectField.setFocus();
+				}
+			}
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getInitialObjectName() {
+			String label = initialObjectField.getText();
+
+			for (String name : getInitialObjectNames()) {
+				if (getLabel(name).equals(label)) {
+					return name;
+				}
+			}
+			return null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getEncoding() {
+			return encodingField.getText();
+		}
+
+		/**
+		 * Returns the label for the specified type name.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected String getLabel(String typeName) {
+			try {
+				return ExtensionEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+			}
+			catch(MissingResourceException mre) {
+				ExtensionEditorPlugin.INSTANCE.log(mre);
+			}
+			return typeName;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Collection<String> getEncodings() {
+			if (encodings == null) {
+				encodings = new ArrayList<String>();
+				for (StringTokenizer stringTokenizer = new StringTokenizer(ExtensionEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+					encodings.add(stringTokenizer.nextToken());
+				}
+			}
+			return encodings;
+		}
+	}
+
+	/**
+	 * The framework calls this to create the contents of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+		@Override
+	public void addPages() {
+		// Create a page, set the title, and the initial model file name.
+		//
+		newFileCreationPage = new ExtensionModelModelWizardNewFileCreationPage("Whatever", selection);
+		newFileCreationPage.setTitle(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtensionModelModelWizard_label"));
+		newFileCreationPage.setDescription(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtensionModelModelWizard_description"));
+		newFileCreationPage.setFileName(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtensionModelEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+		addPage(newFileCreationPage);
+
+		// Try and get the resource selection to determine a current directory for the file dialog.
+		//
+		if (selection != null && !selection.isEmpty()) {
+			// Get the resource...
+			//
+			Object selectedElement = selection.iterator().next();
+			if (selectedElement instanceof IResource) {
+				// Get the resource parent, if its a file.
+				//
+				IResource selectedResource = (IResource)selectedElement;
+				if (selectedResource.getType() == IResource.FILE) {
+					selectedResource = selectedResource.getParent();
+				}
+
+				// This gives us a directory...
+				//
+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+					// Set this for the container.
+					//
+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+					// Make up a unique new name here.
+					//
+					String defaultModelBaseFilename = ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtensionModelEditorFilenameDefaultBase");
+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+					}
+					newFileCreationPage.setFileName(modelFilename);
+				}
+			}
+		}
+		initialObjectCreationPage = new ExtensionModelModelWizardInitialObjectCreationPage("Whatever2");
+		initialObjectCreationPage.setTitle(ExtensionEditorPlugin.INSTANCE.getString("_UI_ExtensionModelModelWizard_label"));
+		initialObjectCreationPage.setDescription(ExtensionEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+		addPage(initialObjectCreationPage);
+	}
+
+	/**
+	 * Get the file from the page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IFile getModelFile() {
+		return newFileCreationPage.getModelFile();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model/.project b/org.eclipse.osbp.ecview.core.extension.model/.project
new file mode 100644
index 0000000..c1bee2f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.extension.model</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.extension.model/LICENSE.txt b/org.eclipse.osbp.ecview.core.extension.model/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.model/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.extension.model/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5c23237
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/META-INF/MANIFEST.MF
@@ -0,0 +1,44 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.extension.model
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.extension.model;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: Eclipse OSBP
+ Germany)
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.osbp.ecview.core.extension.model.datatypes;
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.common.util,
+   org.eclipse.osbp.ecview.core.common.model.validation,
+   org.eclipse.osbp.ecview.core.common.model.datatypes",
+ org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;version="0.9.0",
+ org.eclipse.osbp.ecview.core.extension.model.datatypes.util;version="0.9.0";
+  uses:="org.eclipse.emf.ecore.util,
+   org.eclipse.emf.ecore,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.osbp.ecview.core.common.model.validation,
+   org.eclipse.osbp.ecview.core.common.model.datatypes,
+   org.eclipse.osbp.ecview.core.extension.model.datatypes,
+   org.eclipse.osbp.ecview.core.common.model.core,
+   org.eclipse.emf.common.notify",
+ org.eclipse.osbp.ecview.core.extension.model.extension;version="0.9.0",
+ org.eclipse.osbp.ecview.core.extension.model.extension.impl;version="0.9.0",
+ org.eclipse.osbp.ecview.core.extension.model.extension.listener;version="0.9.0";uses:="org.eclipse.osbp.ecview.core.extension.model.extension",
+ org.eclipse.osbp.ecview.core.extension.model.extension.util;version="0.9.0";
+  uses:="org.eclipse.emf.ecore.util,
+   org.eclipse.osbp.ecview.core.extension.model.extension,
+   org.eclipse.emf.ecore,
+   org.eclipse.osbp.ecview.core.common.model.validation,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.osbp.ecview.core.extension.model.datatypes,
+   org.eclipse.osbp.ecview.core.common.model.core.util,
+   org.eclipse.osbp.ecview.core.common.model.core,
+   org.eclipse.emf.common.notify"
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
+ org.eclipse.osbp.ecview.core.extension.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.vaadin.addons.designer.overlay;bundle-version="0.9.0"
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.ecview.core.extension.model/about.html b/org.eclipse.osbp.ecview.core.extension.model/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.model/about.ini b/org.eclipse.osbp.ecview.core.extension.model/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.extension.model/about.mappings b/org.eclipse.osbp.ecview.core.extension.model/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.extension.model/about.properties b/org.eclipse.osbp.ecview.core.extension.model/about.properties
new file mode 100644
index 0000000..e5c1739
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.extension.model
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.extension.model/build.properties b/org.eclipse.osbp.ecview.core.extension.model/build.properties
new file mode 100644
index 0000000..d4f43cd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/build.properties
@@ -0,0 +1,13 @@
+#
+output.. = target/classes/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               LICENSE.txt,\
+               license.html
+jars.compile.order = .
+source.. = src/
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.extension.model/license.html b/org.eclipse.osbp.ecview.core.extension.model/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.model/model/extdatatypes.ecore b/org.eclipse.osbp.ecview.core.extension.model/model/extdatatypes.ecore
new file mode 100644
index 0000000..4bc3443
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/model/extdatatypes.ecore
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="datatypes" nsURI="http://osbp.eclipse.org/ecview/v1/extension/datatypes"
+    nsPrefix="datatypes">
+  <eClassifiers xsi:type="ecore:EClass" name="YTextDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype ../../org.eclipse.osbp.ecview.core.common.model/model/validation.ecore#//YMaxLengthValidationConfig ../../org.eclipse.osbp.ecview.core.common.model/model/validation.ecore#//YMinLengthValidationConfig ../../org.eclipse.osbp.ecview.core.common.model/model/validation.ecore#//YRegexpValidationConfig"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YTextAreaDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype ../../org.eclipse.osbp.ecview.core.common.model/model/validation.ecore#//YMinLengthValidationConfig ../../org.eclipse.osbp.ecview.core.common.model/model/validation.ecore#//YMaxLengthValidationConfig ../../org.eclipse.osbp.ecview.core.common.model/model/validation.ecore#//YRegexpValidationConfig"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YNumericDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype ../../org.eclipse.osbp.ecview.core.common.model/model/validation.ecore#//YRegexpValidationConfig">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="grouping" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="markNegative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YDecimalDatatype" eSuperTypes="#//YNumericDatatype ../../org.eclipse.osbp.ecview.core.common.model/model/validation.ecore#//YRegexpValidationConfig">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="precision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="2"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YTableDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YCheckBoxDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YComboBoxDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YListDataType" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YOptionsGroupDataType" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YBrowserDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YDateTimeDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="format" eType="#//YDateTimeFormat"
+        defaultValueLiteral="DATE"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolution" eType="#//YDateTimeResolution"
+        defaultValueLiteral="UNDEFINED"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YDateTimeFormat">
+    <eLiterals name="DATE"/>
+    <eLiterals name="TIME" value="1" literal="TIME"/>
+    <eLiterals name="DATE_TIME" value="2" literal="DATE_TIME"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YDateTimeResolution">
+    <eLiterals name="SECOND" literal="SECOND"/>
+    <eLiterals name="MINUTE" value="1" literal="MINUTE"/>
+    <eLiterals name="HOUR" value="2" literal="HOUR"/>
+    <eLiterals name="DAY" value="3" literal="DAY"/>
+    <eLiterals name="MONTH" value="4" literal="MONTH"/>
+    <eLiterals name="YEAR" value="5" literal="YEAR"/>
+    <eLiterals name="UNDEFINED" value="6" literal="UNDEFINED"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YTreeDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YProgressBarDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YTabSheetDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YMasterDetailDatatype" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatatype"/>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.ecview.core.extension.model/model/extension.ecore b/org.eclipse.osbp.ecview.core.extension.model/model/extension.ecore
new file mode 100644
index 0000000..8bc0886
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/model/extension.ecore
@@ -0,0 +1,672 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="extension" nsURI="http://osbp.eclipse.org/ecview/v1/extension/view"
+    nsPrefix="extension">
+  <eClassifiers xsi:type="ecore:EClass" name="YInput" abstract="true" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YField"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YGridLayout" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YLayout ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSpacingable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMarginable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignmentContainer">
+    <eOperations name="addGridLayoutCellStyle" eType="#//YGridLayoutCellStyle">
+      <eParameters name="element" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="cellStyles" upperBound="-1"
+        eType="#//YGridLayoutCellStyle" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="columns" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The number of columns the GridLayout should contain.&#x9;"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YGridLayoutCellStyle">
+    <eOperations name="addSpanInfo" eType="#//YSpanInfo">
+      <eParameters name="col1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+      <eParameters name="row1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+      <eParameters name="col2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+      <eParameters name="row2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+        eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="ecore:EEnum ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignment"
+        defaultValueLiteral="UNDEFINED">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The alignment of the ui element relative to its grid cell."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="spanInfo" eType="#//YSpanInfo"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YHorizontalLayout" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YLayout ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSpacingable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMarginable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignmentContainer">
+    <eOperations name="getCellStyle" eType="#//YHorizontalLayoutCellStyle">
+      <eParameters name="element" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="cellStyles" upperBound="-1"
+        eType="#//YHorizontalLayoutCellStyle" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YHorizontalLayoutCellStyle">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+        eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="ecore:EEnum ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignment"
+        defaultValueLiteral="UNDEFINED">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The alignment of the ui element relative to its grid cell."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YVerticalLayout" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YLayout ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSpacingable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMarginable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignmentContainer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="cellStyles" upperBound="-1"
+        eType="#//YVerticalLayoutCellStyle" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YVerticalLayoutCellStyle">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+        eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="ecore:EEnum ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignment"
+        defaultValueLiteral="UNDEFINED">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The alignment of the ui element relative to its grid cell."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSpanInfo">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnFrom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The column index of the cell that should contain the Upper-Left-Edge of the element."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rowFrom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The row index of the cell that should contain the Upper-Left-Edge of the element."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnTo" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The column index of the cell that should contain the Lower-Right-Edge of the element."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rowTo" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The row index of the cell that should contain the Lower-Right-Edge of the element."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YTable" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCollectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSelectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMultiSelectionBindable #//YBeanServiceConsumer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YTableDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectionType" eType="#//YSelectionType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiSelection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="columns" upperBound="-1"
+        eType="#//YColumn" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemImageProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="filter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="refresh" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="sortOrder" upperBound="-1"
+        eType="#//YSortColumn" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YColumn" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="icon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="visible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="orphanDatadescriptions"
+        upperBound="-1" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="orderable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapsible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="ecore:EEnum ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YFlatAlignment"
+        defaultValueLiteral="LEFT"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="expandRatio" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"
+        defaultValueLiteral="-1.0f"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="converter" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YConverter"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSortColumn" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="asc" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YTree" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCollectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSelectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMultiSelectionBindable #//YBeanServiceConsumer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YTreeDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectionType" eType="#//YSelectionType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiSelection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YOptionsGroup" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCollectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSelectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMultiSelectionBindable #//YBeanServiceConsumer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YOptionsGroupDataType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectionType" eType="#//YSelectionType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiSelection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="captionProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="imageProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descriptionProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YList" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCollectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSelectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMultiSelectionBindable #//YBeanServiceConsumer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YListDataType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectionType" eType="#//YSelectionType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiSelection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="captionProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="imageProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descriptionProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YLabel" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YField ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YImage" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YField ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YTextField" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YTextDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBeanReferenceField" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable #//YBeanServiceConsumer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inMemoryBeanProvider">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inMemoryBeanProviderQualifiedName"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="captionPropertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="imagePropertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descriptionProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceSourceType">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceSourceTypeQualifiedName"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceSourceTypeProperty"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YTextArea" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YTextAreaDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="wordWrap" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rows" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="3"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YCheckBox" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YCheckBoxDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBrowser" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YBrowserDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YDateTime" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YDateTimeDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YDecimalField" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YDecimalDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YNumericField" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YNumericDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YComboBox" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCollectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSelectionBindable #//YBeanServiceConsumer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YComboBoxDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="captionProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="imageProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descriptionProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YButton" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAction ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YVisibleable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEditable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEnable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YFocusable">
+    <eOperations name="addClickListener">
+      <eParameters name="listener" eType="#//YButtonClickListener"/>
+    </eOperations>
+    <eOperations name="removeClickListener">
+      <eParameters name="listener" eType="#//YButtonClickListener"/>
+    </eOperations>
+    <eOperations name="createClickEndpoint" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/binding.ecore#//YECViewModelValueBindingEndpoint"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="clickListeners" upperBound="-1"
+        eType="#//YButtonClickListener" transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastClickTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="image" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSlider" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+        transient="true" defaultValueLiteral="100"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+        transient="true" defaultValueLiteral="0"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolution" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        transient="true" defaultValueLiteral="10"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="orientation" eType="ecore:EEnum ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YOrientation"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EDataType" name="YButtonClickListener" instanceClassName="org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YToggleButton" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAction ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YActivateable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YFocusable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YSelectionType">
+    <eLiterals name="SINGLE" literal=""/>
+    <eLiterals name="MULTI" value="1" literal="MULTI"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YProgressBar" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YProgressBarDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YTabSheet" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YFocusable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="tabs" upperBound="-1" eType="#//YTab"
+        containment="true" eOpposite="#//YTab/parent"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YTab" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YElement ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCssAble">
+    <eOperations name="getView" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YView"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parent" lowerBound="1"
+        eType="#//YTabSheet" eOpposite="#//YTabSheet/tabs"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="embeddable" lowerBound="1"
+        eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="orphanDatadescriptions"
+        upperBound="-1" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YMasterDetail" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCollectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSelectionBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YMasterDetailDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="masterElement" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="detailElement" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YFormLayout" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YLayout ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSpacingable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMarginable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignmentContainer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="cellStyles" upperBound="-1"
+        eType="#//YFormLayoutCellStyle" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YFormLayoutCellStyle">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+        eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="ecore:EEnum ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignment"
+        defaultValueLiteral="UNDEFINED">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The alignment of the ui element relative to its grid cell."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSearchField" abstract="true" interface="true"
+      eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YTextSearchField" eSuperTypes="#//YSearchField">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="wildcard" eType="#//YSearchWildcards"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBooleanSearchField" eSuperTypes="#//YSearchField">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//YBooleanSearchOption"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YNumericSearchField" eSuperTypes="#//YSearchField">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="wildcard" eType="#//YSearchWildcards"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YReferenceSearchField" eSuperTypes="#//YSearchField">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="wildcard" eType="#//YSearchWildcards"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YBooleanSearchOption">
+    <eLiterals name="TRUE" literal="TRUE"/>
+    <eLiterals name="FALSE" value="1" literal="FALSE"/>
+    <eLiterals name="IGNORE" value="2" literal="IGNORE"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YSearchWildcards">
+    <eLiterals name="GT" literal="GT"/>
+    <eLiterals name="GE" value="1" literal="GE"/>
+    <eLiterals name="LT" value="2" literal="LT"/>
+    <eLiterals name="LE" value="3" literal="LE"/>
+    <eLiterals name="EQ" value="4" literal="EQ"/>
+    <eLiterals name="NE" value="5" literal="NE"/>
+    <eLiterals name="ANY" value="6" literal="ANY"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YPanel" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YLayout ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YFocusable">
+    <eOperations name="getCellStyle" eType="#//YHorizontalLayoutCellStyle">
+      <eParameters name="element" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="firstContent" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="secondContent" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSplitPanel" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YLayout">
+    <eOperations name="getCellStyle" eType="#//YHorizontalLayoutCellStyle">
+      <eParameters name="element" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="cellStyles" upperBound="-1"
+        eType="#//YHorizontalLayoutCellStyle" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fillHorizontal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If false, then the width of all elements contained in the grid layout will be decreased to their preferred width or their miminum width. If no alignment is defined for a child, this setting will become its default.&#xA;Eg if child has not a alignment, the horizontal alignment will become FILL if fillHorizontal is true. Otherwise the ui-kit default will be used as the horizontal alignment."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="splitPosition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="50"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="vertical" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSearchPanel" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YLayout ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSpacingable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMarginable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="applyFilter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="filter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEnumOptionsGroup" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCollectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSelectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMultiSelectionBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YOptionsGroupDataType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectionType" eType="#//YSelectionType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiSelection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEnumList" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCollectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSelectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMultiSelectionBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YListDataType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectionType" eType="#//YSelectionType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiSelection" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YEnumComboBox" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCollectionBindable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSelectionBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YComboBoxDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBeanServiceConsumer" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="useBeanService" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YAddToTableCommand" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCommand">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="table" eType="#//YTable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YRemoveFromTableCommand" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCommand">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="table" eType="#//YTable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YBrowserStreamInput">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="filename" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inputStream" lowerBound="1"
+        eType="#//YInputStream"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mimeType" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EDataType" name="YInputStream" instanceClassName="java.io.InputStream"/>
+  <eClassifiers xsi:type="ecore:EClass" name="YSetNewBeanInstanceCommand" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YCommand">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/binding.ecore#//YValueBindingEndpoint"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YCssLayout" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YLayout ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YSpacingable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YMarginable ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignmentContainer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="cellStyles" upperBound="-1"
+        eType="#//YCssLayoutCellStyle" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YCssLayoutCellStyle">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+        eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="ecore:EEnum ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YAlignment"
+        defaultValueLiteral="UNDEFINED">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The alignment of the ui element relative to its css layout cell."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YFilter" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="filterValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YAbsoluteLayout" eSuperTypes="../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YLayout">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="cellStyles" upperBound="-1"
+        eType="#//YAbsoluteLayoutCellStyle" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="childResizeEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="childMoveEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YAbsoluteLayoutCellStyle">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+        eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YEmbeddable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="top" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="-1"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="bottom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="-1"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="left" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="-1"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="right" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="-1"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="zIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="-1"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YSuggestTextField" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="ecore:EClass extdatatypes.ecore#//YTextDatatype"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="useSuggestions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="autoHidePopup" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastSuggestion" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+        <eTypeArguments/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emfNsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemCaptionProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemFilterProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemUUIDProperty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="event" eType="#//YSuggestTextFieldEvents"
+        transient="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="YSuggestTextFieldEvents">
+    <eLiterals name="OPEN_POPUP" literal="OPEN_POPUP"/>
+    <eLiterals name="CLOSE_POPUP" value="1" literal="CLOSE_POPUP"/>
+    <eLiterals name="NAVIGATE_NEXT" value="2" literal="NAVIGATE_NEXT"/>
+    <eLiterals name="NAVIGATE_PREV" value="3" literal="NAVIGATE_PREV"/>
+    <eLiterals name="SELECT" value="4" literal="SELECT"/>
+    <eLiterals name="CLEAR" value="5" literal="CLEAR"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="YPasswordField" eSuperTypes="#//YInput ../../org.eclipse.osbp.ecview.core.common.model/model/core.ecore#//YValueBindable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datadescription" eType="ecore:EClass ../../org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore#//YDatadescription"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        transient="true"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.ecview.core.extension.model/model/extension.genmodel b/org.eclipse.osbp.ecview.core.extension.model/model/extension.genmodel
new file mode 100644
index 0000000..9385bde
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/model/extension.genmodel
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.osbp.ecview.core.extension.model/src"
+    modelPluginID="org.eclipse.osbp.ecview.core.extension.model" modelName="Extension"
+    rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore"
+    containmentProxies="true" complianceLevel="6.0" copyrightFields="false" usedGenPackages="../../org.eclipse.osbp.ecview.core.common.model/model/core.genmodel#//binding ../../org.eclipse.osbp.ecview.core.common.model/model/core.genmodel#//core ../../org.eclipse.osbp.ecview.core.common.model/model/core.genmodel#//datatypes ../../org.eclipse.osbp.ecview.core.common.model/model/core.genmodel#//validation ../../org.eclipse.osbp.ecview.core.common.model/model/core.genmodel#//visibility"
+    importOrganizing="true">
+  <foreignModel>extdatatypes.ecore</foreignModel>
+  <foreignModel>extension.ecore</foreignModel>
+  <genPackages prefix="ExtDatatypes" basePackage="org.eclipse.osbp.ecview.core.extension.model"
+      disposableProviderFactory="true" extensibleProviderFactory="true" childCreationExtenders="true"
+      ecorePackage="extdatatypes.ecore#/">
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="extdatatypes.ecore#//YDateTimeFormat">
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeFormat/DATE"/>
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeFormat/TIME"/>
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeFormat/DATE_TIME"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="extdatatypes.ecore#//YDateTimeResolution">
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeResolution/SECOND"/>
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeResolution/MINUTE"/>
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeResolution/HOUR"/>
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeResolution/DAY"/>
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeResolution/MONTH"/>
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeResolution/YEAR"/>
+      <genEnumLiterals ecoreEnumLiteral="extdatatypes.ecore#//YDateTimeResolution/UNDEFINED"/>
+    </genEnums>
+    <genClasses ecoreClass="extdatatypes.ecore#//YTextDatatype"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YTextAreaDatatype"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YNumericDatatype">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extdatatypes.ecore#//YNumericDatatype/grouping"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extdatatypes.ecore#//YNumericDatatype/markNegative"/>
+    </genClasses>
+    <genClasses ecoreClass="extdatatypes.ecore#//YDecimalDatatype">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extdatatypes.ecore#//YDecimalDatatype/precision"/>
+    </genClasses>
+    <genClasses ecoreClass="extdatatypes.ecore#//YTableDatatype"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YCheckBoxDatatype"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YComboBoxDatatype"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YListDataType"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YOptionsGroupDataType"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YBrowserDatatype"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YDateTimeDatatype">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extdatatypes.ecore#//YDateTimeDatatype/format"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extdatatypes.ecore#//YDateTimeDatatype/resolution"/>
+    </genClasses>
+    <genClasses ecoreClass="extdatatypes.ecore#//YTreeDatatype"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YProgressBarDatatype"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YTabSheetDatatype"/>
+    <genClasses ecoreClass="extdatatypes.ecore#//YMasterDetailDatatype"/>
+  </genPackages>
+  <genPackages prefix="ExtensionModel" basePackage="org.eclipse.osbp.ecview.core.extension.model"
+      disposableProviderFactory="true" extensibleProviderFactory="true" childCreationExtenders="true"
+      ecorePackage="extension.ecore#/">
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="extension.ecore#//YSelectionType">
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YSelectionType/SINGLE"/>
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YSelectionType/MULTI"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="extension.ecore#//YBooleanSearchOption">
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YBooleanSearchOption/TRUE"/>
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YBooleanSearchOption/FALSE"/>
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YBooleanSearchOption/IGNORE"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="extension.ecore#//YSearchWildcards">
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YSearchWildcards/GT"/>
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YSearchWildcards/GE"/>
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YSearchWildcards/LT"/>
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YSearchWildcards/LE"/>
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YSearchWildcards/EQ"/>
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YSearchWildcards/NE"/>
+      <genEnumLiterals ecoreEnumLiteral="extension.ecore#//YSearchWildcards/ANY"/>
+    </genEnums>
+    <genDataTypes ecoreDataType="extension.ecore#//YButtonClickListener"/>
+    <genDataTypes ecoreDataType="extension.ecore#//YInputStream"/>
+    <genClasses image="false" ecoreClass="extension.ecore#//YInput"/>
+    <genClasses ecoreClass="extension.ecore#//YGridLayout">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YGridLayout/cellStyles"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YGridLayout/columns"/>
+      <genOperations ecoreOperation="extension.ecore#//YGridLayout/addGridLayoutCellStyle">
+        <genParameters ecoreParameter="extension.ecore#//YGridLayout/addGridLayoutCellStyle/element"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YGridLayoutCellStyle">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YGridLayoutCellStyle/target"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YGridLayoutCellStyle/alignment"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YGridLayoutCellStyle/spanInfo"/>
+      <genOperations ecoreOperation="extension.ecore#//YGridLayoutCellStyle/addSpanInfo">
+        <genParameters ecoreParameter="extension.ecore#//YGridLayoutCellStyle/addSpanInfo/col1"/>
+        <genParameters ecoreParameter="extension.ecore#//YGridLayoutCellStyle/addSpanInfo/row1"/>
+        <genParameters ecoreParameter="extension.ecore#//YGridLayoutCellStyle/addSpanInfo/col2"/>
+        <genParameters ecoreParameter="extension.ecore#//YGridLayoutCellStyle/addSpanInfo/row2"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YHorizontalLayout">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YHorizontalLayout/cellStyles"/>
+      <genOperations ecoreOperation="extension.ecore#//YHorizontalLayout/getCellStyle">
+        <genParameters ecoreParameter="extension.ecore#//YHorizontalLayout/getCellStyle/element"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YHorizontalLayoutCellStyle">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YHorizontalLayoutCellStyle/target"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YHorizontalLayoutCellStyle/alignment"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YVerticalLayout">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YVerticalLayout/cellStyles"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YVerticalLayoutCellStyle">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YVerticalLayoutCellStyle/target"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YVerticalLayoutCellStyle/alignment"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YSpanInfo">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSpanInfo/columnFrom"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSpanInfo/rowFrom"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSpanInfo/columnTo"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSpanInfo/rowTo"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YTable">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTable/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTable/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/selectionType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/selection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/multiSelection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/collection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/typeQualifiedName"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YTable/columns"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/itemImageProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/filter"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTable/refresh"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YColumn">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/icon"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/visible"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YColumn/datadescription"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YColumn/orphanDatadescriptions"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/orderable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/collapsed"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/collapsible"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/alignment"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/expandRatio"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/propertyPath"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YColumn/converter"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YColumn/typeQualifiedName"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YTree">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTree/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTree/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTree/selectionType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTree/selection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTree/multiSelection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTree/collection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTree/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTree/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTree/typeQualifiedName"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YOptionsGroup">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YOptionsGroup/datadescription"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YOptionsGroup/datatype"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/selectionType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/selection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/multiSelection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/collection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/typeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/captionProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/imageProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/descriptionProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YOptionsGroup/description"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YList">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YList/datadescription"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YList/datatype"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/selectionType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/selection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/multiSelection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/collection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/typeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/captionProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/imageProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/descriptionProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YList/description"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YLabel">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YLabel/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YLabel/value"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YImage">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YImage/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YImage/value"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YTextField">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTextField/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTextField/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTextField/value"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YBeanReferenceField">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YBeanReferenceField/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/value"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/typeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/inMemoryBeanProvider"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/inMemoryBeanProviderQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/captionPropertyPath"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/imagePropertyPath"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/descriptionProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/description"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/referenceSourceType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/referenceSourceTypeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanReferenceField/referenceSourceTypeProperty"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YTextArea">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTextArea/datadescription"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTextArea/datatype"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTextArea/value"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTextArea/wordWrap"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTextArea/rows"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YCheckBox">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YCheckBox/datadescription"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YCheckBox/datatype"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YCheckBox/value"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YBrowser">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YBrowser/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YBrowser/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBrowser/value"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YDateTime">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YDateTime/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YDateTime/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YDateTime/value"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YDecimalField">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YDecimalField/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YDecimalField/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YDecimalField/value"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YNumericField">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YNumericField/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YNumericField/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YNumericField/value"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YComboBox">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YComboBox/datadescription"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YComboBox/datatype"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YComboBox/selection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YComboBox/collection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YComboBox/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YComboBox/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YComboBox/typeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YComboBox/captionProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YComboBox/imageProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YComboBox/descriptionProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YComboBox/description"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YButton">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YButton/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YButton/clickListeners"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YButton/lastClickTime"/>
+      <genOperations ecoreOperation="extension.ecore#//YButton/addClickListener">
+        <genParameters ecoreParameter="extension.ecore#//YButton/addClickListener/listener"/>
+      </genOperations>
+      <genOperations ecoreOperation="extension.ecore#//YButton/removeClickListener">
+        <genParameters ecoreParameter="extension.ecore#//YButton/removeClickListener/listener"/>
+      </genOperations>
+      <genOperations ecoreOperation="extension.ecore#//YButton/createClickEndpoint"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YSlider">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YSlider/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSlider/value"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSlider/maxValue"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSlider/minValue"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSlider/resolution"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSlider/orientation"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YToggleButton">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YToggleButton/datadescription"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YProgressBar">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YProgressBar/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YProgressBar/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YProgressBar/value"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YTabSheet">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YTabSheet/tabs"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YTab">
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference extension.ecore#//YTab/parent"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YTab/embeddable"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTab/datadescription"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YTab/orphanDatadescriptions"/>
+      <genOperations ecoreOperation="extension.ecore#//YTab/getView"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YMasterDetail">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YMasterDetail/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YMasterDetail/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YMasterDetail/selection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YMasterDetail/collection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YMasterDetail/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YMasterDetail/emfNsURI"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YMasterDetail/masterElement"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YMasterDetail/detailElement"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YMasterDetail/typeQualifiedName"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YFormLayout">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YFormLayout/cellStyles"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YFormLayoutCellStyle">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YFormLayoutCellStyle/target"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YFormLayoutCellStyle/alignment"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="extension.ecore#//YSearchField"/>
+    <genClasses ecoreClass="extension.ecore#//YTextSearchField">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YTextSearchField/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTextSearchField/value"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTextSearchField/wildcard"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YTextSearchField/propertyPath"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YBooleanSearchField">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YBooleanSearchField/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBooleanSearchField/value"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBooleanSearchField/propertyPath"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YNumericSearchField">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YNumericSearchField/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YNumericSearchField/value"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YNumericSearchField/wildcard"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YNumericSearchField/propertyPath"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YNumericSearchField/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YNumericSearchField/typeQualifiedName"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YReferenceSearchField">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YReferenceSearchField/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YReferenceSearchField/value"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YReferenceSearchField/wildcard"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YReferenceSearchField/propertyPath"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YReferenceSearchField/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YReferenceSearchField/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YReferenceSearchField/typeQualifiedName"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YPanel">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YPanel/datadescription"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YPanel/firstContent"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YPanel/secondContent"/>
+      <genOperations ecoreOperation="extension.ecore#//YPanel/getCellStyle">
+        <genParameters ecoreParameter="extension.ecore#//YPanel/getCellStyle/element"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YSplitPanel">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YSplitPanel/datadescription"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YSplitPanel/cellStyles"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSplitPanel/fillHorizontal"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSplitPanel/splitPosition"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSplitPanel/vertical"/>
+      <genOperations ecoreOperation="extension.ecore#//YSplitPanel/getCellStyle">
+        <genParameters ecoreParameter="extension.ecore#//YSplitPanel/getCellStyle/element"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YSearchPanel">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSearchPanel/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSearchPanel/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSearchPanel/typeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSearchPanel/applyFilter"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSearchPanel/filter"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YEnumOptionsGroup">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YEnumOptionsGroup/datadescription"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YEnumOptionsGroup/datatype"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumOptionsGroup/selectionType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumOptionsGroup/selection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumOptionsGroup/multiSelection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumOptionsGroup/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumOptionsGroup/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumOptionsGroup/typeQualifiedName"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YEnumList">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YEnumList/datadescription"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YEnumList/datatype"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumList/selectionType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumList/selection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumList/multiSelection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumList/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumList/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumList/typeQualifiedName"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YEnumComboBox">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YEnumComboBox/datadescription"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YEnumComboBox/datatype"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumComboBox/selection"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumComboBox/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumComboBox/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YEnumComboBox/typeQualifiedName"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="extension.ecore#//YBeanServiceConsumer">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBeanServiceConsumer/useBeanService"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YAddToTableCommand">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YAddToTableCommand/table"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YAddToTableCommand/trigger"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YRemoveFromTableCommand">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YRemoveFromTableCommand/table"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YRemoveFromTableCommand/trigger"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YBrowserStreamInput">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBrowserStreamInput/filename"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBrowserStreamInput/inputStream"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YBrowserStreamInput/mimeType"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YSetNewBeanInstanceCommand">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YSetNewBeanInstanceCommand/target"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSetNewBeanInstanceCommand/trigger"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSetNewBeanInstanceCommand/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSetNewBeanInstanceCommand/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSetNewBeanInstanceCommand/typeQualifiedName"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YCssLayout">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YCssLayout/cellStyles"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YCssLayoutCellStyle">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YCssLayoutCellStyle/target"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YCssLayoutCellStyle/alignment"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YFilter">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YFilter/propertyPath"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YFilter/filterValue"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YAbsoluteLayout">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extension.ecore#//YAbsoluteLayout/cellStyles"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YAbsoluteLayout/childResizeEnabled"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YAbsoluteLayout/childMoveEnabled"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YAbsoluteLayoutCellStyle">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YAbsoluteLayoutCellStyle/target"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YAbsoluteLayoutCellStyle/top"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YAbsoluteLayoutCellStyle/bottom"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YAbsoluteLayoutCellStyle/left"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YAbsoluteLayoutCellStyle/right"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YAbsoluteLayoutCellStyle/zIndex"/>
+    </genClasses>
+    <genClasses ecoreClass="extension.ecore#//YSuggestTextField">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YSuggestTextField/datatype"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference extension.ecore#//YSuggestTextField/datadescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSuggestTextField/value"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSuggestTextField/useSuggestions"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSuggestTextField/lastSuggestion"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSuggestTextField/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSuggestTextField/emfNsURI"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSuggestTextField/typeQualifiedName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSuggestTextField/itemCaptionProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSuggestTextField/itemFilterProperty"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extension.ecore#//YSuggestTextField/itemUUIDProperty"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/org.eclipse.osbp.ecview.core.extension.model/plugin.properties b/org.eclipse.osbp.ecview.core.extension.model/plugin.properties
new file mode 100644
index 0000000..4a6a554
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = Extension model
+providerName = 
diff --git a/org.eclipse.osbp.ecview.core.extension.model/plugin.xml b/org.eclipse.osbp.ecview.core.extension.model/plugin.xml
new file mode 100644
index 0000000..cdad5fb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/plugin.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+   
+  <extension point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http://eclipse.org/emf/ecp/ecview/extension/datatypes"
+            class="org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage"
+            genModel="model/extension.genmodel"/>
+   </extension>
+
+  <extension point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http://eclipse.org/emf/ecp/ecview/extension/view"
+            class="org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage"
+            genModel="model/extension.genmodel"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.ecview.core.extension.model/pom.xml b/org.eclipse.osbp.ecview.core.extension.model/pom.xml
new file mode 100644
index 0000000..2af60bd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.extension.model</artifactId>
+  <description>Contains the extension ECView-Model</description>
+  <packaging>eclipse-plugin</packaging>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	 <version>0.9.0-SNAPSHOT</version>
+  </parent>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/ExtDatatypesFactory.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/ExtDatatypesFactory.java
new file mode 100644
index 0000000..4469bf5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/ExtDatatypesFactory.java
@@ -0,0 +1,176 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage
+ * @generated
+ */
+public interface ExtDatatypesFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ExtDatatypesFactory eINSTANCE = org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>YText Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YText Datatype</em>'.
+	 * @generated
+	 */
+	YTextDatatype createYTextDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YText Area Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YText Area Datatype</em>'.
+	 * @generated
+	 */
+	YTextAreaDatatype createYTextAreaDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YNumeric Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YNumeric Datatype</em>'.
+	 * @generated
+	 */
+	YNumericDatatype createYNumericDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YDecimal Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDecimal Datatype</em>'.
+	 * @generated
+	 */
+	YDecimalDatatype createYDecimalDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YTable Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YTable Datatype</em>'.
+	 * @generated
+	 */
+	YTableDatatype createYTableDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YCheck Box Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YCheck Box Datatype</em>'.
+	 * @generated
+	 */
+	YCheckBoxDatatype createYCheckBoxDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YCombo Box Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YCombo Box Datatype</em>'.
+	 * @generated
+	 */
+	YComboBoxDatatype createYComboBoxDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YList Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YList Data Type</em>'.
+	 * @generated
+	 */
+	YListDataType createYListDataType();
+
+	/**
+	 * Returns a new object of class '<em>YOptions Group Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YOptions Group Data Type</em>'.
+	 * @generated
+	 */
+	YOptionsGroupDataType createYOptionsGroupDataType();
+
+	/**
+	 * Returns a new object of class '<em>YBrowser Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBrowser Datatype</em>'.
+	 * @generated
+	 */
+	YBrowserDatatype createYBrowserDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YDate Time Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDate Time Datatype</em>'.
+	 * @generated
+	 */
+	YDateTimeDatatype createYDateTimeDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YTree Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YTree Datatype</em>'.
+	 * @generated
+	 */
+	YTreeDatatype createYTreeDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YProgress Bar Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YProgress Bar Datatype</em>'.
+	 * @generated
+	 */
+	YProgressBarDatatype createYProgressBarDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YTab Sheet Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YTab Sheet Datatype</em>'.
+	 * @generated
+	 */
+	YTabSheetDatatype createYTabSheetDatatype();
+
+	/**
+	 * Returns a new object of class '<em>YMaster Detail Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YMaster Detail Datatype</em>'.
+	 * @generated
+	 */
+	YMasterDetailDatatype createYMasterDetailDatatype();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	ExtDatatypesPackage getExtDatatypesPackage();
+
+} //ExtDatatypesFactory
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/ExtDatatypesPackage.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/ExtDatatypesPackage.java
new file mode 100644
index 0000000..90fa7ca
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/ExtDatatypesPackage.java
@@ -0,0 +1,1851 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ExtDatatypesPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "datatypes";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/ecview/v1/extension/datatypes";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "datatypes";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ExtDatatypesPackage eINSTANCE = org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl <em>YText Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTextDatatype()
+	 * @generated
+	 */
+	int YTEXT_DATATYPE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__ERROR_CODE = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__DEFAULT_ERROR_MESSAGE = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Max Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__MAX_LENGTH = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Min Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__MIN_LENGTH = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Reg Expression</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE__REG_EXPRESSION = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>YText Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl <em>YText Area Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTextAreaDatatype()
+	 * @generated
+	 */
+	int YTEXT_AREA_DATATYPE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__ERROR_CODE = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__DEFAULT_ERROR_MESSAGE = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Min Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__MIN_LENGTH = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Max Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__MAX_LENGTH = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Reg Expression</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE__REG_EXPRESSION = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>YText Area Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl <em>YNumeric Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYNumericDatatype()
+	 * @generated
+	 */
+	int YNUMERIC_DATATYPE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__ERROR_CODE = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Reg Expression</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__REG_EXPRESSION = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Grouping</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__GROUPING = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Mark Negative</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE__MARK_NEGATIVE = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>YNumeric Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDecimalDatatypeImpl <em>YDecimal Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDecimalDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYDecimalDatatype()
+	 * @generated
+	 */
+	int YDECIMAL_DATATYPE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__TAGS = YNUMERIC_DATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__ID = YNUMERIC_DATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__NAME = YNUMERIC_DATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__PROPERTIES = YNUMERIC_DATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__DESCRIPTION = YNUMERIC_DATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__VALIDATORS = YNUMERIC_DATATYPE__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Error Code</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__ERROR_CODE = YNUMERIC_DATATYPE__ERROR_CODE;
+
+	/**
+	 * The feature id for the '<em><b>Default Error Message</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__DEFAULT_ERROR_MESSAGE = YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE;
+
+	/**
+	 * The feature id for the '<em><b>Reg Expression</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__REG_EXPRESSION = YNUMERIC_DATATYPE__REG_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Grouping</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__GROUPING = YNUMERIC_DATATYPE__GROUPING;
+
+	/**
+	 * The feature id for the '<em><b>Mark Negative</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__MARK_NEGATIVE = YNUMERIC_DATATYPE__MARK_NEGATIVE;
+
+	/**
+	 * The feature id for the '<em><b>Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE__PRECISION = YNUMERIC_DATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YDecimal Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_DATATYPE_FEATURE_COUNT = YNUMERIC_DATATYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl <em>YTable Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTableDatatype()
+	 * @generated
+	 */
+	int YTABLE_DATATYPE = 4;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YTable Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl <em>YCheck Box Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYCheckBoxDatatype()
+	 * @generated
+	 */
+	int YCHECK_BOX_DATATYPE = 5;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YCheck Box Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl <em>YCombo Box Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYComboBoxDatatype()
+	 * @generated
+	 */
+	int YCOMBO_BOX_DATATYPE = 6;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YCombo Box Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl <em>YList Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYListDataType()
+	 * @generated
+	 */
+	int YLIST_DATA_TYPE = 7;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_DATA_TYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_DATA_TYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_DATA_TYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_DATA_TYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_DATA_TYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_DATA_TYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YList Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_DATA_TYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl <em>YOptions Group Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYOptionsGroupDataType()
+	 * @generated
+	 */
+	int YOPTIONS_GROUP_DATA_TYPE = 8;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP_DATA_TYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP_DATA_TYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP_DATA_TYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP_DATA_TYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP_DATA_TYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP_DATA_TYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YOptions Group Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP_DATA_TYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl <em>YBrowser Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYBrowserDatatype()
+	 * @generated
+	 */
+	int YBROWSER_DATATYPE = 9;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YBrowser Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl <em>YDate Time Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYDateTimeDatatype()
+	 * @generated
+	 */
+	int YDATE_TIME_DATATYPE = 10;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Format</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_DATATYPE__FORMAT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Resolution</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_DATATYPE__RESOLUTION = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YDate Time Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl <em>YTree Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTreeDatatype()
+	 * @generated
+	 */
+	int YTREE_DATATYPE = 11;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YTree Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl <em>YProgress Bar Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYProgressBarDatatype()
+	 * @generated
+	 */
+	int YPROGRESS_BAR_DATATYPE = 12;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YProgress Bar Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl <em>YTab Sheet Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTabSheetDatatype()
+	 * @generated
+	 */
+	int YTAB_SHEET_DATATYPE = 13;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YTab Sheet Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl <em>YMaster Detail Datatype</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYMasterDetailDatatype()
+	 * @generated
+	 */
+	int YMASTER_DETAIL_DATATYPE = 14;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL_DATATYPE__TAGS = DatatypesPackage.YDATATYPE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL_DATATYPE__ID = DatatypesPackage.YDATATYPE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL_DATATYPE__NAME = DatatypesPackage.YDATATYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL_DATATYPE__PROPERTIES = DatatypesPackage.YDATATYPE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL_DATATYPE__DESCRIPTION = DatatypesPackage.YDATATYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL_DATATYPE__VALIDATORS = DatatypesPackage.YDATATYPE__VALIDATORS;
+
+	/**
+	 * The number of structural features of the '<em>YMaster Detail Datatype</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL_DATATYPE_FEATURE_COUNT = DatatypesPackage.YDATATYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat <em>YDate Time Format</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYDateTimeFormat()
+	 * @generated
+	 */
+	int YDATE_TIME_FORMAT = 15;
+
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution <em>YDate Time Resolution</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYDateTimeResolution()
+	 * @generated
+	 */
+	int YDATE_TIME_RESOLUTION = 16;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype <em>YText Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YText Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype
+	 * @generated
+	 */
+	EClass getYTextDatatype();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype <em>YText Area Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YText Area Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype
+	 * @generated
+	 */
+	EClass getYTextAreaDatatype();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype <em>YNumeric Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YNumeric Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype
+	 * @generated
+	 */
+	EClass getYNumericDatatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype#isGrouping <em>Grouping</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Grouping</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype#isGrouping()
+	 * @see #getYNumericDatatype()
+	 * @generated
+	 */
+	EAttribute getYNumericDatatype_Grouping();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype#isMarkNegative <em>Mark Negative</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Mark Negative</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype#isMarkNegative()
+	 * @see #getYNumericDatatype()
+	 * @generated
+	 */
+	EAttribute getYNumericDatatype_MarkNegative();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype <em>YDecimal Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDecimal Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype
+	 * @generated
+	 */
+	EClass getYDecimalDatatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype#getPrecision <em>Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Precision</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype#getPrecision()
+	 * @see #getYDecimalDatatype()
+	 * @generated
+	 */
+	EAttribute getYDecimalDatatype_Precision();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype <em>YTable Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YTable Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype
+	 * @generated
+	 */
+	EClass getYTableDatatype();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype <em>YCheck Box Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCheck Box Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype
+	 * @generated
+	 */
+	EClass getYCheckBoxDatatype();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype <em>YCombo Box Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCombo Box Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype
+	 * @generated
+	 */
+	EClass getYComboBoxDatatype();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType <em>YList Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YList Data Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType
+	 * @generated
+	 */
+	EClass getYListDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType <em>YOptions Group Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YOptions Group Data Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType
+	 * @generated
+	 */
+	EClass getYOptionsGroupDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype <em>YBrowser Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBrowser Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype
+	 * @generated
+	 */
+	EClass getYBrowserDatatype();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype <em>YDate Time Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDate Time Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype
+	 * @generated
+	 */
+	EClass getYDateTimeDatatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype#getFormat <em>Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Format</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype#getFormat()
+	 * @see #getYDateTimeDatatype()
+	 * @generated
+	 */
+	EAttribute getYDateTimeDatatype_Format();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype#getResolution <em>Resolution</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Resolution</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype#getResolution()
+	 * @see #getYDateTimeDatatype()
+	 * @generated
+	 */
+	EAttribute getYDateTimeDatatype_Resolution();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype <em>YTree Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YTree Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype
+	 * @generated
+	 */
+	EClass getYTreeDatatype();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype <em>YProgress Bar Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YProgress Bar Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype
+	 * @generated
+	 */
+	EClass getYProgressBarDatatype();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype <em>YTab Sheet Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YTab Sheet Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype
+	 * @generated
+	 */
+	EClass getYTabSheetDatatype();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype <em>YMaster Detail Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YMaster Detail Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype
+	 * @generated
+	 */
+	EClass getYMasterDetailDatatype();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat <em>YDate Time Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YDate Time Format</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat
+	 * @generated
+	 */
+	EEnum getYDateTimeFormat();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution <em>YDate Time Resolution</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YDate Time Resolution</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution
+	 * @generated
+	 */
+	EEnum getYDateTimeResolution();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	ExtDatatypesFactory getExtDatatypesFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl <em>YText Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTextDatatype()
+		 * @generated
+		 */
+		EClass YTEXT_DATATYPE = eINSTANCE.getYTextDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl <em>YText Area Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTextAreaDatatype()
+		 * @generated
+		 */
+		EClass YTEXT_AREA_DATATYPE = eINSTANCE.getYTextAreaDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl <em>YNumeric Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYNumericDatatype()
+		 * @generated
+		 */
+		EClass YNUMERIC_DATATYPE = eINSTANCE.getYNumericDatatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Grouping</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YNUMERIC_DATATYPE__GROUPING = eINSTANCE.getYNumericDatatype_Grouping();
+
+		/**
+		 * The meta object literal for the '<em><b>Mark Negative</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YNUMERIC_DATATYPE__MARK_NEGATIVE = eINSTANCE.getYNumericDatatype_MarkNegative();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDecimalDatatypeImpl <em>YDecimal Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDecimalDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYDecimalDatatype()
+		 * @generated
+		 */
+		EClass YDECIMAL_DATATYPE = eINSTANCE.getYDecimalDatatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDECIMAL_DATATYPE__PRECISION = eINSTANCE.getYDecimalDatatype_Precision();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl <em>YTable Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTableDatatype()
+		 * @generated
+		 */
+		EClass YTABLE_DATATYPE = eINSTANCE.getYTableDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl <em>YCheck Box Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYCheckBoxDatatype()
+		 * @generated
+		 */
+		EClass YCHECK_BOX_DATATYPE = eINSTANCE.getYCheckBoxDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl <em>YCombo Box Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYComboBoxDatatype()
+		 * @generated
+		 */
+		EClass YCOMBO_BOX_DATATYPE = eINSTANCE.getYComboBoxDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl <em>YList Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYListDataType()
+		 * @generated
+		 */
+		EClass YLIST_DATA_TYPE = eINSTANCE.getYListDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl <em>YOptions Group Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYOptionsGroupDataType()
+		 * @generated
+		 */
+		EClass YOPTIONS_GROUP_DATA_TYPE = eINSTANCE.getYOptionsGroupDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl <em>YBrowser Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYBrowserDatatype()
+		 * @generated
+		 */
+		EClass YBROWSER_DATATYPE = eINSTANCE.getYBrowserDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl <em>YDate Time Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYDateTimeDatatype()
+		 * @generated
+		 */
+		EClass YDATE_TIME_DATATYPE = eINSTANCE.getYDateTimeDatatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Format</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDATE_TIME_DATATYPE__FORMAT = eINSTANCE.getYDateTimeDatatype_Format();
+
+		/**
+		 * The meta object literal for the '<em><b>Resolution</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDATE_TIME_DATATYPE__RESOLUTION = eINSTANCE.getYDateTimeDatatype_Resolution();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl <em>YTree Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTreeDatatype()
+		 * @generated
+		 */
+		EClass YTREE_DATATYPE = eINSTANCE.getYTreeDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl <em>YProgress Bar Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYProgressBarDatatype()
+		 * @generated
+		 */
+		EClass YPROGRESS_BAR_DATATYPE = eINSTANCE.getYProgressBarDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl <em>YTab Sheet Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYTabSheetDatatype()
+		 * @generated
+		 */
+		EClass YTAB_SHEET_DATATYPE = eINSTANCE.getYTabSheetDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl <em>YMaster Detail Datatype</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYMasterDetailDatatype()
+		 * @generated
+		 */
+		EClass YMASTER_DETAIL_DATATYPE = eINSTANCE.getYMasterDetailDatatype();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat <em>YDate Time Format</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYDateTimeFormat()
+		 * @generated
+		 */
+		EEnum YDATE_TIME_FORMAT = eINSTANCE.getYDateTimeFormat();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution <em>YDate Time Resolution</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution
+		 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl#getYDateTimeResolution()
+		 * @generated
+		 */
+		EEnum YDATE_TIME_RESOLUTION = eINSTANCE.getYDateTimeResolution();
+
+	}
+
+} //ExtDatatypesPackage
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YBrowserDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YBrowserDatatype.java
new file mode 100644
index 0000000..2f7a9d0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YBrowserDatatype.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBrowser Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYBrowserDatatype()
+ * @model
+ * @generated
+ */
+public interface YBrowserDatatype extends YDatatype {
+} // YBrowserDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YCheckBoxDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YCheckBoxDatatype.java
new file mode 100644
index 0000000..60fb813
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YCheckBoxDatatype.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YCheck Box Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYCheckBoxDatatype()
+ * @model
+ * @generated
+ */
+public interface YCheckBoxDatatype extends YDatatype {
+} // YCheckBoxDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YComboBoxDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YComboBoxDatatype.java
new file mode 100644
index 0000000..34da8ed
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YComboBoxDatatype.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YCombo Box Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYComboBoxDatatype()
+ * @model
+ * @generated
+ */
+public interface YComboBoxDatatype extends YDatatype {
+} // YComboBoxDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDateTimeDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDateTimeDatatype.java
new file mode 100644
index 0000000..4847191
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDateTimeDatatype.java
@@ -0,0 +1,93 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YDate Time Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype#getFormat <em>Format</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype#getResolution <em>Resolution</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYDateTimeDatatype()
+ * @model
+ * @generated
+ */
+public interface YDateTimeDatatype extends YDatatype {
+	/**
+	 * Returns the value of the '<em><b>Format</b></em>' attribute.
+	 * The default value is <code>"DATE"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Format</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Format</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat
+	 * @see #setFormat(YDateTimeFormat)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYDateTimeDatatype_Format()
+	 * @model default="DATE"
+	 * @generated
+	 */
+	YDateTimeFormat getFormat();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype#getFormat <em>Format</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Format</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat
+	 * @see #getFormat()
+	 * @generated
+	 */
+	void setFormat(YDateTimeFormat value);
+
+	/**
+	 * Returns the value of the '<em><b>Resolution</b></em>' attribute.
+	 * The default value is <code>"UNDEFINED"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Resolution</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Resolution</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution
+	 * @see #setResolution(YDateTimeResolution)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYDateTimeDatatype_Resolution()
+	 * @model default="UNDEFINED"
+	 * @generated
+	 */
+	YDateTimeResolution getResolution();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype#getResolution <em>Resolution</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Resolution</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution
+	 * @see #getResolution()
+	 * @generated
+	 */
+	void setResolution(YDateTimeResolution value);
+
+} // YDateTimeDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDateTimeFormat.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDateTimeFormat.java
new file mode 100644
index 0000000..8228916
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDateTimeFormat.java
@@ -0,0 +1,243 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YDate Time Format</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYDateTimeFormat()
+ * @model
+ * @generated
+ */
+public enum YDateTimeFormat implements Enumerator {
+	/**
+	 * The '<em><b>DATE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DATE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DATE(0, "DATE", "DATE"),
+
+	/**
+	 * The '<em><b>TIME</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TIME_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TIME(1, "TIME", "TIME"),
+
+	/**
+	 * The '<em><b>DATE TIME</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DATE_TIME_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DATE_TIME(2, "DATE_TIME", "DATE_TIME");
+
+	/**
+	 * The '<em><b>DATE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DATE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #DATE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DATE_VALUE = 0;
+
+	/**
+	 * The '<em><b>TIME</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TIME</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #TIME
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TIME_VALUE = 1;
+
+	/**
+	 * The '<em><b>DATE TIME</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DATE TIME</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #DATE_TIME
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DATE_TIME_VALUE = 2;
+
+	/**
+	 * An array of all the '<em><b>YDate Time Format</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YDateTimeFormat[] VALUES_ARRAY =
+		new YDateTimeFormat[] {
+			DATE,
+			TIME,
+			DATE_TIME,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YDate Time Format</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YDateTimeFormat> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YDate Time Format</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YDateTimeFormat get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YDateTimeFormat result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YDate Time Format</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YDateTimeFormat getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YDateTimeFormat result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YDate Time Format</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YDateTimeFormat get(int value) {
+		switch (value) {
+			case DATE_VALUE: return DATE;
+			case TIME_VALUE: return TIME;
+			case DATE_TIME_VALUE: return DATE_TIME;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YDateTimeFormat(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YDateTimeFormat
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDateTimeResolution.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDateTimeResolution.java
new file mode 100644
index 0000000..e801a17
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDateTimeResolution.java
@@ -0,0 +1,349 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YDate Time Resolution</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYDateTimeResolution()
+ * @model
+ * @generated
+ */
+public enum YDateTimeResolution implements Enumerator {
+	/**
+	 * The '<em><b>SECOND</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SECOND_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SECOND(0, "SECOND", "SECOND"),
+
+	/**
+	 * The '<em><b>MINUTE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MINUTE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MINUTE(1, "MINUTE", "MINUTE"),
+
+	/**
+	 * The '<em><b>HOUR</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HOUR_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	HOUR(2, "HOUR", "HOUR"),
+
+	/**
+	 * The '<em><b>DAY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DAY_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DAY(3, "DAY", "DAY"),
+
+	/**
+	 * The '<em><b>MONTH</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MONTH_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MONTH(4, "MONTH", "MONTH"),
+
+	/**
+	 * The '<em><b>YEAR</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #YEAR_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	YEAR(5, "YEAR", "YEAR"), /**
+	 * The '<em><b>UNDEFINED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNDEFINED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UNDEFINED(6, "UNDEFINED", "UNDEFINED");
+
+	/**
+	 * The '<em><b>SECOND</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SECOND</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #SECOND
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SECOND_VALUE = 0;
+
+	/**
+	 * The '<em><b>MINUTE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MINUTE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #MINUTE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MINUTE_VALUE = 1;
+
+	/**
+	 * The '<em><b>HOUR</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>HOUR</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #HOUR
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HOUR_VALUE = 2;
+
+	/**
+	 * The '<em><b>DAY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DAY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #DAY
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DAY_VALUE = 3;
+
+	/**
+	 * The '<em><b>MONTH</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MONTH</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #MONTH
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MONTH_VALUE = 4;
+
+	/**
+	 * The '<em><b>YEAR</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>YEAR</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #YEAR
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int YEAR_VALUE = 5;
+
+	/**
+	 * The '<em><b>UNDEFINED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>UNDEFINED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #UNDEFINED
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UNDEFINED_VALUE = 6;
+
+	/**
+	 * An array of all the '<em><b>YDate Time Resolution</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YDateTimeResolution[] VALUES_ARRAY =
+		new YDateTimeResolution[] {
+			SECOND,
+			MINUTE,
+			HOUR,
+			DAY,
+			MONTH,
+			YEAR,
+			UNDEFINED,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YDate Time Resolution</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YDateTimeResolution> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YDate Time Resolution</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YDateTimeResolution get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YDateTimeResolution result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YDate Time Resolution</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YDateTimeResolution getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YDateTimeResolution result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YDate Time Resolution</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YDateTimeResolution get(int value) {
+		switch (value) {
+			case SECOND_VALUE: return SECOND;
+			case MINUTE_VALUE: return MINUTE;
+			case HOUR_VALUE: return HOUR;
+			case DAY_VALUE: return DAY;
+			case MONTH_VALUE: return MONTH;
+			case YEAR_VALUE: return YEAR;
+			case UNDEFINED_VALUE: return UNDEFINED;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YDateTimeResolution(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YDateTimeResolution
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDecimalDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDecimalDatatype.java
new file mode 100644
index 0000000..ad4e8b2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YDecimalDatatype.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YDecimal Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype#getPrecision <em>Precision</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYDecimalDatatype()
+ * @model
+ * @generated
+ */
+public interface YDecimalDatatype extends YNumericDatatype, YRegexpValidationConfig {
+	/**
+	 * Returns the value of the '<em><b>Precision</b></em>' attribute.
+	 * The default value is <code>"2"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Precision</em>' attribute.
+	 * @see #setPrecision(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYDecimalDatatype_Precision()
+	 * @model default="2"
+	 * @generated
+	 */
+	int getPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype#getPrecision <em>Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Precision</em>' attribute.
+	 * @see #getPrecision()
+	 * @generated
+	 */
+	void setPrecision(int value);
+
+} // YDecimalDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YListDataType.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YListDataType.java
new file mode 100644
index 0000000..57120ff
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YListDataType.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YList Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYListDataType()
+ * @model
+ * @generated
+ */
+public interface YListDataType extends YDatatype {
+} // YListDataType
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YMasterDetailDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YMasterDetailDatatype.java
new file mode 100644
index 0000000..bd79ec7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YMasterDetailDatatype.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YMaster Detail Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYMasterDetailDatatype()
+ * @model
+ * @generated
+ */
+public interface YMasterDetailDatatype extends YDatatype {
+} // YMasterDetailDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YNumericDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YNumericDatatype.java
new file mode 100644
index 0000000..3385ceb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YNumericDatatype.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YNumeric Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype#isGrouping <em>Grouping</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype#isMarkNegative <em>Mark Negative</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYNumericDatatype()
+ * @model
+ * @generated
+ */
+public interface YNumericDatatype extends YDatatype, YRegexpValidationConfig {
+	/**
+	 * Returns the value of the '<em><b>Grouping</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Grouping</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Grouping</em>' attribute.
+	 * @see #setGrouping(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYNumericDatatype_Grouping()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isGrouping();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype#isGrouping <em>Grouping</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Grouping</em>' attribute.
+	 * @see #isGrouping()
+	 * @generated
+	 */
+	void setGrouping(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Mark Negative</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Mark Negative</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Mark Negative</em>' attribute.
+	 * @see #setMarkNegative(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYNumericDatatype_MarkNegative()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isMarkNegative();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype#isMarkNegative <em>Mark Negative</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Mark Negative</em>' attribute.
+	 * @see #isMarkNegative()
+	 * @generated
+	 */
+	void setMarkNegative(boolean value);
+
+} // YNumericDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YOptionsGroupDataType.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YOptionsGroupDataType.java
new file mode 100644
index 0000000..8088f11
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YOptionsGroupDataType.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YOptions Group Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYOptionsGroupDataType()
+ * @model
+ * @generated
+ */
+public interface YOptionsGroupDataType extends YDatatype {
+} // YOptionsGroupDataType
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YProgressBarDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YProgressBarDatatype.java
new file mode 100644
index 0000000..e176020
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YProgressBarDatatype.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YProgress Bar Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYProgressBarDatatype()
+ * @model
+ * @generated
+ */
+public interface YProgressBarDatatype extends YDatatype {
+} // YProgressBarDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTabSheetDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTabSheetDatatype.java
new file mode 100644
index 0000000..8090ae9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTabSheetDatatype.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YTab Sheet Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYTabSheetDatatype()
+ * @model
+ * @generated
+ */
+public interface YTabSheetDatatype extends YDatatype {
+} // YTabSheetDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTableDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTableDatatype.java
new file mode 100644
index 0000000..c057544
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTableDatatype.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YTable Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYTableDatatype()
+ * @model
+ * @generated
+ */
+public interface YTableDatatype extends YDatatype {
+} // YTableDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTextAreaDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTextAreaDatatype.java
new file mode 100644
index 0000000..a653f43
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTextAreaDatatype.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YText Area Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYTextAreaDatatype()
+ * @model
+ * @generated
+ */
+public interface YTextAreaDatatype extends YDatatype, YMinLengthValidationConfig, YMaxLengthValidationConfig, YRegexpValidationConfig {
+} // YTextAreaDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTextDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTextDatatype.java
new file mode 100644
index 0000000..0fcd8a3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTextDatatype.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YText Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYTextDatatype()
+ * @model
+ * @generated
+ */
+public interface YTextDatatype extends YDatatype, YMaxLengthValidationConfig, YMinLengthValidationConfig, YRegexpValidationConfig {
+
+} // YTextDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTreeDatatype.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTreeDatatype.java
new file mode 100644
index 0000000..6da5440
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/YTreeDatatype.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YTree Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#getYTreeDatatype()
+ * @model
+ * @generated
+ */
+public interface YTreeDatatype extends YDatatype {
+} // YTreeDatatype
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/ExtDatatypesFactoryImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/ExtDatatypesFactoryImpl.java
new file mode 100644
index 0000000..a0ea7a0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/ExtDatatypesFactoryImpl.java
@@ -0,0 +1,399 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtDatatypesFactoryImpl extends EFactoryImpl implements ExtDatatypesFactory {
+	
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	public static ExtDatatypesFactory init() {
+		try {
+			ExtDatatypesFactory theExtDatatypesFactory = (ExtDatatypesFactory)EPackage.Registry.INSTANCE.getEFactory(ExtDatatypesPackage.eNS_URI);
+			if (theExtDatatypesFactory != null) {
+				return theExtDatatypesFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new ExtDatatypesFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtDatatypesFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eClass
+	 *            the e class
+	 * @return the e object
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case ExtDatatypesPackage.YTEXT_DATATYPE: return createYTextDatatype();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE: return createYTextAreaDatatype();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE: return createYNumericDatatype();
+			case ExtDatatypesPackage.YDECIMAL_DATATYPE: return createYDecimalDatatype();
+			case ExtDatatypesPackage.YTABLE_DATATYPE: return createYTableDatatype();
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE: return createYCheckBoxDatatype();
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE: return createYComboBoxDatatype();
+			case ExtDatatypesPackage.YLIST_DATA_TYPE: return createYListDataType();
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE: return createYOptionsGroupDataType();
+			case ExtDatatypesPackage.YBROWSER_DATATYPE: return createYBrowserDatatype();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE: return createYDateTimeDatatype();
+			case ExtDatatypesPackage.YTREE_DATATYPE: return createYTreeDatatype();
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE: return createYProgressBarDatatype();
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE: return createYTabSheetDatatype();
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE: return createYMasterDetailDatatype();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case ExtDatatypesPackage.YDATE_TIME_FORMAT:
+				return createYDateTimeFormatFromString(eDataType, initialValue);
+			case ExtDatatypesPackage.YDATE_TIME_RESOLUTION:
+				return createYDateTimeResolutionFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case ExtDatatypesPackage.YDATE_TIME_FORMAT:
+				return convertYDateTimeFormatToString(eDataType, instanceValue);
+			case ExtDatatypesPackage.YDATE_TIME_RESOLUTION:
+				return convertYDateTimeResolutionToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text datatype
+	 * @generated
+	 */
+	public YTextDatatype createYTextDatatype() {
+		YTextDatatypeImpl yTextDatatype = new YTextDatatypeImpl();
+		return yTextDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area datatype
+	 * @generated
+	 */
+	public YTextAreaDatatype createYTextAreaDatatype() {
+		YTextAreaDatatypeImpl yTextAreaDatatype = new YTextAreaDatatypeImpl();
+		return yTextAreaDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric datatype
+	 * @generated
+	 */
+	public YNumericDatatype createYNumericDatatype() {
+		YNumericDatatypeImpl yNumericDatatype = new YNumericDatatypeImpl();
+		return yNumericDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y decimal datatype
+	 * @generated
+	 */
+	public YDecimalDatatype createYDecimalDatatype() {
+		YDecimalDatatypeImpl yDecimalDatatype = new YDecimalDatatypeImpl();
+		return yDecimalDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table datatype
+	 * @generated
+	 */
+	public YTableDatatype createYTableDatatype() {
+		YTableDatatypeImpl yTableDatatype = new YTableDatatypeImpl();
+		return yTableDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y check box datatype
+	 * @generated
+	 */
+	public YCheckBoxDatatype createYCheckBoxDatatype() {
+		YCheckBoxDatatypeImpl yCheckBoxDatatype = new YCheckBoxDatatypeImpl();
+		return yCheckBoxDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box datatype
+	 * @generated
+	 */
+	public YComboBoxDatatype createYComboBoxDatatype() {
+		YComboBoxDatatypeImpl yComboBoxDatatype = new YComboBoxDatatypeImpl();
+		return yComboBoxDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list data type
+	 * @generated
+	 */
+	public YListDataType createYListDataType() {
+		YListDataTypeImpl yListDataType = new YListDataTypeImpl();
+		return yListDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group data type
+	 * @generated
+	 */
+	public YOptionsGroupDataType createYOptionsGroupDataType() {
+		YOptionsGroupDataTypeImpl yOptionsGroupDataType = new YOptionsGroupDataTypeImpl();
+		return yOptionsGroupDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser datatype
+	 * @generated
+	 */
+	public YBrowserDatatype createYBrowserDatatype() {
+		YBrowserDatatypeImpl yBrowserDatatype = new YBrowserDatatypeImpl();
+		return yBrowserDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time datatype
+	 * @generated
+	 */
+	public YDateTimeDatatype createYDateTimeDatatype() {
+		YDateTimeDatatypeImpl yDateTimeDatatype = new YDateTimeDatatypeImpl();
+		return yDateTimeDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree datatype
+	 * @generated
+	 */
+	public YTreeDatatype createYTreeDatatype() {
+		YTreeDatatypeImpl yTreeDatatype = new YTreeDatatypeImpl();
+		return yTreeDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y progress bar datatype
+	 * @generated
+	 */
+	public YProgressBarDatatype createYProgressBarDatatype() {
+		YProgressBarDatatypeImpl yProgressBarDatatype = new YProgressBarDatatypeImpl();
+		return yProgressBarDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab sheet datatype
+	 * @generated
+	 */
+	public YTabSheetDatatype createYTabSheetDatatype() {
+		YTabSheetDatatypeImpl yTabSheetDatatype = new YTabSheetDatatypeImpl();
+		return yTabSheetDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail datatype
+	 * @generated
+	 */
+	public YMasterDetailDatatype createYMasterDetailDatatype() {
+		YMasterDetailDatatypeImpl yMasterDetailDatatype = new YMasterDetailDatatypeImpl();
+		return yMasterDetailDatatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y date time format
+	 * @generated
+	 */
+	public YDateTimeFormat createYDateTimeFormatFromString(EDataType eDataType, String initialValue) {
+		YDateTimeFormat result = YDateTimeFormat.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYDateTimeFormatToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y date time resolution
+	 * @generated
+	 */
+	public YDateTimeResolution createYDateTimeResolutionFromString(EDataType eDataType, String initialValue) {
+		YDateTimeResolution result = YDateTimeResolution.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYDateTimeResolutionToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the ext datatypes package
+	 * @generated
+	 */
+	public ExtDatatypesPackage getExtDatatypesPackage() {
+		return (ExtDatatypesPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the package
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static ExtDatatypesPackage getPackage() {
+		return ExtDatatypesPackage.eINSTANCE;
+	}
+
+} //ExtDatatypesFactoryImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/ExtDatatypesPackageImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/ExtDatatypesPackageImpl.java
new file mode 100644
index 0000000..9949003
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/ExtDatatypesPackageImpl.java
@@ -0,0 +1,650 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class ExtDatatypesPackageImpl extends EPackageImpl implements
+		ExtDatatypesPackage {
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTextDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTextAreaDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yNumericDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yDecimalDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTableDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yCheckBoxDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yComboBoxDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yListDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yOptionsGroupDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yBrowserDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yDateTimeDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTreeDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yProgressBarDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTabSheetDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yMasterDetailDatatypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EEnum yDateTimeFormatEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EEnum yDateTimeResolutionEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the
+	 * package package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory
+	 * method {@link #init init()}, which also performs initialization of the
+	 * package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private ExtDatatypesPackageImpl() {
+		super(eNS_URI, ExtDatatypesFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model,
+	 * and for any others upon which it depends.
+	 * 
+	 * <p>
+	 * This method is used to initialize {@link ExtDatatypesPackage#eINSTANCE}
+	 * when that field is accessed. Clients should not invoke it directly.
+	 * Instead, they should simply access that field to obtain the package. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @return the ext datatypes package
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static ExtDatatypesPackage init() {
+		if (isInited) return (ExtDatatypesPackage)EPackage.Registry.INSTANCE.getEPackage(ExtDatatypesPackage.eNS_URI);
+
+		// Obtain or create and register package
+		ExtDatatypesPackageImpl theExtDatatypesPackage = (ExtDatatypesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ExtDatatypesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ExtDatatypesPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		BindingPackage.eINSTANCE.eClass();
+		CoreModelPackage.eINSTANCE.eClass();
+		DatatypesPackage.eINSTANCE.eClass();
+		ValidationPackage.eINSTANCE.eClass();
+		VisibilityPackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		ExtensionModelPackageImpl theExtensionModelPackage = (ExtensionModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ExtensionModelPackage.eNS_URI) instanceof ExtensionModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ExtensionModelPackage.eNS_URI) : ExtensionModelPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theExtDatatypesPackage.createPackageContents();
+		theExtensionModelPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theExtDatatypesPackage.initializePackageContents();
+		theExtensionModelPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theExtDatatypesPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(ExtDatatypesPackage.eNS_URI, theExtDatatypesPackage);
+		return theExtDatatypesPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text datatype
+	 * @generated
+	 */
+	public EClass getYTextDatatype() {
+		return yTextDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area datatype
+	 * @generated
+	 */
+	public EClass getYTextAreaDatatype() {
+		return yTextAreaDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric datatype
+	 * @generated
+	 */
+	public EClass getYNumericDatatype() {
+		return yNumericDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric datatype_ grouping
+	 * @generated
+	 */
+	public EAttribute getYNumericDatatype_Grouping() {
+		return (EAttribute)yNumericDatatypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric datatype_ mark negative
+	 * @generated
+	 */
+	public EAttribute getYNumericDatatype_MarkNegative() {
+		return (EAttribute)yNumericDatatypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y decimal datatype
+	 * @generated
+	 */
+	public EClass getYDecimalDatatype() {
+		return yDecimalDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y decimal datatype_ precision
+	 * @generated
+	 */
+	public EAttribute getYDecimalDatatype_Precision() {
+		return (EAttribute)yDecimalDatatypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table datatype
+	 * @generated
+	 */
+	public EClass getYTableDatatype() {
+		return yTableDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y check box datatype
+	 * @generated
+	 */
+	public EClass getYCheckBoxDatatype() {
+		return yCheckBoxDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box datatype
+	 * @generated
+	 */
+	public EClass getYComboBoxDatatype() {
+		return yComboBoxDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list data type
+	 * @generated
+	 */
+	public EClass getYListDataType() {
+		return yListDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group data type
+	 * @generated
+	 */
+	public EClass getYOptionsGroupDataType() {
+		return yOptionsGroupDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser datatype
+	 * @generated
+	 */
+	public EClass getYBrowserDatatype() {
+		return yBrowserDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time datatype
+	 * @generated
+	 */
+	public EClass getYDateTimeDatatype() {
+		return yDateTimeDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time datatype_ format
+	 * @generated
+	 */
+	public EAttribute getYDateTimeDatatype_Format() {
+		return (EAttribute)yDateTimeDatatypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time datatype_ resolution
+	 * @generated
+	 */
+	public EAttribute getYDateTimeDatatype_Resolution() {
+		return (EAttribute)yDateTimeDatatypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree datatype
+	 * @generated
+	 */
+	public EClass getYTreeDatatype() {
+		return yTreeDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y progress bar datatype
+	 * @generated
+	 */
+	public EClass getYProgressBarDatatype() {
+		return yProgressBarDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab sheet datatype
+	 * @generated
+	 */
+	public EClass getYTabSheetDatatype() {
+		return yTabSheetDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail datatype
+	 * @generated
+	 */
+	public EClass getYMasterDetailDatatype() {
+		return yMasterDetailDatatypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time format
+	 * @generated
+	 */
+	public EEnum getYDateTimeFormat() {
+		return yDateTimeFormatEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time resolution
+	 * @generated
+	 */
+	public EEnum getYDateTimeResolution() {
+		return yDateTimeResolutionEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the ext datatypes factory
+	 * @generated
+	 */
+	public ExtDatatypesFactory getExtDatatypesFactory() {
+		return (ExtDatatypesFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		yTextDatatypeEClass = createEClass(YTEXT_DATATYPE);
+
+		yTextAreaDatatypeEClass = createEClass(YTEXT_AREA_DATATYPE);
+
+		yNumericDatatypeEClass = createEClass(YNUMERIC_DATATYPE);
+		createEAttribute(yNumericDatatypeEClass, YNUMERIC_DATATYPE__GROUPING);
+		createEAttribute(yNumericDatatypeEClass, YNUMERIC_DATATYPE__MARK_NEGATIVE);
+
+		yDecimalDatatypeEClass = createEClass(YDECIMAL_DATATYPE);
+		createEAttribute(yDecimalDatatypeEClass, YDECIMAL_DATATYPE__PRECISION);
+
+		yTableDatatypeEClass = createEClass(YTABLE_DATATYPE);
+
+		yCheckBoxDatatypeEClass = createEClass(YCHECK_BOX_DATATYPE);
+
+		yComboBoxDatatypeEClass = createEClass(YCOMBO_BOX_DATATYPE);
+
+		yListDataTypeEClass = createEClass(YLIST_DATA_TYPE);
+
+		yOptionsGroupDataTypeEClass = createEClass(YOPTIONS_GROUP_DATA_TYPE);
+
+		yBrowserDatatypeEClass = createEClass(YBROWSER_DATATYPE);
+
+		yDateTimeDatatypeEClass = createEClass(YDATE_TIME_DATATYPE);
+		createEAttribute(yDateTimeDatatypeEClass, YDATE_TIME_DATATYPE__FORMAT);
+		createEAttribute(yDateTimeDatatypeEClass, YDATE_TIME_DATATYPE__RESOLUTION);
+
+		yTreeDatatypeEClass = createEClass(YTREE_DATATYPE);
+
+		yProgressBarDatatypeEClass = createEClass(YPROGRESS_BAR_DATATYPE);
+
+		yTabSheetDatatypeEClass = createEClass(YTAB_SHEET_DATATYPE);
+
+		yMasterDetailDatatypeEClass = createEClass(YMASTER_DETAIL_DATATYPE);
+
+		// Create enums
+		yDateTimeFormatEEnum = createEEnum(YDATE_TIME_FORMAT);
+		yDateTimeResolutionEEnum = createEEnum(YDATE_TIME_RESOLUTION);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		DatatypesPackage theDatatypesPackage = (DatatypesPackage)EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+		ValidationPackage theValidationPackage = (ValidationPackage)EPackage.Registry.INSTANCE.getEPackage(ValidationPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		yTextDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yTextDatatypeEClass.getESuperTypes().add(theValidationPackage.getYMaxLengthValidationConfig());
+		yTextDatatypeEClass.getESuperTypes().add(theValidationPackage.getYMinLengthValidationConfig());
+		yTextDatatypeEClass.getESuperTypes().add(theValidationPackage.getYRegexpValidationConfig());
+		yTextAreaDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yTextAreaDatatypeEClass.getESuperTypes().add(theValidationPackage.getYMinLengthValidationConfig());
+		yTextAreaDatatypeEClass.getESuperTypes().add(theValidationPackage.getYMaxLengthValidationConfig());
+		yTextAreaDatatypeEClass.getESuperTypes().add(theValidationPackage.getYRegexpValidationConfig());
+		yNumericDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yNumericDatatypeEClass.getESuperTypes().add(theValidationPackage.getYRegexpValidationConfig());
+		yDecimalDatatypeEClass.getESuperTypes().add(this.getYNumericDatatype());
+		yDecimalDatatypeEClass.getESuperTypes().add(theValidationPackage.getYRegexpValidationConfig());
+		yTableDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yCheckBoxDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yComboBoxDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yListDataTypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yOptionsGroupDataTypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yBrowserDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yDateTimeDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yTreeDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yProgressBarDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yTabSheetDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+		yMasterDetailDatatypeEClass.getESuperTypes().add(theDatatypesPackage.getYDatatype());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(yTextDatatypeEClass, YTextDatatype.class, "YTextDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yTextAreaDatatypeEClass, YTextAreaDatatype.class, "YTextAreaDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yNumericDatatypeEClass, YNumericDatatype.class, "YNumericDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYNumericDatatype_Grouping(), ecorePackage.getEBoolean(), "grouping", "true", 0, 1, YNumericDatatype.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYNumericDatatype_MarkNegative(), ecorePackage.getEBoolean(), "markNegative", "true", 0, 1, YNumericDatatype.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yDecimalDatatypeEClass, YDecimalDatatype.class, "YDecimalDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYDecimalDatatype_Precision(), ecorePackage.getEInt(), "precision", "2", 0, 1, YDecimalDatatype.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yTableDatatypeEClass, YTableDatatype.class, "YTableDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yCheckBoxDatatypeEClass, YCheckBoxDatatype.class, "YCheckBoxDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yComboBoxDatatypeEClass, YComboBoxDatatype.class, "YComboBoxDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yListDataTypeEClass, YListDataType.class, "YListDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yOptionsGroupDataTypeEClass, YOptionsGroupDataType.class, "YOptionsGroupDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yBrowserDatatypeEClass, YBrowserDatatype.class, "YBrowserDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yDateTimeDatatypeEClass, YDateTimeDatatype.class, "YDateTimeDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYDateTimeDatatype_Format(), this.getYDateTimeFormat(), "format", "DATE", 0, 1, YDateTimeDatatype.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDateTimeDatatype_Resolution(), this.getYDateTimeResolution(), "resolution", "UNDEFINED", 0, 1, YDateTimeDatatype.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yTreeDatatypeEClass, YTreeDatatype.class, "YTreeDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yProgressBarDatatypeEClass, YProgressBarDatatype.class, "YProgressBarDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yTabSheetDatatypeEClass, YTabSheetDatatype.class, "YTabSheetDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yMasterDetailDatatypeEClass, YMasterDetailDatatype.class, "YMasterDetailDatatype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		// Initialize enums and add enum literals
+		initEEnum(yDateTimeFormatEEnum, YDateTimeFormat.class, "YDateTimeFormat");
+		addEEnumLiteral(yDateTimeFormatEEnum, YDateTimeFormat.DATE);
+		addEEnumLiteral(yDateTimeFormatEEnum, YDateTimeFormat.TIME);
+		addEEnumLiteral(yDateTimeFormatEEnum, YDateTimeFormat.DATE_TIME);
+
+		initEEnum(yDateTimeResolutionEEnum, YDateTimeResolution.class, "YDateTimeResolution");
+		addEEnumLiteral(yDateTimeResolutionEEnum, YDateTimeResolution.SECOND);
+		addEEnumLiteral(yDateTimeResolutionEEnum, YDateTimeResolution.MINUTE);
+		addEEnumLiteral(yDateTimeResolutionEEnum, YDateTimeResolution.HOUR);
+		addEEnumLiteral(yDateTimeResolutionEEnum, YDateTimeResolution.DAY);
+		addEEnumLiteral(yDateTimeResolutionEEnum, YDateTimeResolution.MONTH);
+		addEEnumLiteral(yDateTimeResolutionEEnum, YDateTimeResolution.YEAR);
+		addEEnumLiteral(yDateTimeResolutionEEnum, YDateTimeResolution.UNDEFINED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // ExtDatatypesPackageImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YBrowserDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YBrowserDatatypeImpl.java
new file mode 100644
index 0000000..b267e87
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YBrowserDatatypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YBrowser Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YBrowserDatatypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBrowserDatatypeImpl extends MinimalEObjectImpl.Container implements YBrowserDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBrowserDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YBROWSER_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YBROWSER_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YBROWSER_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YBROWSER_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YBROWSER_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YBROWSER_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YBROWSER_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YBROWSER_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YBrowserDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YCheckBoxDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YCheckBoxDatatypeImpl.java
new file mode 100644
index 0000000..63339b9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YCheckBoxDatatypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YCheck Box Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YCheckBoxDatatypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YCheckBoxDatatypeImpl extends MinimalEObjectImpl.Container implements YCheckBoxDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YCheckBoxDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YCHECK_BOX_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YCHECK_BOX_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YCHECK_BOX_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YCHECK_BOX_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YCHECK_BOX_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YCHECK_BOX_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YCHECK_BOX_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YCheckBoxDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YComboBoxDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YComboBoxDatatypeImpl.java
new file mode 100644
index 0000000..2e05423
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YComboBoxDatatypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YCombo Box Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YComboBoxDatatypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YComboBoxDatatypeImpl extends MinimalEObjectImpl.Container implements YComboBoxDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YComboBoxDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YCOMBO_BOX_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YComboBoxDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YDateTimeDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YDateTimeDatatypeImpl.java
new file mode 100644
index 0000000..abc1b39
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YDateTimeDatatypeImpl.java
@@ -0,0 +1,519 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YDate Time Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl#getValidators <em>Validators</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl#getFormat <em>Format</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDateTimeDatatypeImpl#getResolution <em>Resolution</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YDateTimeDatatypeImpl extends MinimalEObjectImpl.Container implements YDateTimeDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * The default value of the '{@link #getFormat() <em>Format</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormat()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YDateTimeFormat FORMAT_EDEFAULT = YDateTimeFormat.DATE;
+
+	/**
+	 * The cached value of the '{@link #getFormat() <em>Format</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormat()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDateTimeFormat format = FORMAT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getResolution() <em>Resolution</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getResolution()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YDateTimeResolution RESOLUTION_EDEFAULT = YDateTimeResolution.UNDEFINED;
+
+	/**
+	 * The cached value of the '{@link #getResolution() <em>Resolution</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getResolution()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDateTimeResolution resolution = RESOLUTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDateTimeDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YDATE_TIME_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YDATE_TIME_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YDATE_TIME_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YDATE_TIME_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YDATE_TIME_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YDATE_TIME_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YDATE_TIME_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDateTimeFormat getFormat() {
+		return format;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFormat(YDateTimeFormat newFormat) {
+		YDateTimeFormat oldFormat = format;
+		format = newFormat == null ? FORMAT_EDEFAULT : newFormat;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YDATE_TIME_DATATYPE__FORMAT, oldFormat, format));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDateTimeResolution getResolution() {
+		return resolution;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setResolution(YDateTimeResolution newResolution) {
+		YDateTimeResolution oldResolution = resolution;
+		resolution = newResolution == null ? RESOLUTION_EDEFAULT : newResolution;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YDATE_TIME_DATATYPE__RESOLUTION, oldResolution, resolution));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__VALIDATORS:
+				return getValidators();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__FORMAT:
+				return getFormat();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__RESOLUTION:
+				return getResolution();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__FORMAT:
+				setFormat((YDateTimeFormat)newValue);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__RESOLUTION:
+				setResolution((YDateTimeResolution)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__FORMAT:
+				setFormat(FORMAT_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__RESOLUTION:
+				setResolution(RESOLUTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__FORMAT:
+				return format != FORMAT_EDEFAULT;
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE__RESOLUTION:
+				return resolution != RESOLUTION_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(", format: ");
+		result.append(format);
+		result.append(", resolution: ");
+		result.append(resolution);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YDateTimeDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YDecimalDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YDecimalDatatypeImpl.java
new file mode 100644
index 0000000..e2cb678
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YDecimalDatatypeImpl.java
@@ -0,0 +1,167 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YDecimal Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YDecimalDatatypeImpl#getPrecision <em>Precision</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YDecimalDatatypeImpl extends YNumericDatatypeImpl implements YDecimalDatatype {
+	/**
+	 * The default value of the '{@link #getPrecision() <em>Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int PRECISION_EDEFAULT = 2;
+
+	/**
+	 * The cached value of the '{@link #getPrecision() <em>Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int precision = PRECISION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YDecimalDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YDECIMAL_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getPrecision() {
+		return precision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPrecision(int newPrecision) {
+		int oldPrecision = precision;
+		precision = newPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YDECIMAL_DATATYPE__PRECISION, oldPrecision, precision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YDECIMAL_DATATYPE__PRECISION:
+				return getPrecision();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YDECIMAL_DATATYPE__PRECISION:
+				setPrecision((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YDECIMAL_DATATYPE__PRECISION:
+				setPrecision(PRECISION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YDECIMAL_DATATYPE__PRECISION:
+				return precision != PRECISION_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (precision: ");
+		result.append(precision);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YDecimalDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YListDataTypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YListDataTypeImpl.java
new file mode 100644
index 0000000..12ad923
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YListDataTypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YList Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YListDataTypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YListDataTypeImpl extends MinimalEObjectImpl.Container implements YListDataType {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YListDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YLIST_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YLIST_DATA_TYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YLIST_DATA_TYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YLIST_DATA_TYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YLIST_DATA_TYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YLIST_DATA_TYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YLIST_DATA_TYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YLIST_DATA_TYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YListDataTypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YMasterDetailDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YMasterDetailDatatypeImpl.java
new file mode 100644
index 0000000..fcd9e38
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YMasterDetailDatatypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YMaster Detail Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YMasterDetailDatatypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YMasterDetailDatatypeImpl extends MinimalEObjectImpl.Container implements YMasterDetailDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YMasterDetailDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YMASTER_DETAIL_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YMasterDetailDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YNumericDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YNumericDatatypeImpl.java
new file mode 100644
index 0000000..506b282
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YNumericDatatypeImpl.java
@@ -0,0 +1,728 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YNumeric Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#getValidators <em>Validators</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#getErrorCode <em>Error Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#getDefaultErrorMessage <em>Default Error Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#getRegExpression <em>Reg Expression</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#isGrouping <em>Grouping</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YNumericDatatypeImpl#isMarkNegative <em>Mark Negative</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YNumericDatatypeImpl extends MinimalEObjectImpl.Container implements YNumericDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * The default value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ERROR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String errorCode = ERROR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_ERROR_MESSAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultErrorMessage = DEFAULT_ERROR_MESSAGE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRegExpression() <em>Reg Expression</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRegExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REG_EXPRESSION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRegExpression() <em>Reg Expression</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRegExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected String regExpression = REG_EXPRESSION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isGrouping() <em>Grouping</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGrouping()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean GROUPING_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isGrouping() <em>Grouping</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGrouping()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean grouping = GROUPING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMarkNegative() <em>Mark Negative</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMarkNegative()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARK_NEGATIVE_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isMarkNegative() <em>Mark Negative</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMarkNegative()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean markNegative = MARK_NEGATIVE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YNumericDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YNUMERIC_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YNUMERIC_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YNUMERIC_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YNUMERIC_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YNUMERIC_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YNUMERIC_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YNUMERIC_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getErrorCode() {
+		return errorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrorCode(String newErrorCode) {
+		String oldErrorCode = errorCode;
+		errorCode = newErrorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YNUMERIC_DATATYPE__ERROR_CODE, oldErrorCode, errorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultErrorMessage() {
+		return defaultErrorMessage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultErrorMessage(String newDefaultErrorMessage) {
+		String oldDefaultErrorMessage = defaultErrorMessage;
+		defaultErrorMessage = newDefaultErrorMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE, oldDefaultErrorMessage, defaultErrorMessage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRegExpression() {
+		return regExpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRegExpression(String newRegExpression) {
+		String oldRegExpression = regExpression;
+		regExpression = newRegExpression;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YNUMERIC_DATATYPE__REG_EXPRESSION, oldRegExpression, regExpression));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isGrouping() {
+		return grouping;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGrouping(boolean newGrouping) {
+		boolean oldGrouping = grouping;
+		grouping = newGrouping;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YNUMERIC_DATATYPE__GROUPING, oldGrouping, grouping));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMarkNegative() {
+		return markNegative;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarkNegative(boolean newMarkNegative) {
+		boolean oldMarkNegative = markNegative;
+		markNegative = newMarkNegative;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YNUMERIC_DATATYPE__MARK_NEGATIVE, oldMarkNegative, markNegative));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__VALIDATORS:
+				return getValidators();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ERROR_CODE:
+				return getErrorCode();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				return getDefaultErrorMessage();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__REG_EXPRESSION:
+				return getRegExpression();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__GROUPING:
+				return isGrouping();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__MARK_NEGATIVE:
+				return isMarkNegative();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ERROR_CODE:
+				setErrorCode((String)newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage((String)newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__REG_EXPRESSION:
+				setRegExpression((String)newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__GROUPING:
+				setGrouping((Boolean)newValue);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__MARK_NEGATIVE:
+				setMarkNegative((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ERROR_CODE:
+				setErrorCode(ERROR_CODE_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage(DEFAULT_ERROR_MESSAGE_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__REG_EXPRESSION:
+				setRegExpression(REG_EXPRESSION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__GROUPING:
+				setGrouping(GROUPING_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__MARK_NEGATIVE:
+				setMarkNegative(MARK_NEGATIVE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__ERROR_CODE:
+				return ERROR_CODE_EDEFAULT == null ? errorCode != null : !ERROR_CODE_EDEFAULT.equals(errorCode);
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				return DEFAULT_ERROR_MESSAGE_EDEFAULT == null ? defaultErrorMessage != null : !DEFAULT_ERROR_MESSAGE_EDEFAULT.equals(defaultErrorMessage);
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__REG_EXPRESSION:
+				return REG_EXPRESSION_EDEFAULT == null ? regExpression != null : !REG_EXPRESSION_EDEFAULT.equals(regExpression);
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__GROUPING:
+				return grouping != GROUPING_EDEFAULT;
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE__MARK_NEGATIVE:
+				return markNegative != MARK_NEGATIVE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YNUMERIC_DATATYPE__ERROR_CODE: return ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE;
+				case ExtDatatypesPackage.YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YRegexpValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YNUMERIC_DATATYPE__REG_EXPRESSION: return ValidationPackage.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE: return ExtDatatypesPackage.YNUMERIC_DATATYPE__ERROR_CODE;
+				case ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE: return ExtDatatypesPackage.YNUMERIC_DATATYPE__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YRegexpValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION: return ExtDatatypesPackage.YNUMERIC_DATATYPE__REG_EXPRESSION;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(", errorCode: ");
+		result.append(errorCode);
+		result.append(", defaultErrorMessage: ");
+		result.append(defaultErrorMessage);
+		result.append(", regExpression: ");
+		result.append(regExpression);
+		result.append(", grouping: ");
+		result.append(grouping);
+		result.append(", markNegative: ");
+		result.append(markNegative);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YNumericDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YOptionsGroupDataTypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YOptionsGroupDataTypeImpl.java
new file mode 100644
index 0000000..e88dee3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YOptionsGroupDataTypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YOptions Group Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YOptionsGroupDataTypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YOptionsGroupDataTypeImpl extends MinimalEObjectImpl.Container implements YOptionsGroupDataType {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YOptionsGroupDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YOPTIONS_GROUP_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YOptionsGroupDataTypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YProgressBarDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YProgressBarDatatypeImpl.java
new file mode 100644
index 0000000..02a9817
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YProgressBarDatatypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YProgress Bar Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YProgressBarDatatypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YProgressBarDatatypeImpl extends MinimalEObjectImpl.Container implements YProgressBarDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YProgressBarDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YPROGRESS_BAR_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YProgressBarDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTabSheetDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTabSheetDatatypeImpl.java
new file mode 100644
index 0000000..bf0926b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTabSheetDatatypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YTab Sheet Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTabSheetDatatypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTabSheetDatatypeImpl extends MinimalEObjectImpl.Container implements YTabSheetDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTabSheetDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YTAB_SHEET_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTAB_SHEET_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTAB_SHEET_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YTAB_SHEET_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YTAB_SHEET_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTAB_SHEET_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YTAB_SHEET_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YTabSheetDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTableDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTableDatatypeImpl.java
new file mode 100644
index 0000000..d2167b8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTableDatatypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YTable Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTableDatatypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTableDatatypeImpl extends MinimalEObjectImpl.Container implements YTableDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTableDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YTABLE_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTABLE_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTABLE_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YTABLE_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YTABLE_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTABLE_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YTABLE_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTABLE_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTABLE_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YTABLE_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YTABLE_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YTABLE_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YTABLE_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YTABLE_DATATYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTABLE_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTABLE_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTABLE_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTABLE_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YTABLE_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YTABLE_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YTABLE_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YTABLE_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YTABLE_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YTableDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTextAreaDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTextAreaDatatypeImpl.java
new file mode 100644
index 0000000..05dd728
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTextAreaDatatypeImpl.java
@@ -0,0 +1,754 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YText Area Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getValidators <em>Validators</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getErrorCode <em>Error Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getDefaultErrorMessage <em>Default Error Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getMinLength <em>Min Length</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getMaxLength <em>Max Length</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextAreaDatatypeImpl#getRegExpression <em>Reg Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTextAreaDatatypeImpl extends MinimalEObjectImpl.Container implements YTextAreaDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * The default value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ERROR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String errorCode = ERROR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_ERROR_MESSAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultErrorMessage = DEFAULT_ERROR_MESSAGE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMinLength() <em>Min Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MIN_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMinLength() <em>Min Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int minLength = MIN_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaxLength() <em>Max Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAX_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaxLength() <em>Max Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maxLength = MAX_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRegExpression() <em>Reg Expression</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRegExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REG_EXPRESSION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRegExpression() <em>Reg Expression</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRegExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected String regExpression = REG_EXPRESSION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTextAreaDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YTEXT_AREA_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getErrorCode() {
+		return errorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrorCode(String newErrorCode) {
+		String oldErrorCode = errorCode;
+		errorCode = newErrorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ERROR_CODE, oldErrorCode, errorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultErrorMessage() {
+		return defaultErrorMessage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultErrorMessage(String newDefaultErrorMessage) {
+		String oldDefaultErrorMessage = defaultErrorMessage;
+		defaultErrorMessage = newDefaultErrorMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DEFAULT_ERROR_MESSAGE, oldDefaultErrorMessage, defaultErrorMessage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMinLength() {
+		return minLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMinLength(int newMinLength) {
+		int oldMinLength = minLength;
+		minLength = newMinLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MIN_LENGTH, oldMinLength, minLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaxLength() {
+		return maxLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaxLength(int newMaxLength) {
+		int oldMaxLength = maxLength;
+		maxLength = newMaxLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MAX_LENGTH, oldMaxLength, maxLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRegExpression() {
+		return regExpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRegExpression(String newRegExpression) {
+		String oldRegExpression = regExpression;
+		regExpression = newRegExpression;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_AREA_DATATYPE__REG_EXPRESSION, oldRegExpression, regExpression));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__VALIDATORS:
+				return getValidators();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ERROR_CODE:
+				return getErrorCode();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				return getDefaultErrorMessage();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MIN_LENGTH:
+				return getMinLength();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MAX_LENGTH:
+				return getMaxLength();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__REG_EXPRESSION:
+				return getRegExpression();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ERROR_CODE:
+				setErrorCode((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MIN_LENGTH:
+				setMinLength((Integer)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MAX_LENGTH:
+				setMaxLength((Integer)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__REG_EXPRESSION:
+				setRegExpression((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ERROR_CODE:
+				setErrorCode(ERROR_CODE_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage(DEFAULT_ERROR_MESSAGE_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MIN_LENGTH:
+				setMinLength(MIN_LENGTH_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MAX_LENGTH:
+				setMaxLength(MAX_LENGTH_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__REG_EXPRESSION:
+				setRegExpression(REG_EXPRESSION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ERROR_CODE:
+				return ERROR_CODE_EDEFAULT == null ? errorCode != null : !ERROR_CODE_EDEFAULT.equals(errorCode);
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				return DEFAULT_ERROR_MESSAGE_EDEFAULT == null ? defaultErrorMessage != null : !DEFAULT_ERROR_MESSAGE_EDEFAULT.equals(defaultErrorMessage);
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MIN_LENGTH:
+				return minLength != MIN_LENGTH_EDEFAULT;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MAX_LENGTH:
+				return maxLength != MAX_LENGTH_EDEFAULT;
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__REG_EXPRESSION:
+				return REG_EXPRESSION_EDEFAULT == null ? regExpression != null : !REG_EXPRESSION_EDEFAULT.equals(regExpression);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ERROR_CODE: return ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE;
+				case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMinLengthValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MIN_LENGTH: return ValidationPackage.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMaxLengthValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MAX_LENGTH: return ValidationPackage.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH;
+				default: return -1;
+			}
+		}
+		if (baseClass == YRegexpValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YTEXT_AREA_DATATYPE__REG_EXPRESSION: return ValidationPackage.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE: return ExtDatatypesPackage.YTEXT_AREA_DATATYPE__ERROR_CODE;
+				case ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE: return ExtDatatypesPackage.YTEXT_AREA_DATATYPE__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMinLengthValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH: return ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MIN_LENGTH;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMaxLengthValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH: return ExtDatatypesPackage.YTEXT_AREA_DATATYPE__MAX_LENGTH;
+				default: return -1;
+			}
+		}
+		if (baseClass == YRegexpValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION: return ExtDatatypesPackage.YTEXT_AREA_DATATYPE__REG_EXPRESSION;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(", errorCode: ");
+		result.append(errorCode);
+		result.append(", defaultErrorMessage: ");
+		result.append(defaultErrorMessage);
+		result.append(", minLength: ");
+		result.append(minLength);
+		result.append(", maxLength: ");
+		result.append(maxLength);
+		result.append(", regExpression: ");
+		result.append(regExpression);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YTextAreaDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTextDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTextDatatypeImpl.java
new file mode 100644
index 0000000..e18c781
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTextDatatypeImpl.java
@@ -0,0 +1,754 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YText Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getValidators <em>Validators</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getErrorCode <em>Error Code</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getDefaultErrorMessage <em>Default Error Message</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getMaxLength <em>Max Length</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getMinLength <em>Min Length</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTextDatatypeImpl#getRegExpression <em>Reg Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTextDatatypeImpl extends MinimalEObjectImpl.Container implements YTextDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * The default value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ERROR_CODE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrorCode() <em>Error Code</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorCode()
+	 * @generated
+	 * @ordered
+	 */
+	protected String errorCode = ERROR_CODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_ERROR_MESSAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultErrorMessage() <em>Default Error Message</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultErrorMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultErrorMessage = DEFAULT_ERROR_MESSAGE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaxLength() <em>Max Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAX_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaxLength() <em>Max Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maxLength = MAX_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMinLength() <em>Min Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MIN_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMinLength() <em>Min Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int minLength = MIN_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRegExpression() <em>Reg Expression</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRegExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REG_EXPRESSION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRegExpression() <em>Reg Expression</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRegExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected String regExpression = REG_EXPRESSION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTextDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YTEXT_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YTEXT_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YTEXT_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YTEXT_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getErrorCode() {
+		return errorCode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrorCode(String newErrorCode) {
+		String oldErrorCode = errorCode;
+		errorCode = newErrorCode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_DATATYPE__ERROR_CODE, oldErrorCode, errorCode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultErrorMessage() {
+		return defaultErrorMessage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultErrorMessage(String newDefaultErrorMessage) {
+		String oldDefaultErrorMessage = defaultErrorMessage;
+		defaultErrorMessage = newDefaultErrorMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_DATATYPE__DEFAULT_ERROR_MESSAGE, oldDefaultErrorMessage, defaultErrorMessage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMinLength() {
+		return minLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMinLength(int newMinLength) {
+		int oldMinLength = minLength;
+		minLength = newMinLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_DATATYPE__MIN_LENGTH, oldMinLength, minLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaxLength() {
+		return maxLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaxLength(int newMaxLength) {
+		int oldMaxLength = maxLength;
+		maxLength = newMaxLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_DATATYPE__MAX_LENGTH, oldMaxLength, maxLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRegExpression() {
+		return regExpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRegExpression(String newRegExpression) {
+		String oldRegExpression = regExpression;
+		regExpression = newRegExpression;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTEXT_DATATYPE__REG_EXPRESSION, oldRegExpression, regExpression));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__VALIDATORS:
+				return getValidators();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ERROR_CODE:
+				return getErrorCode();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				return getDefaultErrorMessage();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MAX_LENGTH:
+				return getMaxLength();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MIN_LENGTH:
+				return getMinLength();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__REG_EXPRESSION:
+				return getRegExpression();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ERROR_CODE:
+				setErrorCode((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MAX_LENGTH:
+				setMaxLength((Integer)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MIN_LENGTH:
+				setMinLength((Integer)newValue);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__REG_EXPRESSION:
+				setRegExpression((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ERROR_CODE:
+				setErrorCode(ERROR_CODE_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				setDefaultErrorMessage(DEFAULT_ERROR_MESSAGE_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MAX_LENGTH:
+				setMaxLength(MAX_LENGTH_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MIN_LENGTH:
+				setMinLength(MIN_LENGTH_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__REG_EXPRESSION:
+				setRegExpression(REG_EXPRESSION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTEXT_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YTEXT_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YTEXT_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YTEXT_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+			case ExtDatatypesPackage.YTEXT_DATATYPE__ERROR_CODE:
+				return ERROR_CODE_EDEFAULT == null ? errorCode != null : !ERROR_CODE_EDEFAULT.equals(errorCode);
+			case ExtDatatypesPackage.YTEXT_DATATYPE__DEFAULT_ERROR_MESSAGE:
+				return DEFAULT_ERROR_MESSAGE_EDEFAULT == null ? defaultErrorMessage != null : !DEFAULT_ERROR_MESSAGE_EDEFAULT.equals(defaultErrorMessage);
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MAX_LENGTH:
+				return maxLength != MAX_LENGTH_EDEFAULT;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__MIN_LENGTH:
+				return minLength != MIN_LENGTH_EDEFAULT;
+			case ExtDatatypesPackage.YTEXT_DATATYPE__REG_EXPRESSION:
+				return REG_EXPRESSION_EDEFAULT == null ? regExpression != null : !REG_EXPRESSION_EDEFAULT.equals(regExpression);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YTEXT_DATATYPE__ERROR_CODE: return ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE;
+				case ExtDatatypesPackage.YTEXT_DATATYPE__DEFAULT_ERROR_MESSAGE: return ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMaxLengthValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YTEXT_DATATYPE__MAX_LENGTH: return ValidationPackage.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMinLengthValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YTEXT_DATATYPE__MIN_LENGTH: return ValidationPackage.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH;
+				default: return -1;
+			}
+		}
+		if (baseClass == YRegexpValidationConfig.class) {
+			switch (derivedFeatureID) {
+				case ExtDatatypesPackage.YTEXT_DATATYPE__REG_EXPRESSION: return ValidationPackage.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YVALIDATION_CONFIG__ERROR_CODE: return ExtDatatypesPackage.YTEXT_DATATYPE__ERROR_CODE;
+				case ValidationPackage.YVALIDATION_CONFIG__DEFAULT_ERROR_MESSAGE: return ExtDatatypesPackage.YTEXT_DATATYPE__DEFAULT_ERROR_MESSAGE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMaxLengthValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YMAX_LENGTH_VALIDATION_CONFIG__MAX_LENGTH: return ExtDatatypesPackage.YTEXT_DATATYPE__MAX_LENGTH;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMinLengthValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YMIN_LENGTH_VALIDATION_CONFIG__MIN_LENGTH: return ExtDatatypesPackage.YTEXT_DATATYPE__MIN_LENGTH;
+				default: return -1;
+			}
+		}
+		if (baseClass == YRegexpValidationConfig.class) {
+			switch (baseFeatureID) {
+				case ValidationPackage.YREGEXP_VALIDATION_CONFIG__REG_EXPRESSION: return ExtDatatypesPackage.YTEXT_DATATYPE__REG_EXPRESSION;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(", errorCode: ");
+		result.append(errorCode);
+		result.append(", defaultErrorMessage: ");
+		result.append(defaultErrorMessage);
+		result.append(", maxLength: ");
+		result.append(maxLength);
+		result.append(", minLength: ");
+		result.append(minLength);
+		result.append(", regExpression: ");
+		result.append(regExpression);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YTextDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTreeDatatypeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTreeDatatypeImpl.java
new file mode 100644
index 0000000..91f995c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/impl/YTreeDatatypeImpl.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YTree Datatype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.YTreeDatatypeImpl#getValidators <em>Validators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTreeDatatypeImpl extends MinimalEObjectImpl.Container implements YTreeDatatype {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValidators() <em>Validators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YValidator> validators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTreeDatatypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtDatatypesPackage.Literals.YTREE_DATATYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTREE_DATATYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTREE_DATATYPE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtDatatypesPackage.YTREE_DATATYPE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtDatatypesPackage.YTREE_DATATYPE__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtDatatypesPackage.YTREE_DATATYPE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YValidator> getValidators() {
+		if (validators == null) {
+			validators = new EObjectResolvingEList<YValidator>(YValidator.class, this, ExtDatatypesPackage.YTREE_DATATYPE__VALIDATORS);
+		}
+		return validators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTREE_DATATYPE__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTREE_DATATYPE__TAGS:
+				return getTags();
+			case ExtDatatypesPackage.YTREE_DATATYPE__ID:
+				return getId();
+			case ExtDatatypesPackage.YTREE_DATATYPE__NAME:
+				return getName();
+			case ExtDatatypesPackage.YTREE_DATATYPE__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtDatatypesPackage.YTREE_DATATYPE__DESCRIPTION:
+				return getDescription();
+			case ExtDatatypesPackage.YTREE_DATATYPE__VALIDATORS:
+				return getValidators();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTREE_DATATYPE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__ID:
+				setId((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__NAME:
+				setName((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				getValidators().addAll((Collection<? extends YValidator>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTREE_DATATYPE__TAGS:
+				getTags().clear();
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtDatatypesPackage.YTREE_DATATYPE__VALIDATORS:
+				getValidators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtDatatypesPackage.YTREE_DATATYPE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtDatatypesPackage.YTREE_DATATYPE__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtDatatypesPackage.YTREE_DATATYPE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtDatatypesPackage.YTREE_DATATYPE__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtDatatypesPackage.YTREE_DATATYPE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtDatatypesPackage.YTREE_DATATYPE__VALIDATORS:
+				return validators != null && !validators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YTreeDatatypeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/util/ExtDatatypesAdapterFactory.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/util/ExtDatatypesAdapterFactory.java
new file mode 100644
index 0000000..c91aa15
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/util/ExtDatatypesAdapterFactory.java
@@ -0,0 +1,544 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage
+ * @generated
+ */
+public class ExtDatatypesAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ExtDatatypesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtDatatypesAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = ExtDatatypesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtDatatypesSwitch<Adapter> modelSwitch =
+		new ExtDatatypesSwitch<Adapter>() {
+			@Override
+			public Adapter caseYTextDatatype(YTextDatatype object) {
+				return createYTextDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYTextAreaDatatype(YTextAreaDatatype object) {
+				return createYTextAreaDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYNumericDatatype(YNumericDatatype object) {
+				return createYNumericDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYDecimalDatatype(YDecimalDatatype object) {
+				return createYDecimalDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYTableDatatype(YTableDatatype object) {
+				return createYTableDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYCheckBoxDatatype(YCheckBoxDatatype object) {
+				return createYCheckBoxDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYComboBoxDatatype(YComboBoxDatatype object) {
+				return createYComboBoxDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYListDataType(YListDataType object) {
+				return createYListDataTypeAdapter();
+			}
+			@Override
+			public Adapter caseYOptionsGroupDataType(YOptionsGroupDataType object) {
+				return createYOptionsGroupDataTypeAdapter();
+			}
+			@Override
+			public Adapter caseYBrowserDatatype(YBrowserDatatype object) {
+				return createYBrowserDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYDateTimeDatatype(YDateTimeDatatype object) {
+				return createYDateTimeDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYTreeDatatype(YTreeDatatype object) {
+				return createYTreeDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYProgressBarDatatype(YProgressBarDatatype object) {
+				return createYProgressBarDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYTabSheetDatatype(YTabSheetDatatype object) {
+				return createYTabSheetDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYMasterDetailDatatype(YMasterDetailDatatype object) {
+				return createYMasterDetailDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYTaggable(YTaggable object) {
+				return createYTaggableAdapter();
+			}
+			@Override
+			public Adapter caseYElement(YElement object) {
+				return createYElementAdapter();
+			}
+			@Override
+			public Adapter caseYDtBase(YDtBase object) {
+				return createYDtBaseAdapter();
+			}
+			@Override
+			public Adapter caseYDatatype(YDatatype object) {
+				return createYDatatypeAdapter();
+			}
+			@Override
+			public Adapter caseYValidationConfig(YValidationConfig object) {
+				return createYValidationConfigAdapter();
+			}
+			@Override
+			public Adapter caseYMaxLengthValidationConfig(YMaxLengthValidationConfig object) {
+				return createYMaxLengthValidationConfigAdapter();
+			}
+			@Override
+			public Adapter caseYMinLengthValidationConfig(YMinLengthValidationConfig object) {
+				return createYMinLengthValidationConfigAdapter();
+			}
+			@Override
+			public Adapter caseYRegexpValidationConfig(YRegexpValidationConfig object) {
+				return createYRegexpValidationConfigAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype <em>YText Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype
+	 * @generated
+	 */
+	public Adapter createYTextDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype <em>YText Area Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype
+	 * @generated
+	 */
+	public Adapter createYTextAreaDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype <em>YNumeric Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype
+	 * @generated
+	 */
+	public Adapter createYNumericDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype <em>YDecimal Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype
+	 * @generated
+	 */
+	public Adapter createYDecimalDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype <em>YTable Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype
+	 * @generated
+	 */
+	public Adapter createYTableDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype <em>YCheck Box Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype
+	 * @generated
+	 */
+	public Adapter createYCheckBoxDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype <em>YCombo Box Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype
+	 * @generated
+	 */
+	public Adapter createYComboBoxDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType <em>YList Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType
+	 * @generated
+	 */
+	public Adapter createYListDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType <em>YOptions Group Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType
+	 * @generated
+	 */
+	public Adapter createYOptionsGroupDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype <em>YBrowser Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype
+	 * @generated
+	 */
+	public Adapter createYBrowserDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype <em>YDate Time Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype
+	 * @generated
+	 */
+	public Adapter createYDateTimeDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype <em>YTree Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype
+	 * @generated
+	 */
+	public Adapter createYTreeDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype <em>YProgress Bar Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype
+	 * @generated
+	 */
+	public Adapter createYProgressBarDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype <em>YTab Sheet Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype
+	 * @generated
+	 */
+	public Adapter createYTabSheetDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype <em>YMaster Detail Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype
+	 * @generated
+	 */
+	public Adapter createYMasterDetailDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+	 * @generated
+	 */
+	public Adapter createYTaggableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+	 * @generated
+	 */
+	public Adapter createYElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase <em>YDt Base</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase
+	 * @generated
+	 */
+	public Adapter createYDtBaseAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype <em>YDatatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype
+	 * @generated
+	 */
+	public Adapter createYDatatypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig <em>YValidation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig
+	 * @generated
+	 */
+	public Adapter createYValidationConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig <em>YMax Length Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig
+	 * @generated
+	 */
+	public Adapter createYMaxLengthValidationConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig <em>YMin Length Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig
+	 * @generated
+	 */
+	public Adapter createYMinLengthValidationConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig <em>YRegexp Validation Config</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig
+	 * @generated
+	 */
+	public Adapter createYRegexpValidationConfigAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //ExtDatatypesAdapterFactory
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/util/ExtDatatypesSwitch.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/util/ExtDatatypesSwitch.java
new file mode 100644
index 0000000..3e85ed7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/datatypes/util/ExtDatatypesSwitch.java
@@ -0,0 +1,626 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.datatypes.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatatype;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDtBase;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidationConfig;
+import org.eclipse.osbp.ecview.core.common.model.validation.YValidationConfig;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage
+ * @generated
+ */
+public class ExtDatatypesSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ExtDatatypesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtDatatypesSwitch() {
+		if (modelPackage == null) {
+			modelPackage = ExtDatatypesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case ExtDatatypesPackage.YTEXT_DATATYPE: {
+				YTextDatatype yTextDatatype = (YTextDatatype)theEObject;
+				T result = caseYTextDatatype(yTextDatatype);
+				if (result == null) result = caseYDatatype(yTextDatatype);
+				if (result == null) result = caseYMaxLengthValidationConfig(yTextDatatype);
+				if (result == null) result = caseYMinLengthValidationConfig(yTextDatatype);
+				if (result == null) result = caseYRegexpValidationConfig(yTextDatatype);
+				if (result == null) result = caseYDtBase(yTextDatatype);
+				if (result == null) result = caseYValidationConfig(yTextDatatype);
+				if (result == null) result = caseYElement(yTextDatatype);
+				if (result == null) result = caseYTaggable(yTextDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YTEXT_AREA_DATATYPE: {
+				YTextAreaDatatype yTextAreaDatatype = (YTextAreaDatatype)theEObject;
+				T result = caseYTextAreaDatatype(yTextAreaDatatype);
+				if (result == null) result = caseYDatatype(yTextAreaDatatype);
+				if (result == null) result = caseYMinLengthValidationConfig(yTextAreaDatatype);
+				if (result == null) result = caseYMaxLengthValidationConfig(yTextAreaDatatype);
+				if (result == null) result = caseYRegexpValidationConfig(yTextAreaDatatype);
+				if (result == null) result = caseYDtBase(yTextAreaDatatype);
+				if (result == null) result = caseYValidationConfig(yTextAreaDatatype);
+				if (result == null) result = caseYElement(yTextAreaDatatype);
+				if (result == null) result = caseYTaggable(yTextAreaDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YNUMERIC_DATATYPE: {
+				YNumericDatatype yNumericDatatype = (YNumericDatatype)theEObject;
+				T result = caseYNumericDatatype(yNumericDatatype);
+				if (result == null) result = caseYDatatype(yNumericDatatype);
+				if (result == null) result = caseYRegexpValidationConfig(yNumericDatatype);
+				if (result == null) result = caseYDtBase(yNumericDatatype);
+				if (result == null) result = caseYValidationConfig(yNumericDatatype);
+				if (result == null) result = caseYElement(yNumericDatatype);
+				if (result == null) result = caseYTaggable(yNumericDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YDECIMAL_DATATYPE: {
+				YDecimalDatatype yDecimalDatatype = (YDecimalDatatype)theEObject;
+				T result = caseYDecimalDatatype(yDecimalDatatype);
+				if (result == null) result = caseYNumericDatatype(yDecimalDatatype);
+				if (result == null) result = caseYDatatype(yDecimalDatatype);
+				if (result == null) result = caseYRegexpValidationConfig(yDecimalDatatype);
+				if (result == null) result = caseYDtBase(yDecimalDatatype);
+				if (result == null) result = caseYValidationConfig(yDecimalDatatype);
+				if (result == null) result = caseYElement(yDecimalDatatype);
+				if (result == null) result = caseYTaggable(yDecimalDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YTABLE_DATATYPE: {
+				YTableDatatype yTableDatatype = (YTableDatatype)theEObject;
+				T result = caseYTableDatatype(yTableDatatype);
+				if (result == null) result = caseYDatatype(yTableDatatype);
+				if (result == null) result = caseYDtBase(yTableDatatype);
+				if (result == null) result = caseYElement(yTableDatatype);
+				if (result == null) result = caseYTaggable(yTableDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YCHECK_BOX_DATATYPE: {
+				YCheckBoxDatatype yCheckBoxDatatype = (YCheckBoxDatatype)theEObject;
+				T result = caseYCheckBoxDatatype(yCheckBoxDatatype);
+				if (result == null) result = caseYDatatype(yCheckBoxDatatype);
+				if (result == null) result = caseYDtBase(yCheckBoxDatatype);
+				if (result == null) result = caseYElement(yCheckBoxDatatype);
+				if (result == null) result = caseYTaggable(yCheckBoxDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YCOMBO_BOX_DATATYPE: {
+				YComboBoxDatatype yComboBoxDatatype = (YComboBoxDatatype)theEObject;
+				T result = caseYComboBoxDatatype(yComboBoxDatatype);
+				if (result == null) result = caseYDatatype(yComboBoxDatatype);
+				if (result == null) result = caseYDtBase(yComboBoxDatatype);
+				if (result == null) result = caseYElement(yComboBoxDatatype);
+				if (result == null) result = caseYTaggable(yComboBoxDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YLIST_DATA_TYPE: {
+				YListDataType yListDataType = (YListDataType)theEObject;
+				T result = caseYListDataType(yListDataType);
+				if (result == null) result = caseYDatatype(yListDataType);
+				if (result == null) result = caseYDtBase(yListDataType);
+				if (result == null) result = caseYElement(yListDataType);
+				if (result == null) result = caseYTaggable(yListDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YOPTIONS_GROUP_DATA_TYPE: {
+				YOptionsGroupDataType yOptionsGroupDataType = (YOptionsGroupDataType)theEObject;
+				T result = caseYOptionsGroupDataType(yOptionsGroupDataType);
+				if (result == null) result = caseYDatatype(yOptionsGroupDataType);
+				if (result == null) result = caseYDtBase(yOptionsGroupDataType);
+				if (result == null) result = caseYElement(yOptionsGroupDataType);
+				if (result == null) result = caseYTaggable(yOptionsGroupDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YBROWSER_DATATYPE: {
+				YBrowserDatatype yBrowserDatatype = (YBrowserDatatype)theEObject;
+				T result = caseYBrowserDatatype(yBrowserDatatype);
+				if (result == null) result = caseYDatatype(yBrowserDatatype);
+				if (result == null) result = caseYDtBase(yBrowserDatatype);
+				if (result == null) result = caseYElement(yBrowserDatatype);
+				if (result == null) result = caseYTaggable(yBrowserDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YDATE_TIME_DATATYPE: {
+				YDateTimeDatatype yDateTimeDatatype = (YDateTimeDatatype)theEObject;
+				T result = caseYDateTimeDatatype(yDateTimeDatatype);
+				if (result == null) result = caseYDatatype(yDateTimeDatatype);
+				if (result == null) result = caseYDtBase(yDateTimeDatatype);
+				if (result == null) result = caseYElement(yDateTimeDatatype);
+				if (result == null) result = caseYTaggable(yDateTimeDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YTREE_DATATYPE: {
+				YTreeDatatype yTreeDatatype = (YTreeDatatype)theEObject;
+				T result = caseYTreeDatatype(yTreeDatatype);
+				if (result == null) result = caseYDatatype(yTreeDatatype);
+				if (result == null) result = caseYDtBase(yTreeDatatype);
+				if (result == null) result = caseYElement(yTreeDatatype);
+				if (result == null) result = caseYTaggable(yTreeDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YPROGRESS_BAR_DATATYPE: {
+				YProgressBarDatatype yProgressBarDatatype = (YProgressBarDatatype)theEObject;
+				T result = caseYProgressBarDatatype(yProgressBarDatatype);
+				if (result == null) result = caseYDatatype(yProgressBarDatatype);
+				if (result == null) result = caseYDtBase(yProgressBarDatatype);
+				if (result == null) result = caseYElement(yProgressBarDatatype);
+				if (result == null) result = caseYTaggable(yProgressBarDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YTAB_SHEET_DATATYPE: {
+				YTabSheetDatatype yTabSheetDatatype = (YTabSheetDatatype)theEObject;
+				T result = caseYTabSheetDatatype(yTabSheetDatatype);
+				if (result == null) result = caseYDatatype(yTabSheetDatatype);
+				if (result == null) result = caseYDtBase(yTabSheetDatatype);
+				if (result == null) result = caseYElement(yTabSheetDatatype);
+				if (result == null) result = caseYTaggable(yTabSheetDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtDatatypesPackage.YMASTER_DETAIL_DATATYPE: {
+				YMasterDetailDatatype yMasterDetailDatatype = (YMasterDetailDatatype)theEObject;
+				T result = caseYMasterDetailDatatype(yMasterDetailDatatype);
+				if (result == null) result = caseYDatatype(yMasterDetailDatatype);
+				if (result == null) result = caseYDtBase(yMasterDetailDatatype);
+				if (result == null) result = caseYElement(yMasterDetailDatatype);
+				if (result == null) result = caseYTaggable(yMasterDetailDatatype);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YText Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YText Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTextDatatype(YTextDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YText Area Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YText Area Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTextAreaDatatype(YTextAreaDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YNumeric Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YNumeric Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYNumericDatatype(YNumericDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDecimal Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDecimal Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDecimalDatatype(YDecimalDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTable Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTable Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTableDatatype(YTableDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCheck Box Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCheck Box Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCheckBoxDatatype(YCheckBoxDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCombo Box Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCombo Box Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYComboBoxDatatype(YComboBoxDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YList Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YList Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYListDataType(YListDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YOptions Group Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YOptions Group Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYOptionsGroupDataType(YOptionsGroupDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBrowser Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBrowser Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBrowserDatatype(YBrowserDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDate Time Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDate Time Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDateTimeDatatype(YDateTimeDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTree Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTree Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTreeDatatype(YTreeDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YProgress Bar Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YProgress Bar Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYProgressBarDatatype(YProgressBarDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTab Sheet Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTab Sheet Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTabSheetDatatype(YTabSheetDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMaster Detail Datatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMaster Detail Datatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMasterDetailDatatype(YMasterDetailDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTaggable(YTaggable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYElement(YElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDt Base</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDt Base</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDtBase(YDtBase object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDatatype</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDatatype</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDatatype(YDatatype object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YValidation Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YValidation Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYValidationConfig(YValidationConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMax Length Validation Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMax Length Validation Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMaxLengthValidationConfig(YMaxLengthValidationConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMin Length Validation Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMin Length Validation Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMinLengthValidationConfig(YMinLengthValidationConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YRegexp Validation Config</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YRegexp Validation Config</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYRegexpValidationConfig(YRegexpValidationConfig object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //ExtDatatypesSwitch
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/ExtensionModelFactory.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/ExtensionModelFactory.java
new file mode 100644
index 0000000..a28ae90
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/ExtensionModelFactory.java
@@ -0,0 +1,527 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage
+ * @generated
+ */
+public interface ExtensionModelFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ExtensionModelFactory eINSTANCE = org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>YText Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YText Field</em>'.
+	 * @generated
+	 */
+	YTextField createYTextField();
+
+	/**
+	 * Returns a new object of class '<em>YBean Reference Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBean Reference Field</em>'.
+	 * @generated
+	 */
+	YBeanReferenceField createYBeanReferenceField();
+
+	/**
+	 * Returns a new object of class '<em>YGrid Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YGrid Layout</em>'.
+	 * @generated
+	 */
+	YGridLayout createYGridLayout();
+
+	/**
+	 * Returns a new object of class '<em>YGrid Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YGrid Layout Cell Style</em>'.
+	 * @generated
+	 */
+	YGridLayoutCellStyle createYGridLayoutCellStyle();
+
+	/**
+	 * Returns a new object of class '<em>YHorizontal Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YHorizontal Layout</em>'.
+	 * @generated
+	 */
+	YHorizontalLayout createYHorizontalLayout();
+
+	/**
+	 * Returns a new object of class '<em>YHorizontal Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YHorizontal Layout Cell Style</em>'.
+	 * @generated
+	 */
+	YHorizontalLayoutCellStyle createYHorizontalLayoutCellStyle();
+
+	/**
+	 * Returns a new object of class '<em>YVertical Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YVertical Layout</em>'.
+	 * @generated
+	 */
+	YVerticalLayout createYVerticalLayout();
+
+	/**
+	 * Returns a new object of class '<em>YVertical Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YVertical Layout Cell Style</em>'.
+	 * @generated
+	 */
+	YVerticalLayoutCellStyle createYVerticalLayoutCellStyle();
+
+	/**
+	 * Returns a new object of class '<em>YSpan Info</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YSpan Info</em>'.
+	 * @generated
+	 */
+	YSpanInfo createYSpanInfo();
+
+	/**
+	 * Returns a new object of class '<em>YTable</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YTable</em>'.
+	 * @generated
+	 */
+	YTable createYTable();
+
+	/**
+	 * Returns a new object of class '<em>YColumn</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YColumn</em>'.
+	 * @generated
+	 */
+	YColumn createYColumn();
+
+	/**
+	 * Returns a new object of class '<em>YSort Column</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YSort Column</em>'.
+	 * @generated
+	 */
+	YSortColumn createYSortColumn();
+
+	/**
+	 * Returns a new object of class '<em>YLabel</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YLabel</em>'.
+	 * @generated
+	 */
+	YLabel createYLabel();
+
+	/**
+	 * Returns a new object of class '<em>YImage</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YImage</em>'.
+	 * @generated
+	 */
+	YImage createYImage();
+
+	/**
+	 * Returns a new object of class '<em>YText Area</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YText Area</em>'.
+	 * @generated
+	 */
+	YTextArea createYTextArea();
+
+	/**
+	 * Returns a new object of class '<em>YCheck Box</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YCheck Box</em>'.
+	 * @generated
+	 */
+	YCheckBox createYCheckBox();
+
+	/**
+	 * Returns a new object of class '<em>YBrowser</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBrowser</em>'.
+	 * @generated
+	 */
+	YBrowser createYBrowser();
+
+	/**
+	 * Returns a new object of class '<em>YDate Time</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDate Time</em>'.
+	 * @generated
+	 */
+	YDateTime createYDateTime();
+
+	/**
+	 * Returns a new object of class '<em>YDecimal Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YDecimal Field</em>'.
+	 * @generated
+	 */
+	YDecimalField createYDecimalField();
+
+	/**
+	 * Returns a new object of class '<em>YNumeric Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YNumeric Field</em>'.
+	 * @generated
+	 */
+	YNumericField createYNumericField();
+
+	/**
+	 * Returns a new object of class '<em>YCombo Box</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YCombo Box</em>'.
+	 * @generated
+	 */
+	YComboBox createYComboBox();
+
+	/**
+	 * Returns a new object of class '<em>YList</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YList</em>'.
+	 * @generated
+	 */
+	YList createYList();
+
+	/**
+	 * Returns a new object of class '<em>YButton</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YButton</em>'.
+	 * @generated
+	 */
+	YButton createYButton();
+
+	/**
+	 * Returns a new object of class '<em>YSlider</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YSlider</em>'.
+	 * @generated
+	 */
+	YSlider createYSlider();
+
+	/**
+	 * Returns a new object of class '<em>YToggle Button</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YToggle Button</em>'.
+	 * @generated
+	 */
+	YToggleButton createYToggleButton();
+
+	/**
+	 * Returns a new object of class '<em>YProgress Bar</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YProgress Bar</em>'.
+	 * @generated
+	 */
+	YProgressBar createYProgressBar();
+
+	/**
+	 * Returns a new object of class '<em>YTab Sheet</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YTab Sheet</em>'.
+	 * @generated
+	 */
+	YTabSheet createYTabSheet();
+
+	/**
+	 * Returns a new object of class '<em>YTab</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YTab</em>'.
+	 * @generated
+	 */
+	YTab createYTab();
+
+	/**
+	 * Returns a new object of class '<em>YMaster Detail</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YMaster Detail</em>'.
+	 * @generated
+	 */
+	YMasterDetail createYMasterDetail();
+
+	/**
+	 * Returns a new object of class '<em>YForm Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YForm Layout</em>'.
+	 * @generated
+	 */
+	YFormLayout createYFormLayout();
+
+	/**
+	 * Returns a new object of class '<em>YForm Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YForm Layout Cell Style</em>'.
+	 * @generated
+	 */
+	YFormLayoutCellStyle createYFormLayoutCellStyle();
+
+	/**
+	 * Returns a new object of class '<em>YText Search Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YText Search Field</em>'.
+	 * @generated
+	 */
+	YTextSearchField createYTextSearchField();
+
+	/**
+	 * Returns a new object of class '<em>YBoolean Search Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBoolean Search Field</em>'.
+	 * @generated
+	 */
+	YBooleanSearchField createYBooleanSearchField();
+
+	/**
+	 * Returns a new object of class '<em>YNumeric Search Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YNumeric Search Field</em>'.
+	 * @generated
+	 */
+	YNumericSearchField createYNumericSearchField();
+
+	/**
+	 * Returns a new object of class '<em>YReference Search Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YReference Search Field</em>'.
+	 * @generated
+	 */
+	YReferenceSearchField createYReferenceSearchField();
+
+	/**
+	 * Returns a new object of class '<em>YPanel</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YPanel</em>'.
+	 * @generated
+	 */
+	YPanel createYPanel();
+
+	/**
+	 * Returns a new object of class '<em>YSplit Panel</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YSplit Panel</em>'.
+	 * @generated
+	 */
+	YSplitPanel createYSplitPanel();
+
+	/**
+	 * Returns a new object of class '<em>YSearch Panel</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YSearch Panel</em>'.
+	 * @generated
+	 */
+	YSearchPanel createYSearchPanel();
+
+	/**
+	 * Returns a new object of class '<em>YEnum Options Group</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEnum Options Group</em>'.
+	 * @generated
+	 */
+	YEnumOptionsGroup createYEnumOptionsGroup();
+
+	/**
+	 * Returns a new object of class '<em>YEnum List</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEnum List</em>'.
+	 * @generated
+	 */
+	YEnumList createYEnumList();
+
+	/**
+	 * Returns a new object of class '<em>YEnum Combo Box</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YEnum Combo Box</em>'.
+	 * @generated
+	 */
+	YEnumComboBox createYEnumComboBox();
+
+	/**
+	 * Returns a new object of class '<em>YAdd To Table Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YAdd To Table Command</em>'.
+	 * @generated
+	 */
+	YAddToTableCommand createYAddToTableCommand();
+
+	/**
+	 * Returns a new object of class '<em>YRemove From Table Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YRemove From Table Command</em>'.
+	 * @generated
+	 */
+	YRemoveFromTableCommand createYRemoveFromTableCommand();
+
+	/**
+	 * Returns a new object of class '<em>YBrowser Stream Input</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YBrowser Stream Input</em>'.
+	 * @generated
+	 */
+	YBrowserStreamInput createYBrowserStreamInput();
+
+	/**
+	 * Returns a new object of class '<em>YSet New Bean Instance Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YSet New Bean Instance Command</em>'.
+	 * @generated
+	 */
+	YSetNewBeanInstanceCommand createYSetNewBeanInstanceCommand();
+
+	/**
+	 * Returns a new object of class '<em>YCss Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YCss Layout</em>'.
+	 * @generated
+	 */
+	YCssLayout createYCssLayout();
+
+	/**
+	 * Returns a new object of class '<em>YCss Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YCss Layout Cell Style</em>'.
+	 * @generated
+	 */
+	YCssLayoutCellStyle createYCssLayoutCellStyle();
+
+	/**
+	 * Returns a new object of class '<em>YFilter</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YFilter</em>'.
+	 * @generated
+	 */
+	YFilter createYFilter();
+
+	/**
+	 * Returns a new object of class '<em>YAbsolute Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YAbsolute Layout</em>'.
+	 * @generated
+	 */
+	YAbsoluteLayout createYAbsoluteLayout();
+
+	/**
+	 * Returns a new object of class '<em>YAbsolute Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YAbsolute Layout Cell Style</em>'.
+	 * @generated
+	 */
+	YAbsoluteLayoutCellStyle createYAbsoluteLayoutCellStyle();
+
+	/**
+	 * Returns a new object of class '<em>YSuggest Text Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YSuggest Text Field</em>'.
+	 * @generated
+	 */
+	YSuggestTextField createYSuggestTextField();
+
+	/**
+	 * Returns a new object of class '<em>YPassword Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YPassword Field</em>'.
+	 * @generated
+	 */
+	YPasswordField createYPasswordField();
+
+	/**
+	 * Returns a new object of class '<em>YTree</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YTree</em>'.
+	 * @generated
+	 */
+	YTree createYTree();
+
+	/**
+	 * Returns a new object of class '<em>YOptions Group</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>YOptions Group</em>'.
+	 * @generated
+	 */
+	YOptionsGroup createYOptionsGroup();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	ExtensionModelPackage getExtensionModelPackage();
+
+} //ExtensionModelFactory
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/ExtensionModelPackage.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/ExtensionModelPackage.java
new file mode 100644
index 0000000..c653e31
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/ExtensionModelPackage.java
@@ -0,0 +1,19163 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ExtensionModelPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "extension";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/ecview/v1/extension/view";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "extension";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ExtensionModelPackage eINSTANCE = org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YInputImpl <em>YInput</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YInputImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYInput()
+	 * @generated
+	 */
+	int YINPUT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__TAGS = CoreModelPackage.YFIELD__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__ID = CoreModelPackage.YFIELD__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__NAME = CoreModelPackage.YFIELD__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__PROPERTIES = CoreModelPackage.YFIELD__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__CSS_CLASS = CoreModelPackage.YFIELD__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__CSS_ID = CoreModelPackage.YFIELD__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__INITIAL_VISIBLE = CoreModelPackage.YFIELD__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__VISIBLE = CoreModelPackage.YFIELD__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__AUTHORIZATION_GROUP = CoreModelPackage.YFIELD__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__AUTHORIZATION_ID = CoreModelPackage.YFIELD__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__ORPHAN_DATATYPES = CoreModelPackage.YFIELD__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YFIELD__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__MEMENTO_ENABLED = CoreModelPackage.YFIELD__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__MEMENTO_ID = CoreModelPackage.YFIELD__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__LABEL = CoreModelPackage.YFIELD__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__LABEL_I1_8N_KEY = CoreModelPackage.YFIELD__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__INITIAL_EDITABLE = CoreModelPackage.YFIELD__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__EDITABLE = CoreModelPackage.YFIELD__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__INITIAL_ENABLED = CoreModelPackage.YFIELD__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__ENABLED = CoreModelPackage.YFIELD__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__TAB_INDEX = CoreModelPackage.YFIELD__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__VALIDATORS = CoreModelPackage.YFIELD__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__INTERNAL_VALIDATORS = CoreModelPackage.YFIELD__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT__CONVERTER = CoreModelPackage.YFIELD__CONVERTER;
+
+	/**
+	 * The number of structural features of the '<em>YInput</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YINPUT_FEATURE_COUNT = CoreModelPackage.YFIELD_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutImpl <em>YGrid Layout</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYGridLayout()
+	 * @generated
+	 */
+	int YGRID_LAYOUT = 1;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__TAGS = CoreModelPackage.YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__ID = CoreModelPackage.YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__NAME = CoreModelPackage.YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__PROPERTIES = CoreModelPackage.YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__CSS_CLASS = CoreModelPackage.YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__CSS_ID = CoreModelPackage.YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__INITIAL_VISIBLE = CoreModelPackage.YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__VISIBLE = CoreModelPackage.YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__AUTHORIZATION_GROUP = CoreModelPackage.YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__AUTHORIZATION_ID = CoreModelPackage.YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__ORPHAN_DATATYPES = CoreModelPackage.YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__MEMENTO_ENABLED = CoreModelPackage.YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__MEMENTO_ID = CoreModelPackage.YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__LABEL = CoreModelPackage.YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__LABEL_I1_8N_KEY = CoreModelPackage.YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__INITIAL_EDITABLE = CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__EDITABLE = CoreModelPackage.YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__INITIAL_ENABLED = CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__ENABLED = CoreModelPackage.YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__ELEMENTS = CoreModelPackage.YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Spacing</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__SPACING = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Margin</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__MARGIN = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__CELL_STYLES = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT__COLUMNS = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YGrid Layout</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT_FEATURE_COUNT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutCellStyleImpl <em>YGrid Layout Cell Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutCellStyleImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYGridLayoutCellStyle()
+	 * @generated
+	 */
+	int YGRID_LAYOUT_CELL_STYLE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT_CELL_STYLE__TARGET = 0;
+
+	/**
+	 * The feature id for the '<em><b>Alignment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT_CELL_STYLE__ALIGNMENT = 1;
+
+	/**
+	 * The feature id for the '<em><b>Span Info</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT_CELL_STYLE__SPAN_INFO = 2;
+
+	/**
+	 * The number of structural features of the '<em>YGrid Layout Cell Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YGRID_LAYOUT_CELL_STYLE_FEATURE_COUNT = 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutImpl <em>YHorizontal Layout</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYHorizontalLayout()
+	 * @generated
+	 */
+	int YHORIZONTAL_LAYOUT = 3;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__TAGS = CoreModelPackage.YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__ID = CoreModelPackage.YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__NAME = CoreModelPackage.YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__PROPERTIES = CoreModelPackage.YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__CSS_CLASS = CoreModelPackage.YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__CSS_ID = CoreModelPackage.YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__INITIAL_VISIBLE = CoreModelPackage.YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__VISIBLE = CoreModelPackage.YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__AUTHORIZATION_GROUP = CoreModelPackage.YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__AUTHORIZATION_ID = CoreModelPackage.YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__ORPHAN_DATATYPES = CoreModelPackage.YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__MEMENTO_ENABLED = CoreModelPackage.YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__MEMENTO_ID = CoreModelPackage.YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__LABEL = CoreModelPackage.YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__LABEL_I1_8N_KEY = CoreModelPackage.YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__INITIAL_EDITABLE = CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__EDITABLE = CoreModelPackage.YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__INITIAL_ENABLED = CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__ENABLED = CoreModelPackage.YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__ELEMENTS = CoreModelPackage.YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Spacing</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__SPACING = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Margin</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__MARGIN = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT__CELL_STYLES = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YHorizontal Layout</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT_FEATURE_COUNT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutCellStyleImpl <em>YHorizontal Layout Cell Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutCellStyleImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYHorizontalLayoutCellStyle()
+	 * @generated
+	 */
+	int YHORIZONTAL_LAYOUT_CELL_STYLE = 4;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET = 0;
+
+	/**
+	 * The feature id for the '<em><b>Alignment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT = 1;
+
+	/**
+	 * The number of structural features of the '<em>YHorizontal Layout Cell Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YHORIZONTAL_LAYOUT_CELL_STYLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutImpl <em>YVertical Layout</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYVerticalLayout()
+	 * @generated
+	 */
+	int YVERTICAL_LAYOUT = 5;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__TAGS = CoreModelPackage.YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__ID = CoreModelPackage.YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__NAME = CoreModelPackage.YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__PROPERTIES = CoreModelPackage.YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__CSS_CLASS = CoreModelPackage.YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__CSS_ID = CoreModelPackage.YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__INITIAL_VISIBLE = CoreModelPackage.YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__VISIBLE = CoreModelPackage.YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__AUTHORIZATION_GROUP = CoreModelPackage.YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__AUTHORIZATION_ID = CoreModelPackage.YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__ORPHAN_DATATYPES = CoreModelPackage.YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__MEMENTO_ENABLED = CoreModelPackage.YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__MEMENTO_ID = CoreModelPackage.YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__LABEL = CoreModelPackage.YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__LABEL_I1_8N_KEY = CoreModelPackage.YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__INITIAL_EDITABLE = CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__EDITABLE = CoreModelPackage.YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__INITIAL_ENABLED = CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__ENABLED = CoreModelPackage.YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__ELEMENTS = CoreModelPackage.YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Spacing</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__SPACING = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Margin</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__MARGIN = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT__CELL_STYLES = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YVertical Layout</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT_FEATURE_COUNT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutCellStyleImpl <em>YVertical Layout Cell Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutCellStyleImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYVerticalLayoutCellStyle()
+	 * @generated
+	 */
+	int YVERTICAL_LAYOUT_CELL_STYLE = 6;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT_CELL_STYLE__TARGET = 0;
+
+	/**
+	 * The feature id for the '<em><b>Alignment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT = 1;
+
+	/**
+	 * The number of structural features of the '<em>YVertical Layout Cell Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YVERTICAL_LAYOUT_CELL_STYLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSpanInfoImpl <em>YSpan Info</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSpanInfoImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSpanInfo()
+	 * @generated
+	 */
+	int YSPAN_INFO = 7;
+
+	/**
+	 * The feature id for the '<em><b>Column From</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPAN_INFO__COLUMN_FROM = 0;
+
+	/**
+	 * The feature id for the '<em><b>Row From</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPAN_INFO__ROW_FROM = 1;
+
+	/**
+	 * The feature id for the '<em><b>Column To</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPAN_INFO__COLUMN_TO = 2;
+
+	/**
+	 * The feature id for the '<em><b>Row To</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPAN_INFO__ROW_TO = 3;
+
+	/**
+	 * The number of structural features of the '<em>YSpan Info</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPAN_INFO_FEATURE_COUNT = 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl <em>YTable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTable()
+	 * @generated
+	 */
+	int YTABLE = 8;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__COLLECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__MULTI_SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Use Bean Service</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__USE_BEAN_SERVICE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__DATATYPE = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Selection Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__SELECTION_TYPE = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__SELECTION = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__MULTI_SELECTION = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Collection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__COLLECTION = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__TYPE = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__EMF_NS_URI = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__COLUMNS = YINPUT_FEATURE_COUNT + 13;
+
+	/**
+	 * The feature id for the '<em><b>Item Image Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__ITEM_IMAGE_PROPERTY = YINPUT_FEATURE_COUNT + 14;
+
+	/**
+	 * The feature id for the '<em><b>Filter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__FILTER = YINPUT_FEATURE_COUNT + 15;
+
+	/**
+	 * The feature id for the '<em><b>Refresh</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__REFRESH = YINPUT_FEATURE_COUNT + 16;
+
+	/**
+	 * The feature id for the '<em><b>Sort Order</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE__SORT_ORDER = YINPUT_FEATURE_COUNT + 17;
+
+	/**
+	 * The number of structural features of the '<em>YTable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTABLE_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 18;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl <em>YColumn</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYColumn()
+	 * @generated
+	 */
+	int YCOLUMN = 9;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Icon</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__ICON = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__VISIBLE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__DATADESCRIPTION = CoreModelPackage.YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Orderable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__ORDERABLE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Collapsed</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__COLLAPSED = CoreModelPackage.YELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Collapsible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__COLLAPSIBLE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Alignment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__ALIGNMENT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Expand Ratio</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__EXPAND_RATIO = CoreModelPackage.YELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__PROPERTY_PATH = CoreModelPackage.YELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__CONVERTER = CoreModelPackage.YELEMENT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__TYPE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN__TYPE_QUALIFIED_NAME = CoreModelPackage.YELEMENT_FEATURE_COUNT + 12;
+
+	/**
+	 * The number of structural features of the '<em>YColumn</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOLUMN_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 13;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl <em>YSort Column</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSortColumn()
+	 * @generated
+	 */
+	int YSORT_COLUMN = 10;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSORT_COLUMN__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSORT_COLUMN__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSORT_COLUMN__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSORT_COLUMN__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSORT_COLUMN__PROPERTY_PATH = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSORT_COLUMN__TYPE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSORT_COLUMN__TYPE_QUALIFIED_NAME = CoreModelPackage.YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Asc</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSORT_COLUMN__ASC = CoreModelPackage.YELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YSort Column</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSORT_COLUMN_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl <em>YTree</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTree()
+	 * @generated
+	 */
+	int YTREE = 11;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__COLLECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__MULTI_SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Use Bean Service</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__USE_BEAN_SERVICE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__DATATYPE = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Selection Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__SELECTION_TYPE = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__SELECTION = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__MULTI_SELECTION = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Collection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__COLLECTION = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__TYPE = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__EMF_NS_URI = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 12;
+
+	/**
+	 * The number of structural features of the '<em>YTree</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTREE_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 13;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl <em>YOptions Group</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYOptionsGroup()
+	 * @generated
+	 */
+	int YOPTIONS_GROUP = 12;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Use Bean Service</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__USE_BEAN_SERVICE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__DATATYPE = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Selection Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__SELECTION_TYPE = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__SELECTION = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__MULTI_SELECTION = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Collection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__COLLECTION = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__TYPE = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__EMF_NS_URI = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Caption Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__CAPTION_PROPERTY = YINPUT_FEATURE_COUNT + 13;
+
+	/**
+	 * The feature id for the '<em><b>Image Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__IMAGE_PROPERTY = YINPUT_FEATURE_COUNT + 14;
+
+	/**
+	 * The feature id for the '<em><b>Description Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__DESCRIPTION_PROPERTY = YINPUT_FEATURE_COUNT + 15;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP__DESCRIPTION = YINPUT_FEATURE_COUNT + 16;
+
+	/**
+	 * The number of structural features of the '<em>YOptions Group</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YOPTIONS_GROUP_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 17;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl <em>YList</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYList()
+	 * @generated
+	 */
+	int YLIST = 13;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__COLLECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__MULTI_SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Use Bean Service</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__USE_BEAN_SERVICE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__DATATYPE = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Selection Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__SELECTION_TYPE = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__SELECTION = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__MULTI_SELECTION = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Collection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__COLLECTION = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__TYPE = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__EMF_NS_URI = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Caption Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__CAPTION_PROPERTY = YINPUT_FEATURE_COUNT + 13;
+
+	/**
+	 * The feature id for the '<em><b>Image Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__IMAGE_PROPERTY = YINPUT_FEATURE_COUNT + 14;
+
+	/**
+	 * The feature id for the '<em><b>Description Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__DESCRIPTION_PROPERTY = YINPUT_FEATURE_COUNT + 15;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST__DESCRIPTION = YINPUT_FEATURE_COUNT + 16;
+
+	/**
+	 * The number of structural features of the '<em>YList</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLIST_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 17;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YLabelImpl <em>YLabel</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YLabelImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYLabel()
+	 * @generated
+	 */
+	int YLABEL = 14;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__TAGS = CoreModelPackage.YFIELD__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__ID = CoreModelPackage.YFIELD__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__NAME = CoreModelPackage.YFIELD__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__PROPERTIES = CoreModelPackage.YFIELD__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__CSS_CLASS = CoreModelPackage.YFIELD__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__CSS_ID = CoreModelPackage.YFIELD__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__INITIAL_VISIBLE = CoreModelPackage.YFIELD__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__VISIBLE = CoreModelPackage.YFIELD__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__AUTHORIZATION_GROUP = CoreModelPackage.YFIELD__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__AUTHORIZATION_ID = CoreModelPackage.YFIELD__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__ORPHAN_DATATYPES = CoreModelPackage.YFIELD__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YFIELD__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__MEMENTO_ENABLED = CoreModelPackage.YFIELD__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__MEMENTO_ID = CoreModelPackage.YFIELD__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__LABEL = CoreModelPackage.YFIELD__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__LABEL_I1_8N_KEY = CoreModelPackage.YFIELD__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__INITIAL_EDITABLE = CoreModelPackage.YFIELD__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__EDITABLE = CoreModelPackage.YFIELD__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__INITIAL_ENABLED = CoreModelPackage.YFIELD__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__ENABLED = CoreModelPackage.YFIELD__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__TAB_INDEX = CoreModelPackage.YFIELD__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__VALIDATORS = CoreModelPackage.YFIELD__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__INTERNAL_VALIDATORS = CoreModelPackage.YFIELD__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__CONVERTER = CoreModelPackage.YFIELD__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__VALUE_BINDING_ENDPOINT = CoreModelPackage.YFIELD_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__DATADESCRIPTION = CoreModelPackage.YFIELD_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL__VALUE = CoreModelPackage.YFIELD_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YLabel</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YLABEL_FEATURE_COUNT = CoreModelPackage.YFIELD_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YImageImpl <em>YImage</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YImageImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYImage()
+	 * @generated
+	 */
+	int YIMAGE = 15;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__TAGS = CoreModelPackage.YFIELD__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__ID = CoreModelPackage.YFIELD__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__NAME = CoreModelPackage.YFIELD__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__PROPERTIES = CoreModelPackage.YFIELD__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__CSS_CLASS = CoreModelPackage.YFIELD__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__CSS_ID = CoreModelPackage.YFIELD__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__INITIAL_VISIBLE = CoreModelPackage.YFIELD__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__VISIBLE = CoreModelPackage.YFIELD__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__AUTHORIZATION_GROUP = CoreModelPackage.YFIELD__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__AUTHORIZATION_ID = CoreModelPackage.YFIELD__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__ORPHAN_DATATYPES = CoreModelPackage.YFIELD__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YFIELD__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__MEMENTO_ENABLED = CoreModelPackage.YFIELD__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__MEMENTO_ID = CoreModelPackage.YFIELD__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__LABEL = CoreModelPackage.YFIELD__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__LABEL_I1_8N_KEY = CoreModelPackage.YFIELD__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__INITIAL_EDITABLE = CoreModelPackage.YFIELD__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__EDITABLE = CoreModelPackage.YFIELD__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__INITIAL_ENABLED = CoreModelPackage.YFIELD__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__ENABLED = CoreModelPackage.YFIELD__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__TAB_INDEX = CoreModelPackage.YFIELD__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__VALIDATORS = CoreModelPackage.YFIELD__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__INTERNAL_VALIDATORS = CoreModelPackage.YFIELD__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__CONVERTER = CoreModelPackage.YFIELD__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__VALUE_BINDING_ENDPOINT = CoreModelPackage.YFIELD_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__DATADESCRIPTION = CoreModelPackage.YFIELD_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE__VALUE = CoreModelPackage.YFIELD_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YImage</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YIMAGE_FEATURE_COUNT = CoreModelPackage.YFIELD_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextFieldImpl <em>YText Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTextField()
+	 * @generated
+	 */
+	int YTEXT_FIELD = 16;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__DATATYPE = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YText Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_FIELD_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl <em>YBean Reference Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBeanReferenceField()
+	 * @generated
+	 */
+	int YBEAN_REFERENCE_FIELD = 17;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Use Bean Service</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__USE_BEAN_SERVICE = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__TYPE = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__EMF_NS_URI = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>In Memory Bean Provider</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>In Memory Bean Provider Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Caption Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Image Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Description Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__DESCRIPTION = YINPUT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Reference Source Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE = YINPUT_FEATURE_COUNT + 13;
+
+	/**
+	 * The feature id for the '<em><b>Reference Source Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 14;
+
+	/**
+	 * The feature id for the '<em><b>Reference Source Type Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY = YINPUT_FEATURE_COUNT + 15;
+
+	/**
+	 * The feature id for the '<em><b>Required</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD__REQUIRED = YINPUT_FEATURE_COUNT + 16;
+
+	/**
+	 * The number of structural features of the '<em>YBean Reference Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_REFERENCE_FIELD_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 17;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl <em>YText Area</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTextArea()
+	 * @generated
+	 */
+	int YTEXT_AREA = 18;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__DATATYPE = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Word Wrap</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__WORD_WRAP = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Rows</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA__ROWS = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>YText Area</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_AREA_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCheckBoxImpl <em>YCheck Box</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCheckBoxImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYCheckBox()
+	 * @generated
+	 */
+	int YCHECK_BOX = 19;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__DATATYPE = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YCheck Box</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCHECK_BOX_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserImpl <em>YBrowser</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBrowser()
+	 * @generated
+	 */
+	int YBROWSER = 20;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__DATATYPE = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YBrowser</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDateTimeImpl <em>YDate Time</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDateTimeImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYDateTime()
+	 * @generated
+	 */
+	int YDATE_TIME = 21;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__DATATYPE = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YDate Time</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDATE_TIME_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDecimalFieldImpl <em>YDecimal Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDecimalFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYDecimalField()
+	 * @generated
+	 */
+	int YDECIMAL_FIELD = 22;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__DATATYPE = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YDecimal Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YDECIMAL_FIELD_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericFieldImpl <em>YNumeric Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYNumericField()
+	 * @generated
+	 */
+	int YNUMERIC_FIELD = 23;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__DATATYPE = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YNumeric Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_FIELD_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl <em>YCombo Box</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYComboBox()
+	 * @generated
+	 */
+	int YCOMBO_BOX = 24;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Use Bean Service</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__USE_BEAN_SERVICE = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__DATATYPE = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__SELECTION = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Collection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__COLLECTION = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__TYPE = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__EMF_NS_URI = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Caption Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__CAPTION_PROPERTY = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Image Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__IMAGE_PROPERTY = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Description Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__DESCRIPTION_PROPERTY = YINPUT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX__DESCRIPTION = YINPUT_FEATURE_COUNT + 13;
+
+	/**
+	 * The number of structural features of the '<em>YCombo Box</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCOMBO_BOX_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 14;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl <em>YButton</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYButton()
+	 * @generated
+	 */
+	int YBUTTON = 25;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__TAGS = CoreModelPackage.YACTION__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__ID = CoreModelPackage.YACTION__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__NAME = CoreModelPackage.YACTION__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__PROPERTIES = CoreModelPackage.YACTION__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__CSS_CLASS = CoreModelPackage.YACTION__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__CSS_ID = CoreModelPackage.YACTION__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__INITIAL_VISIBLE = CoreModelPackage.YACTION__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__VISIBLE = CoreModelPackage.YACTION__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__AUTHORIZATION_GROUP = CoreModelPackage.YACTION__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__AUTHORIZATION_ID = CoreModelPackage.YACTION__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__ORPHAN_DATATYPES = CoreModelPackage.YACTION__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YACTION__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__MEMENTO_ENABLED = CoreModelPackage.YACTION__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__MEMENTO_ID = CoreModelPackage.YACTION__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__LABEL = CoreModelPackage.YACTION__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__LABEL_I1_8N_KEY = CoreModelPackage.YACTION__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__INITIAL_ENABLED = CoreModelPackage.YACTION__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__ENABLED = CoreModelPackage.YACTION__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__INITIAL_EDITABLE = CoreModelPackage.YACTION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__EDITABLE = CoreModelPackage.YACTION_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__TAB_INDEX = CoreModelPackage.YACTION_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__DATADESCRIPTION = CoreModelPackage.YACTION_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Click Listeners</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__CLICK_LISTENERS = CoreModelPackage.YACTION_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Last Click Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__LAST_CLICK_TIME = CoreModelPackage.YACTION_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Image</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON__IMAGE = CoreModelPackage.YACTION_FEATURE_COUNT + 6;
+
+	/**
+	 * The number of structural features of the '<em>YButton</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBUTTON_FEATURE_COUNT = CoreModelPackage.YACTION_FEATURE_COUNT + 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl <em>YSlider</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSlider()
+	 * @generated
+	 */
+	int YSLIDER = 26;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__VALUE = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Max Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__MAX_VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Min Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__MIN_VALUE = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Resolution</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__RESOLUTION = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Orientation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER__ORIENTATION = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The number of structural features of the '<em>YSlider</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSLIDER_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YToggleButtonImpl <em>YToggle Button</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YToggleButtonImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYToggleButton()
+	 * @generated
+	 */
+	int YTOGGLE_BUTTON = 27;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__TAGS = CoreModelPackage.YACTION__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__ID = CoreModelPackage.YACTION__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__NAME = CoreModelPackage.YACTION__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__PROPERTIES = CoreModelPackage.YACTION__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__CSS_CLASS = CoreModelPackage.YACTION__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__CSS_ID = CoreModelPackage.YACTION__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__INITIAL_VISIBLE = CoreModelPackage.YACTION__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__VISIBLE = CoreModelPackage.YACTION__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__AUTHORIZATION_GROUP = CoreModelPackage.YACTION__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__AUTHORIZATION_ID = CoreModelPackage.YACTION__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__ORPHAN_DATATYPES = CoreModelPackage.YACTION__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YACTION__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__MEMENTO_ENABLED = CoreModelPackage.YACTION__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__MEMENTO_ID = CoreModelPackage.YACTION__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__LABEL = CoreModelPackage.YACTION__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__LABEL_I1_8N_KEY = CoreModelPackage.YACTION__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__INITIAL_ENABLED = CoreModelPackage.YACTION__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__ENABLED = CoreModelPackage.YACTION__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Initial Activated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__INITIAL_ACTIVATED = CoreModelPackage.YACTION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Activated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__ACTIVATED = CoreModelPackage.YACTION_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__TAB_INDEX = CoreModelPackage.YACTION_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON__DATADESCRIPTION = CoreModelPackage.YACTION_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YToggle Button</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTOGGLE_BUTTON_FEATURE_COUNT = CoreModelPackage.YACTION_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YProgressBarImpl <em>YProgress Bar</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YProgressBarImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYProgressBar()
+	 * @generated
+	 */
+	int YPROGRESS_BAR = 28;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__DATATYPE = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YProgress Bar</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPROGRESS_BAR_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabSheetImpl <em>YTab Sheet</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabSheetImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTabSheet()
+	 * @generated
+	 */
+	int YTAB_SHEET = 29;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__TAGS = CoreModelPackage.YEMBEDDABLE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__ID = CoreModelPackage.YEMBEDDABLE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__NAME = CoreModelPackage.YEMBEDDABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__PROPERTIES = CoreModelPackage.YEMBEDDABLE__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__CSS_CLASS = CoreModelPackage.YEMBEDDABLE__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__CSS_ID = CoreModelPackage.YEMBEDDABLE__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__INITIAL_VISIBLE = CoreModelPackage.YEMBEDDABLE__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__VISIBLE = CoreModelPackage.YEMBEDDABLE__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__AUTHORIZATION_GROUP = CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__AUTHORIZATION_ID = CoreModelPackage.YEMBEDDABLE__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__ORPHAN_DATATYPES = CoreModelPackage.YEMBEDDABLE__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YEMBEDDABLE__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__MEMENTO_ENABLED = CoreModelPackage.YEMBEDDABLE__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__MEMENTO_ID = CoreModelPackage.YEMBEDDABLE__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__LABEL = CoreModelPackage.YEMBEDDABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__LABEL_I1_8N_KEY = CoreModelPackage.YEMBEDDABLE__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__TAB_INDEX = CoreModelPackage.YEMBEDDABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Tabs</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET__TABS = CoreModelPackage.YEMBEDDABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YTab Sheet</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_SHEET_FEATURE_COUNT = CoreModelPackage.YEMBEDDABLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl <em>YTab</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTab()
+	 * @generated
+	 */
+	int YTAB = 30;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__CSS_CLASS = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__CSS_ID = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Parent</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__PARENT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Embeddable</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__EMBEDDABLE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__DATADESCRIPTION = CoreModelPackage.YELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>YTab</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTAB_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl <em>YMaster Detail</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYMasterDetail()
+	 * @generated
+	 */
+	int YMASTER_DETAIL = 31;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__DATATYPE = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__SELECTION = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Collection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__COLLECTION = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__TYPE = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__EMF_NS_URI = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Master Element</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__MASTER_ELEMENT = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Detail Element</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__DETAIL_ELEMENT = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The number of structural features of the '<em>YMaster Detail</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YMASTER_DETAIL_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutImpl <em>YForm Layout</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYFormLayout()
+	 * @generated
+	 */
+	int YFORM_LAYOUT = 32;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__TAGS = CoreModelPackage.YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__ID = CoreModelPackage.YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__NAME = CoreModelPackage.YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__PROPERTIES = CoreModelPackage.YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__CSS_CLASS = CoreModelPackage.YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__CSS_ID = CoreModelPackage.YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__INITIAL_VISIBLE = CoreModelPackage.YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__VISIBLE = CoreModelPackage.YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__AUTHORIZATION_GROUP = CoreModelPackage.YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__AUTHORIZATION_ID = CoreModelPackage.YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__ORPHAN_DATATYPES = CoreModelPackage.YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__MEMENTO_ENABLED = CoreModelPackage.YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__MEMENTO_ID = CoreModelPackage.YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__LABEL = CoreModelPackage.YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__LABEL_I1_8N_KEY = CoreModelPackage.YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__INITIAL_EDITABLE = CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__EDITABLE = CoreModelPackage.YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__INITIAL_ENABLED = CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__ENABLED = CoreModelPackage.YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__ELEMENTS = CoreModelPackage.YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Spacing</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__SPACING = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Margin</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__MARGIN = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT__CELL_STYLES = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YForm Layout</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT_FEATURE_COUNT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutCellStyleImpl <em>YForm Layout Cell Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutCellStyleImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYFormLayoutCellStyle()
+	 * @generated
+	 */
+	int YFORM_LAYOUT_CELL_STYLE = 33;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT_CELL_STYLE__TARGET = 0;
+
+	/**
+	 * The feature id for the '<em><b>Alignment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT_CELL_STYLE__ALIGNMENT = 1;
+
+	/**
+	 * The number of structural features of the '<em>YForm Layout Cell Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFORM_LAYOUT_CELL_STYLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchField <em>YSearch Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchField
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSearchField()
+	 * @generated
+	 */
+	int YSEARCH_FIELD = 34;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>YSearch Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_FIELD_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextSearchFieldImpl <em>YText Search Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextSearchFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTextSearchField()
+	 * @generated
+	 */
+	int YTEXT_SEARCH_FIELD = 35;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__TAGS = YSEARCH_FIELD__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__ID = YSEARCH_FIELD__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__NAME = YSEARCH_FIELD__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__PROPERTIES = YSEARCH_FIELD__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__CSS_CLASS = YSEARCH_FIELD__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__CSS_ID = YSEARCH_FIELD__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__INITIAL_VISIBLE = YSEARCH_FIELD__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__VISIBLE = YSEARCH_FIELD__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__AUTHORIZATION_GROUP = YSEARCH_FIELD__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__AUTHORIZATION_ID = YSEARCH_FIELD__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__ORPHAN_DATATYPES = YSEARCH_FIELD__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__ORPHAN_DATADESCRIPTIONS = YSEARCH_FIELD__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__MEMENTO_ENABLED = YSEARCH_FIELD__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__MEMENTO_ID = YSEARCH_FIELD__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__LABEL = YSEARCH_FIELD__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__LABEL_I1_8N_KEY = YSEARCH_FIELD__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__INITIAL_EDITABLE = YSEARCH_FIELD__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__EDITABLE = YSEARCH_FIELD__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__INITIAL_ENABLED = YSEARCH_FIELD__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__ENABLED = YSEARCH_FIELD__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__TAB_INDEX = YSEARCH_FIELD__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__VALIDATORS = YSEARCH_FIELD__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__INTERNAL_VALIDATORS = YSEARCH_FIELD__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__CONVERTER = YSEARCH_FIELD__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT = YSEARCH_FIELD__VALUE_BINDING_ENDPOINT;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__DATADESCRIPTION = YSEARCH_FIELD_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__VALUE = YSEARCH_FIELD_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Wildcard</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__WILDCARD = YSEARCH_FIELD_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD__PROPERTY_PATH = YSEARCH_FIELD_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YText Search Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YTEXT_SEARCH_FIELD_FEATURE_COUNT = YSEARCH_FIELD_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBooleanSearchFieldImpl <em>YBoolean Search Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBooleanSearchFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBooleanSearchField()
+	 * @generated
+	 */
+	int YBOOLEAN_SEARCH_FIELD = 36;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__TAGS = YSEARCH_FIELD__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__ID = YSEARCH_FIELD__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__NAME = YSEARCH_FIELD__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__PROPERTIES = YSEARCH_FIELD__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__CSS_CLASS = YSEARCH_FIELD__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__CSS_ID = YSEARCH_FIELD__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__INITIAL_VISIBLE = YSEARCH_FIELD__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__VISIBLE = YSEARCH_FIELD__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__AUTHORIZATION_GROUP = YSEARCH_FIELD__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__AUTHORIZATION_ID = YSEARCH_FIELD__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__ORPHAN_DATATYPES = YSEARCH_FIELD__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__ORPHAN_DATADESCRIPTIONS = YSEARCH_FIELD__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__MEMENTO_ENABLED = YSEARCH_FIELD__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__MEMENTO_ID = YSEARCH_FIELD__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__LABEL = YSEARCH_FIELD__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__LABEL_I1_8N_KEY = YSEARCH_FIELD__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__INITIAL_EDITABLE = YSEARCH_FIELD__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__EDITABLE = YSEARCH_FIELD__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__INITIAL_ENABLED = YSEARCH_FIELD__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__ENABLED = YSEARCH_FIELD__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__TAB_INDEX = YSEARCH_FIELD__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__VALIDATORS = YSEARCH_FIELD__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__INTERNAL_VALIDATORS = YSEARCH_FIELD__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__CONVERTER = YSEARCH_FIELD__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT = YSEARCH_FIELD__VALUE_BINDING_ENDPOINT;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION = YSEARCH_FIELD_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__VALUE = YSEARCH_FIELD_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH = YSEARCH_FIELD_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YBoolean Search Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBOOLEAN_SEARCH_FIELD_FEATURE_COUNT = YSEARCH_FIELD_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl <em>YNumeric Search Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYNumericSearchField()
+	 * @generated
+	 */
+	int YNUMERIC_SEARCH_FIELD = 37;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__TAGS = YSEARCH_FIELD__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__ID = YSEARCH_FIELD__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__NAME = YSEARCH_FIELD__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__PROPERTIES = YSEARCH_FIELD__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__CSS_CLASS = YSEARCH_FIELD__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__CSS_ID = YSEARCH_FIELD__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__INITIAL_VISIBLE = YSEARCH_FIELD__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__VISIBLE = YSEARCH_FIELD__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__AUTHORIZATION_GROUP = YSEARCH_FIELD__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__AUTHORIZATION_ID = YSEARCH_FIELD__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__ORPHAN_DATATYPES = YSEARCH_FIELD__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__ORPHAN_DATADESCRIPTIONS = YSEARCH_FIELD__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__MEMENTO_ENABLED = YSEARCH_FIELD__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__MEMENTO_ID = YSEARCH_FIELD__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__LABEL = YSEARCH_FIELD__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__LABEL_I1_8N_KEY = YSEARCH_FIELD__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__INITIAL_EDITABLE = YSEARCH_FIELD__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__EDITABLE = YSEARCH_FIELD__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__INITIAL_ENABLED = YSEARCH_FIELD__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__ENABLED = YSEARCH_FIELD__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__TAB_INDEX = YSEARCH_FIELD__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__VALIDATORS = YSEARCH_FIELD__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__INTERNAL_VALIDATORS = YSEARCH_FIELD__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__CONVERTER = YSEARCH_FIELD__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT = YSEARCH_FIELD__VALUE_BINDING_ENDPOINT;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__DATADESCRIPTION = YSEARCH_FIELD_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__VALUE = YSEARCH_FIELD_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Wildcard</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__WILDCARD = YSEARCH_FIELD_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__PROPERTY_PATH = YSEARCH_FIELD_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__TYPE = YSEARCH_FIELD_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME = YSEARCH_FIELD_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>YNumeric Search Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YNUMERIC_SEARCH_FIELD_FEATURE_COUNT = YSEARCH_FIELD_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl <em>YReference Search Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYReferenceSearchField()
+	 * @generated
+	 */
+	int YREFERENCE_SEARCH_FIELD = 38;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__TAGS = YSEARCH_FIELD__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__ID = YSEARCH_FIELD__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__NAME = YSEARCH_FIELD__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__PROPERTIES = YSEARCH_FIELD__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__CSS_CLASS = YSEARCH_FIELD__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__CSS_ID = YSEARCH_FIELD__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__INITIAL_VISIBLE = YSEARCH_FIELD__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__VISIBLE = YSEARCH_FIELD__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__AUTHORIZATION_GROUP = YSEARCH_FIELD__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__AUTHORIZATION_ID = YSEARCH_FIELD__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__ORPHAN_DATATYPES = YSEARCH_FIELD__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__ORPHAN_DATADESCRIPTIONS = YSEARCH_FIELD__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__MEMENTO_ENABLED = YSEARCH_FIELD__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__MEMENTO_ID = YSEARCH_FIELD__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__LABEL = YSEARCH_FIELD__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__LABEL_I1_8N_KEY = YSEARCH_FIELD__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__INITIAL_EDITABLE = YSEARCH_FIELD__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__EDITABLE = YSEARCH_FIELD__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__INITIAL_ENABLED = YSEARCH_FIELD__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__ENABLED = YSEARCH_FIELD__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__TAB_INDEX = YSEARCH_FIELD__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__VALIDATORS = YSEARCH_FIELD__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__INTERNAL_VALIDATORS = YSEARCH_FIELD__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__CONVERTER = YSEARCH_FIELD__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT = YSEARCH_FIELD__VALUE_BINDING_ENDPOINT;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__DATADESCRIPTION = YSEARCH_FIELD_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__VALUE = YSEARCH_FIELD_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Wildcard</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__WILDCARD = YSEARCH_FIELD_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__PROPERTY_PATH = YSEARCH_FIELD_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__TYPE = YSEARCH_FIELD_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__EMF_NS_URI = YSEARCH_FIELD_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME = YSEARCH_FIELD_FEATURE_COUNT + 6;
+
+	/**
+	 * The number of structural features of the '<em>YReference Search Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREFERENCE_SEARCH_FIELD_FEATURE_COUNT = YSEARCH_FIELD_FEATURE_COUNT + 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPanelImpl <em>YPanel</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPanelImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYPanel()
+	 * @generated
+	 */
+	int YPANEL = 39;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__TAGS = CoreModelPackage.YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__ID = CoreModelPackage.YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__NAME = CoreModelPackage.YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__PROPERTIES = CoreModelPackage.YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__CSS_CLASS = CoreModelPackage.YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__CSS_ID = CoreModelPackage.YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__INITIAL_VISIBLE = CoreModelPackage.YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__VISIBLE = CoreModelPackage.YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__AUTHORIZATION_GROUP = CoreModelPackage.YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__AUTHORIZATION_ID = CoreModelPackage.YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__ORPHAN_DATATYPES = CoreModelPackage.YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__MEMENTO_ENABLED = CoreModelPackage.YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__MEMENTO_ID = CoreModelPackage.YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__LABEL = CoreModelPackage.YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__LABEL_I1_8N_KEY = CoreModelPackage.YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__INITIAL_EDITABLE = CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__EDITABLE = CoreModelPackage.YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__INITIAL_ENABLED = CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__ENABLED = CoreModelPackage.YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__ELEMENTS = CoreModelPackage.YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__TAB_INDEX = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__DATADESCRIPTION = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>First Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__FIRST_CONTENT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Second Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL__SECOND_CONTENT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>YPanel</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPANEL_FEATURE_COUNT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSplitPanelImpl <em>YSplit Panel</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSplitPanelImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSplitPanel()
+	 * @generated
+	 */
+	int YSPLIT_PANEL = 40;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__TAGS = CoreModelPackage.YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__ID = CoreModelPackage.YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__NAME = CoreModelPackage.YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__PROPERTIES = CoreModelPackage.YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__CSS_CLASS = CoreModelPackage.YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__CSS_ID = CoreModelPackage.YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__INITIAL_VISIBLE = CoreModelPackage.YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__VISIBLE = CoreModelPackage.YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__AUTHORIZATION_GROUP = CoreModelPackage.YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__AUTHORIZATION_ID = CoreModelPackage.YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__ORPHAN_DATATYPES = CoreModelPackage.YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__MEMENTO_ENABLED = CoreModelPackage.YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__MEMENTO_ID = CoreModelPackage.YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__LABEL = CoreModelPackage.YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__LABEL_I1_8N_KEY = CoreModelPackage.YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__INITIAL_EDITABLE = CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__EDITABLE = CoreModelPackage.YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__INITIAL_ENABLED = CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__ENABLED = CoreModelPackage.YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__ELEMENTS = CoreModelPackage.YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__DATADESCRIPTION = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__CELL_STYLES = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Fill Horizontal</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__FILL_HORIZONTAL = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Split Position</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__SPLIT_POSITION = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Vertical</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL__VERTICAL = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>YSplit Panel</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSPLIT_PANEL_FEATURE_COUNT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl <em>YSearch Panel</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSearchPanel()
+	 * @generated
+	 */
+	int YSEARCH_PANEL = 41;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__TAGS = CoreModelPackage.YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__ID = CoreModelPackage.YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__NAME = CoreModelPackage.YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__PROPERTIES = CoreModelPackage.YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__CSS_CLASS = CoreModelPackage.YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__CSS_ID = CoreModelPackage.YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__INITIAL_VISIBLE = CoreModelPackage.YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__VISIBLE = CoreModelPackage.YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__AUTHORIZATION_GROUP = CoreModelPackage.YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__AUTHORIZATION_ID = CoreModelPackage.YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__ORPHAN_DATATYPES = CoreModelPackage.YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__MEMENTO_ENABLED = CoreModelPackage.YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__MEMENTO_ID = CoreModelPackage.YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__LABEL = CoreModelPackage.YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__LABEL_I1_8N_KEY = CoreModelPackage.YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__INITIAL_EDITABLE = CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__EDITABLE = CoreModelPackage.YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__INITIAL_ENABLED = CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__ENABLED = CoreModelPackage.YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__ELEMENTS = CoreModelPackage.YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Spacing</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__SPACING = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Margin</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__MARGIN = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__TYPE = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__EMF_NS_URI = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__TYPE_QUALIFIED_NAME = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Apply Filter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__APPLY_FILTER = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Filter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL__FILTER = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The number of structural features of the '<em>YSearch Panel</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSEARCH_PANEL_FEATURE_COUNT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl <em>YEnum Options Group</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYEnumOptionsGroup()
+	 * @generated
+	 */
+	int YENUM_OPTIONS_GROUP = 42;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__DATATYPE = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Selection Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__SELECTION_TYPE = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__SELECTION = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__MULTI_SELECTION = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__TYPE = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__EMF_NS_URI = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The number of structural features of the '<em>YEnum Options Group</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_OPTIONS_GROUP_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl <em>YEnum List</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYEnumList()
+	 * @generated
+	 */
+	int YENUM_LIST = 43;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__COLLECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__DATATYPE = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Selection Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__SELECTION_TYPE = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__SELECTION = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Multi Selection</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__MULTI_SELECTION = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__TYPE = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__EMF_NS_URI = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The number of structural features of the '<em>YEnum List</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_LIST_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl <em>YEnum Combo Box</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYEnumComboBox()
+	 * @generated
+	 */
+	int YENUM_COMBO_BOX = 44;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Collection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selection Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__DATATYPE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__SELECTION = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__TYPE = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__EMF_NS_URI = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The number of structural features of the '<em>YEnum Combo Box</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YENUM_COMBO_BOX_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer <em>YBean Service Consumer</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBeanServiceConsumer()
+	 * @generated
+	 */
+	int YBEAN_SERVICE_CONSUMER = 45;
+
+	/**
+	 * The feature id for the '<em><b>Use Bean Service</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE = 0;
+
+	/**
+	 * The number of structural features of the '<em>YBean Service Consumer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBEAN_SERVICE_CONSUMER_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl <em>YAdd To Table Command</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYAddToTableCommand()
+	 * @generated
+	 */
+	int YADD_TO_TABLE_COMMAND = 46;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YADD_TO_TABLE_COMMAND__TAGS = CoreModelPackage.YCOMMAND__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YADD_TO_TABLE_COMMAND__ID = CoreModelPackage.YCOMMAND__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YADD_TO_TABLE_COMMAND__NAME = CoreModelPackage.YCOMMAND__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YADD_TO_TABLE_COMMAND__PROPERTIES = CoreModelPackage.YCOMMAND__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Table</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YADD_TO_TABLE_COMMAND__TABLE = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Trigger</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YADD_TO_TABLE_COMMAND__TRIGGER = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YAdd To Table Command</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YADD_TO_TABLE_COMMAND_FEATURE_COUNT = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl <em>YRemove From Table Command</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYRemoveFromTableCommand()
+	 * @generated
+	 */
+	int YREMOVE_FROM_TABLE_COMMAND = 47;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREMOVE_FROM_TABLE_COMMAND__TAGS = CoreModelPackage.YCOMMAND__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREMOVE_FROM_TABLE_COMMAND__ID = CoreModelPackage.YCOMMAND__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREMOVE_FROM_TABLE_COMMAND__NAME = CoreModelPackage.YCOMMAND__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREMOVE_FROM_TABLE_COMMAND__PROPERTIES = CoreModelPackage.YCOMMAND__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Table</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREMOVE_FROM_TABLE_COMMAND__TABLE = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Trigger</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREMOVE_FROM_TABLE_COMMAND__TRIGGER = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YRemove From Table Command</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YREMOVE_FROM_TABLE_COMMAND_FEATURE_COUNT = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserStreamInputImpl <em>YBrowser Stream Input</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserStreamInputImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBrowserStreamInput()
+	 * @generated
+	 */
+	int YBROWSER_STREAM_INPUT = 48;
+
+	/**
+	 * The feature id for the '<em><b>Filename</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_STREAM_INPUT__FILENAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Input Stream</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_STREAM_INPUT__INPUT_STREAM = 1;
+
+	/**
+	 * The feature id for the '<em><b>Mime Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_STREAM_INPUT__MIME_TYPE = 2;
+
+	/**
+	 * The number of structural features of the '<em>YBrowser Stream Input</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YBROWSER_STREAM_INPUT_FEATURE_COUNT = 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl <em>YSet New Bean Instance Command</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSetNewBeanInstanceCommand()
+	 * @generated
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND = 49;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND__TAGS = CoreModelPackage.YCOMMAND__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND__ID = CoreModelPackage.YCOMMAND__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND__NAME = CoreModelPackage.YCOMMAND__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND__PROPERTIES = CoreModelPackage.YCOMMAND__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Trigger</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>YSet New Bean Instance Command</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSET_NEW_BEAN_INSTANCE_COMMAND_FEATURE_COUNT = CoreModelPackage.YCOMMAND_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutImpl <em>YCss Layout</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYCssLayout()
+	 * @generated
+	 */
+	int YCSS_LAYOUT = 50;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__TAGS = CoreModelPackage.YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__ID = CoreModelPackage.YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__NAME = CoreModelPackage.YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__PROPERTIES = CoreModelPackage.YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__CSS_CLASS = CoreModelPackage.YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__CSS_ID = CoreModelPackage.YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__INITIAL_VISIBLE = CoreModelPackage.YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__VISIBLE = CoreModelPackage.YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__AUTHORIZATION_GROUP = CoreModelPackage.YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__AUTHORIZATION_ID = CoreModelPackage.YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__ORPHAN_DATATYPES = CoreModelPackage.YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__MEMENTO_ENABLED = CoreModelPackage.YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__MEMENTO_ID = CoreModelPackage.YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__LABEL = CoreModelPackage.YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__LABEL_I1_8N_KEY = CoreModelPackage.YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__INITIAL_EDITABLE = CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__EDITABLE = CoreModelPackage.YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__INITIAL_ENABLED = CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__ENABLED = CoreModelPackage.YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__ELEMENTS = CoreModelPackage.YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Spacing</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__SPACING = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Margin</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__MARGIN = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT__CELL_STYLES = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YCss Layout</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT_FEATURE_COUNT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutCellStyleImpl <em>YCss Layout Cell Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutCellStyleImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYCssLayoutCellStyle()
+	 * @generated
+	 */
+	int YCSS_LAYOUT_CELL_STYLE = 51;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT_CELL_STYLE__TARGET = 0;
+
+	/**
+	 * The feature id for the '<em><b>Alignment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT_CELL_STYLE__ALIGNMENT = 1;
+
+	/**
+	 * The number of structural features of the '<em>YCss Layout Cell Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YCSS_LAYOUT_CELL_STYLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl <em>YFilter</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYFilter()
+	 * @generated
+	 */
+	int YFILTER = 52;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFILTER__TAGS = CoreModelPackage.YELEMENT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFILTER__ID = CoreModelPackage.YELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFILTER__NAME = CoreModelPackage.YELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFILTER__PROPERTIES = CoreModelPackage.YELEMENT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFILTER__PROPERTY_PATH = CoreModelPackage.YELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Filter Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFILTER__FILTER_VALUE = CoreModelPackage.YELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>YFilter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YFILTER_FEATURE_COUNT = CoreModelPackage.YELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutImpl <em>YAbsolute Layout</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYAbsoluteLayout()
+	 * @generated
+	 */
+	int YABSOLUTE_LAYOUT = 53;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__TAGS = CoreModelPackage.YLAYOUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__ID = CoreModelPackage.YLAYOUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__NAME = CoreModelPackage.YLAYOUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__PROPERTIES = CoreModelPackage.YLAYOUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__CSS_CLASS = CoreModelPackage.YLAYOUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__CSS_ID = CoreModelPackage.YLAYOUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__INITIAL_VISIBLE = CoreModelPackage.YLAYOUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__VISIBLE = CoreModelPackage.YLAYOUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__AUTHORIZATION_GROUP = CoreModelPackage.YLAYOUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__AUTHORIZATION_ID = CoreModelPackage.YLAYOUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__ORPHAN_DATATYPES = CoreModelPackage.YLAYOUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__ORPHAN_DATADESCRIPTIONS = CoreModelPackage.YLAYOUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__MEMENTO_ENABLED = CoreModelPackage.YLAYOUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__MEMENTO_ID = CoreModelPackage.YLAYOUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__LABEL = CoreModelPackage.YLAYOUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__LABEL_I1_8N_KEY = CoreModelPackage.YLAYOUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__INITIAL_EDITABLE = CoreModelPackage.YLAYOUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__EDITABLE = CoreModelPackage.YLAYOUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__INITIAL_ENABLED = CoreModelPackage.YLAYOUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__ENABLED = CoreModelPackage.YLAYOUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__ELEMENTS = CoreModelPackage.YLAYOUT__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__CELL_STYLES = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Child Resize Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Child Move Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YAbsolute Layout</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT_FEATURE_COUNT = CoreModelPackage.YLAYOUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl <em>YAbsolute Layout Cell Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYAbsoluteLayoutCellStyle()
+	 * @generated
+	 */
+	int YABSOLUTE_LAYOUT_CELL_STYLE = 54;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT_CELL_STYLE__TARGET = 0;
+
+	/**
+	 * The feature id for the '<em><b>Top</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT_CELL_STYLE__TOP = 1;
+
+	/**
+	 * The feature id for the '<em><b>Bottom</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM = 2;
+
+	/**
+	 * The feature id for the '<em><b>Left</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT_CELL_STYLE__LEFT = 3;
+
+	/**
+	 * The feature id for the '<em><b>Right</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT = 4;
+
+	/**
+	 * The feature id for the '<em><b>ZIndex</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX = 5;
+
+	/**
+	 * The number of structural features of the '<em>YAbsolute Layout Cell Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YABSOLUTE_LAYOUT_CELL_STYLE_FEATURE_COUNT = 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl <em>YSuggest Text Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSuggestTextField()
+	 * @generated
+	 */
+	int YSUGGEST_TEXT_FIELD = 55;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__DATATYPE = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__VALUE = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Use Suggestions</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS = YINPUT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Auto Hide Popup</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP = YINPUT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Last Suggestion</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__LAST_SUGGESTION = YINPUT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__TYPE = YINPUT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__EMF_NS_URI = YINPUT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME = YINPUT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Item Caption Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY = YINPUT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Item Filter Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY = YINPUT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Item UUID Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY = YINPUT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Event</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD__EVENT = YINPUT_FEATURE_COUNT + 13;
+
+	/**
+	 * The number of structural features of the '<em>YSuggest Text Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YSUGGEST_TEXT_FIELD_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 14;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPasswordFieldImpl <em>YPassword Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPasswordFieldImpl
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYPasswordField()
+	 * @generated
+	 */
+	int YPASSWORD_FIELD = 56;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__TAGS = YINPUT__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__ID = YINPUT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__NAME = YINPUT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__PROPERTIES = YINPUT__PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Css Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__CSS_CLASS = YINPUT__CSS_CLASS;
+
+	/**
+	 * The feature id for the '<em><b>Css ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__CSS_ID = YINPUT__CSS_ID;
+
+	/**
+	 * The feature id for the '<em><b>Initial Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__INITIAL_VISIBLE = YINPUT__INITIAL_VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__VISIBLE = YINPUT__VISIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__AUTHORIZATION_GROUP = YINPUT__AUTHORIZATION_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__AUTHORIZATION_ID = YINPUT__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datatypes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__ORPHAN_DATATYPES = YINPUT__ORPHAN_DATATYPES;
+
+	/**
+	 * The feature id for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__ORPHAN_DATADESCRIPTIONS = YINPUT__ORPHAN_DATADESCRIPTIONS;
+
+	/**
+	 * The feature id for the '<em><b>Memento Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__MEMENTO_ENABLED = YINPUT__MEMENTO_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Memento Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__MEMENTO_ID = YINPUT__MEMENTO_ID;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__LABEL = YINPUT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Label I1 8n Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__LABEL_I1_8N_KEY = YINPUT__LABEL_I1_8N_KEY;
+
+	/**
+	 * The feature id for the '<em><b>Initial Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__INITIAL_EDITABLE = YINPUT__INITIAL_EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Editable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__EDITABLE = YINPUT__EDITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initial Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__INITIAL_ENABLED = YINPUT__INITIAL_ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__ENABLED = YINPUT__ENABLED;
+
+	/**
+	 * The feature id for the '<em><b>Tab Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__TAB_INDEX = YINPUT__TAB_INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__VALIDATORS = YINPUT__VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Internal Validators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__INTERNAL_VALIDATORS = YINPUT__INTERNAL_VALIDATORS;
+
+	/**
+	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__CONVERTER = YINPUT__CONVERTER;
+
+	/**
+	 * The feature id for the '<em><b>Value Binding Endpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT = YINPUT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__DATADESCRIPTION = YINPUT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD__VALUE = YINPUT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>YPassword Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int YPASSWORD_FIELD_FEATURE_COUNT = YINPUT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType <em>YSelection Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSelectionType()
+	 * @generated
+	 */
+	int YSELECTION_TYPE = 57;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption <em>YBoolean Search Option</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBooleanSearchOption()
+	 * @generated
+	 */
+	int YBOOLEAN_SEARCH_OPTION = 58;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards <em>YSearch Wildcards</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSearchWildcards()
+	 * @generated
+	 */
+	int YSEARCH_WILDCARDS = 59;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents <em>YSuggest Text Field Events</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSuggestTextFieldEvents()
+	 * @generated
+	 */
+	int YSUGGEST_TEXT_FIELD_EVENTS = 60;
+
+	/**
+	 * The meta object id for the '<em>YButton Click Listener</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYButtonClickListener()
+	 * @generated
+	 */
+	int YBUTTON_CLICK_LISTENER = 61;
+
+	/**
+	 * The meta object id for the '<em>YInput Stream</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see java.io.InputStream
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYInputStream()
+	 * @generated
+	 */
+	int YINPUT_STREAM = 62;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YInput <em>YInput</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YInput</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YInput
+	 * @generated
+	 */
+	EClass getYInput();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout <em>YGrid Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YGrid Layout</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout
+	 * @generated
+	 */
+	EClass getYGridLayout();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout#getCellStyles <em>Cell Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Cell Styles</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout#getCellStyles()
+	 * @see #getYGridLayout()
+	 * @generated
+	 */
+	EReference getYGridLayout_CellStyles();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout#getColumns <em>Columns</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Columns</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout#getColumns()
+	 * @see #getYGridLayout()
+	 * @generated
+	 */
+	EAttribute getYGridLayout_Columns();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle <em>YGrid Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YGrid Layout Cell Style</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle
+	 * @generated
+	 */
+	EClass getYGridLayoutCellStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getTarget <em>Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getTarget()
+	 * @see #getYGridLayoutCellStyle()
+	 * @generated
+	 */
+	EReference getYGridLayoutCellStyle_Target();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getAlignment <em>Alignment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Alignment</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getAlignment()
+	 * @see #getYGridLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYGridLayoutCellStyle_Alignment();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getSpanInfo <em>Span Info</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Span Info</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getSpanInfo()
+	 * @see #getYGridLayoutCellStyle()
+	 * @generated
+	 */
+	EReference getYGridLayoutCellStyle_SpanInfo();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout <em>YHorizontal Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YHorizontal Layout</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout
+	 * @generated
+	 */
+	EClass getYHorizontalLayout();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout#getCellStyles <em>Cell Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Cell Styles</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout#getCellStyles()
+	 * @see #getYHorizontalLayout()
+	 * @generated
+	 */
+	EReference getYHorizontalLayout_CellStyles();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle <em>YHorizontal Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YHorizontal Layout Cell Style</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle
+	 * @generated
+	 */
+	EClass getYHorizontalLayoutCellStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle#getTarget <em>Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle#getTarget()
+	 * @see #getYHorizontalLayoutCellStyle()
+	 * @generated
+	 */
+	EReference getYHorizontalLayoutCellStyle_Target();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle#getAlignment <em>Alignment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Alignment</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle#getAlignment()
+	 * @see #getYHorizontalLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYHorizontalLayoutCellStyle_Alignment();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout <em>YVertical Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YVertical Layout</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout
+	 * @generated
+	 */
+	EClass getYVerticalLayout();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout#getCellStyles <em>Cell Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Cell Styles</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout#getCellStyles()
+	 * @see #getYVerticalLayout()
+	 * @generated
+	 */
+	EReference getYVerticalLayout_CellStyles();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle <em>YVertical Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YVertical Layout Cell Style</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle
+	 * @generated
+	 */
+	EClass getYVerticalLayoutCellStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle#getTarget <em>Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle#getTarget()
+	 * @see #getYVerticalLayoutCellStyle()
+	 * @generated
+	 */
+	EReference getYVerticalLayoutCellStyle_Target();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle#getAlignment <em>Alignment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Alignment</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle#getAlignment()
+	 * @see #getYVerticalLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYVerticalLayoutCellStyle_Alignment();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo <em>YSpan Info</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSpan Info</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo
+	 * @generated
+	 */
+	EClass getYSpanInfo();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getColumnFrom <em>Column From</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Column From</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getColumnFrom()
+	 * @see #getYSpanInfo()
+	 * @generated
+	 */
+	EAttribute getYSpanInfo_ColumnFrom();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getRowFrom <em>Row From</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Row From</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getRowFrom()
+	 * @see #getYSpanInfo()
+	 * @generated
+	 */
+	EAttribute getYSpanInfo_RowFrom();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getColumnTo <em>Column To</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Column To</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getColumnTo()
+	 * @see #getYSpanInfo()
+	 * @generated
+	 */
+	EAttribute getYSpanInfo_ColumnTo();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getRowTo <em>Row To</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Row To</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getRowTo()
+	 * @see #getYSpanInfo()
+	 * @generated
+	 */
+	EAttribute getYSpanInfo_RowTo();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable <em>YTable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YTable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable
+	 * @generated
+	 */
+	EClass getYTable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getDatatype()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EReference getYTable_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getDatadescription()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EReference getYTable_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSelectionType <em>Selection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSelectionType()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_SelectionType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSelection <em>Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSelection()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_Selection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getMultiSelection <em>Multi Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Multi Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getMultiSelection()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_MultiSelection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getCollection <em>Collection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Collection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getCollection()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_Collection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getType()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getEmfNsURI()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getTypeQualifiedName()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getColumns <em>Columns</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Columns</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getColumns()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EReference getYTable_Columns();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getItemImageProperty <em>Item Image Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Item Image Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getItemImageProperty()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_ItemImageProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getFilter <em>Filter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Filter</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getFilter()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_Filter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getRefresh <em>Refresh</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Refresh</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getRefresh()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EAttribute getYTable_Refresh();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSortOrder <em>Sort Order</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Sort Order</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSortOrder()
+	 * @see #getYTable()
+	 * @generated
+	 */
+	EReference getYTable_SortOrder();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn <em>YColumn</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YColumn</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn
+	 * @generated
+	 */
+	EClass getYColumn();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getIcon <em>Icon</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Icon</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getIcon()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_Icon();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isVisible <em>Visible</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Visible</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isVisible()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_Visible();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getDatadescription()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EReference getYColumn_Datadescription();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getOrphanDatadescriptions <em>Orphan Datadescriptions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Orphan Datadescriptions</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getOrphanDatadescriptions()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EReference getYColumn_OrphanDatadescriptions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isOrderable <em>Orderable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Orderable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isOrderable()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_Orderable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isCollapsed <em>Collapsed</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Collapsed</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isCollapsed()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_Collapsed();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isCollapsible <em>Collapsible</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Collapsible</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isCollapsible()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_Collapsible();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getAlignment <em>Alignment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Alignment</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getAlignment()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_Alignment();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getExpandRatio <em>Expand Ratio</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Expand Ratio</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getExpandRatio()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_ExpandRatio();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getPropertyPath()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_PropertyPath();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getConverter <em>Converter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Converter</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getConverter()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EReference getYColumn_Converter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getType()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getTypeQualifiedName()
+	 * @see #getYColumn()
+	 * @generated
+	 */
+	EAttribute getYColumn_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn <em>YSort Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSort Column</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn
+	 * @generated
+	 */
+	EClass getYSortColumn();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getPropertyPath()
+	 * @see #getYSortColumn()
+	 * @generated
+	 */
+	EAttribute getYSortColumn_PropertyPath();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getType()
+	 * @see #getYSortColumn()
+	 * @generated
+	 */
+	EAttribute getYSortColumn_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getTypeQualifiedName()
+	 * @see #getYSortColumn()
+	 * @generated
+	 */
+	EAttribute getYSortColumn_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#isAsc <em>Asc</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Asc</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#isAsc()
+	 * @see #getYSortColumn()
+	 * @generated
+	 */
+	EAttribute getYSortColumn_Asc();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree <em>YTree</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YTree</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree
+	 * @generated
+	 */
+	EClass getYTree();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getDatatype()
+	 * @see #getYTree()
+	 * @generated
+	 */
+	EReference getYTree_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getDatadescription()
+	 * @see #getYTree()
+	 * @generated
+	 */
+	EReference getYTree_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getSelectionType <em>Selection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getSelectionType()
+	 * @see #getYTree()
+	 * @generated
+	 */
+	EAttribute getYTree_SelectionType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getSelection <em>Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getSelection()
+	 * @see #getYTree()
+	 * @generated
+	 */
+	EAttribute getYTree_Selection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getMultiSelection <em>Multi Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Multi Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getMultiSelection()
+	 * @see #getYTree()
+	 * @generated
+	 */
+	EAttribute getYTree_MultiSelection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getCollection <em>Collection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Collection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getCollection()
+	 * @see #getYTree()
+	 * @generated
+	 */
+	EAttribute getYTree_Collection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getType()
+	 * @see #getYTree()
+	 * @generated
+	 */
+	EAttribute getYTree_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getEmfNsURI()
+	 * @see #getYTree()
+	 * @generated
+	 */
+	EAttribute getYTree_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getTypeQualifiedName()
+	 * @see #getYTree()
+	 * @generated
+	 */
+	EAttribute getYTree_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup <em>YOptions Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YOptions Group</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup
+	 * @generated
+	 */
+	EClass getYOptionsGroup();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDatadescription()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EReference getYOptionsGroup_Datadescription();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDatatype()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EReference getYOptionsGroup_Datatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getSelectionType <em>Selection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getSelectionType()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_SelectionType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getSelection <em>Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getSelection()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_Selection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getMultiSelection <em>Multi Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Multi Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getMultiSelection()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_MultiSelection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getCollection <em>Collection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Collection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getCollection()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_Collection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getType()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getEmfNsURI()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getTypeQualifiedName()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getCaptionProperty <em>Caption Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Caption Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getCaptionProperty()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_CaptionProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getImageProperty <em>Image Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Image Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getImageProperty()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_ImageProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDescriptionProperty <em>Description Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDescriptionProperty()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_DescriptionProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDescription()
+	 * @see #getYOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYOptionsGroup_Description();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList <em>YList</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YList</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList
+	 * @generated
+	 */
+	EClass getYList();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDatadescription()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EReference getYList_Datadescription();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDatatype()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EReference getYList_Datatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getSelectionType <em>Selection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getSelectionType()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_SelectionType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getSelection <em>Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getSelection()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_Selection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getMultiSelection <em>Multi Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Multi Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getMultiSelection()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_MultiSelection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getCollection <em>Collection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Collection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getCollection()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_Collection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getType()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getEmfNsURI()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getTypeQualifiedName()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getCaptionProperty <em>Caption Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Caption Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getCaptionProperty()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_CaptionProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getImageProperty <em>Image Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Image Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getImageProperty()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_ImageProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDescriptionProperty <em>Description Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDescriptionProperty()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_DescriptionProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDescription()
+	 * @see #getYList()
+	 * @generated
+	 */
+	EAttribute getYList_Description();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel <em>YLabel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YLabel</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YLabel
+	 * @generated
+	 */
+	EClass getYLabel();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YLabel#getDatadescription()
+	 * @see #getYLabel()
+	 * @generated
+	 */
+	EReference getYLabel_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YLabel#getValue()
+	 * @see #getYLabel()
+	 * @generated
+	 */
+	EAttribute getYLabel_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage <em>YImage</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YImage</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YImage
+	 * @generated
+	 */
+	EClass getYImage();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YImage#getDatadescription()
+	 * @see #getYImage()
+	 * @generated
+	 */
+	EReference getYImage_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YImage#getValue()
+	 * @see #getYImage()
+	 * @generated
+	 */
+	EAttribute getYImage_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField <em>YText Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YText Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextField
+	 * @generated
+	 */
+	EClass getYTextField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getDatatype()
+	 * @see #getYTextField()
+	 * @generated
+	 */
+	EReference getYTextField_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getDatadescription()
+	 * @see #getYTextField()
+	 * @generated
+	 */
+	EReference getYTextField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getValue()
+	 * @see #getYTextField()
+	 * @generated
+	 */
+	EAttribute getYTextField_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField <em>YBean Reference Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBean Reference Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField
+	 * @generated
+	 */
+	EClass getYBeanReferenceField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDatadescription()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EReference getYBeanReferenceField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getValue()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_Value();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getType()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getEmfNsURI()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getTypeQualifiedName()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getInMemoryBeanProvider <em>In Memory Bean Provider</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>In Memory Bean Provider</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getInMemoryBeanProvider()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_InMemoryBeanProvider();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getInMemoryBeanProviderQualifiedName <em>In Memory Bean Provider Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>In Memory Bean Provider Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getInMemoryBeanProviderQualifiedName()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_InMemoryBeanProviderQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getCaptionPropertyPath <em>Caption Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Caption Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getCaptionPropertyPath()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_CaptionPropertyPath();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getImagePropertyPath <em>Image Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Image Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getImagePropertyPath()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_ImagePropertyPath();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDescriptionProperty <em>Description Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDescriptionProperty()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_DescriptionProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDescription()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_Description();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceType <em>Reference Source Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Reference Source Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceType()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_ReferenceSourceType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceTypeQualifiedName <em>Reference Source Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Reference Source Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceTypeQualifiedName()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_ReferenceSourceTypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceTypeProperty <em>Reference Source Type Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Reference Source Type Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceTypeProperty()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_ReferenceSourceTypeProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#isRequired <em>Required</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Required</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#isRequired()
+	 * @see #getYBeanReferenceField()
+	 * @generated
+	 */
+	EAttribute getYBeanReferenceField_Required();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea <em>YText Area</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YText Area</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea
+	 * @generated
+	 */
+	EClass getYTextArea();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getDatadescription()
+	 * @see #getYTextArea()
+	 * @generated
+	 */
+	EReference getYTextArea_Datadescription();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getDatatype()
+	 * @see #getYTextArea()
+	 * @generated
+	 */
+	EReference getYTextArea_Datatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getValue()
+	 * @see #getYTextArea()
+	 * @generated
+	 */
+	EAttribute getYTextArea_Value();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#isWordWrap <em>Word Wrap</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Word Wrap</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#isWordWrap()
+	 * @see #getYTextArea()
+	 * @generated
+	 */
+	EAttribute getYTextArea_WordWrap();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getRows <em>Rows</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Rows</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getRows()
+	 * @see #getYTextArea()
+	 * @generated
+	 */
+	EAttribute getYTextArea_Rows();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox <em>YCheck Box</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCheck Box</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox
+	 * @generated
+	 */
+	EClass getYCheckBox();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#getDatadescription()
+	 * @see #getYCheckBox()
+	 * @generated
+	 */
+	EReference getYCheckBox_Datadescription();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#getDatatype()
+	 * @see #getYCheckBox()
+	 * @generated
+	 */
+	EReference getYCheckBox_Datatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#isValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#isValue()
+	 * @see #getYCheckBox()
+	 * @generated
+	 */
+	EAttribute getYCheckBox_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser <em>YBrowser</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBrowser</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser
+	 * @generated
+	 */
+	EClass getYBrowser();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getDatatype()
+	 * @see #getYBrowser()
+	 * @generated
+	 */
+	EReference getYBrowser_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getDatadescription()
+	 * @see #getYBrowser()
+	 * @generated
+	 */
+	EReference getYBrowser_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getValue()
+	 * @see #getYBrowser()
+	 * @generated
+	 */
+	EAttribute getYBrowser_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime <em>YDate Time</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDate Time</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime
+	 * @generated
+	 */
+	EClass getYDateTime();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getDatatype()
+	 * @see #getYDateTime()
+	 * @generated
+	 */
+	EReference getYDateTime_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getDatadescription()
+	 * @see #getYDateTime()
+	 * @generated
+	 */
+	EReference getYDateTime_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getValue()
+	 * @see #getYDateTime()
+	 * @generated
+	 */
+	EAttribute getYDateTime_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField <em>YDecimal Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YDecimal Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField
+	 * @generated
+	 */
+	EClass getYDecimalField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getDatatype()
+	 * @see #getYDecimalField()
+	 * @generated
+	 */
+	EReference getYDecimalField_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getDatadescription()
+	 * @see #getYDecimalField()
+	 * @generated
+	 */
+	EReference getYDecimalField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getValue()
+	 * @see #getYDecimalField()
+	 * @generated
+	 */
+	EAttribute getYDecimalField_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField <em>YNumeric Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YNumeric Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField
+	 * @generated
+	 */
+	EClass getYNumericField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getDatatype()
+	 * @see #getYNumericField()
+	 * @generated
+	 */
+	EReference getYNumericField_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getDatadescription()
+	 * @see #getYNumericField()
+	 * @generated
+	 */
+	EReference getYNumericField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getValue()
+	 * @see #getYNumericField()
+	 * @generated
+	 */
+	EAttribute getYNumericField_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox <em>YCombo Box</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCombo Box</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox
+	 * @generated
+	 */
+	EClass getYComboBox();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDatadescription()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EReference getYComboBox_Datadescription();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDatatype()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EReference getYComboBox_Datatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getSelection <em>Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getSelection()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EAttribute getYComboBox_Selection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getCollection <em>Collection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Collection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getCollection()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EAttribute getYComboBox_Collection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getType()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EAttribute getYComboBox_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getEmfNsURI()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EAttribute getYComboBox_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getTypeQualifiedName()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EAttribute getYComboBox_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getCaptionProperty <em>Caption Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Caption Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getCaptionProperty()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EAttribute getYComboBox_CaptionProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getImageProperty <em>Image Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Image Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getImageProperty()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EAttribute getYComboBox_ImageProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDescriptionProperty <em>Description Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDescriptionProperty()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EAttribute getYComboBox_DescriptionProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDescription()
+	 * @see #getYComboBox()
+	 * @generated
+	 */
+	EAttribute getYComboBox_Description();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton <em>YButton</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YButton</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YButton
+	 * @generated
+	 */
+	EClass getYButton();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getDatadescription()
+	 * @see #getYButton()
+	 * @generated
+	 */
+	EReference getYButton_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getClickListeners <em>Click Listeners</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Click Listeners</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getClickListeners()
+	 * @see #getYButton()
+	 * @generated
+	 */
+	EAttribute getYButton_ClickListeners();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getLastClickTime <em>Last Click Time</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Last Click Time</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getLastClickTime()
+	 * @see #getYButton()
+	 * @generated
+	 */
+	EAttribute getYButton_LastClickTime();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getImage <em>Image</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Image</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getImage()
+	 * @see #getYButton()
+	 * @generated
+	 */
+	EAttribute getYButton_Image();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider <em>YSlider</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSlider</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSlider
+	 * @generated
+	 */
+	EClass getYSlider();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getDatadescription()
+	 * @see #getYSlider()
+	 * @generated
+	 */
+	EReference getYSlider_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getValue()
+	 * @see #getYSlider()
+	 * @generated
+	 */
+	EAttribute getYSlider_Value();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getMaxValue <em>Max Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Max Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getMaxValue()
+	 * @see #getYSlider()
+	 * @generated
+	 */
+	EAttribute getYSlider_MaxValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getMinValue <em>Min Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Min Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getMinValue()
+	 * @see #getYSlider()
+	 * @generated
+	 */
+	EAttribute getYSlider_MinValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getResolution <em>Resolution</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Resolution</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getResolution()
+	 * @see #getYSlider()
+	 * @generated
+	 */
+	EAttribute getYSlider_Resolution();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getOrientation <em>Orientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Orientation</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getOrientation()
+	 * @see #getYSlider()
+	 * @generated
+	 */
+	EAttribute getYSlider_Orientation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton <em>YToggle Button</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YToggle Button</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton
+	 * @generated
+	 */
+	EClass getYToggleButton();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton#getDatadescription()
+	 * @see #getYToggleButton()
+	 * @generated
+	 */
+	EReference getYToggleButton_Datadescription();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar <em>YProgress Bar</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YProgress Bar</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar
+	 * @generated
+	 */
+	EClass getYProgressBar();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getDatatype()
+	 * @see #getYProgressBar()
+	 * @generated
+	 */
+	EReference getYProgressBar_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getDatadescription()
+	 * @see #getYProgressBar()
+	 * @generated
+	 */
+	EReference getYProgressBar_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getValue()
+	 * @see #getYProgressBar()
+	 * @generated
+	 */
+	EAttribute getYProgressBar_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet <em>YTab Sheet</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YTab Sheet</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet
+	 * @generated
+	 */
+	EClass getYTabSheet();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet#getTabs <em>Tabs</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Tabs</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet#getTabs()
+	 * @see #getYTabSheet()
+	 * @generated
+	 */
+	EReference getYTabSheet_Tabs();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab <em>YTab</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YTab</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTab
+	 * @generated
+	 */
+	EClass getYTab();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getParent <em>Parent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Parent</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getParent()
+	 * @see #getYTab()
+	 * @generated
+	 */
+	EReference getYTab_Parent();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getEmbeddable <em>Embeddable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Embeddable</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getEmbeddable()
+	 * @see #getYTab()
+	 * @generated
+	 */
+	EReference getYTab_Embeddable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getDatadescription()
+	 * @see #getYTab()
+	 * @generated
+	 */
+	EReference getYTab_Datadescription();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getOrphanDatadescriptions <em>Orphan Datadescriptions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Orphan Datadescriptions</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getOrphanDatadescriptions()
+	 * @see #getYTab()
+	 * @generated
+	 */
+	EReference getYTab_OrphanDatadescriptions();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail <em>YMaster Detail</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YMaster Detail</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail
+	 * @generated
+	 */
+	EClass getYMasterDetail();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDatatype()
+	 * @see #getYMasterDetail()
+	 * @generated
+	 */
+	EReference getYMasterDetail_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDatadescription()
+	 * @see #getYMasterDetail()
+	 * @generated
+	 */
+	EReference getYMasterDetail_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getSelection <em>Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getSelection()
+	 * @see #getYMasterDetail()
+	 * @generated
+	 */
+	EAttribute getYMasterDetail_Selection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getCollection <em>Collection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Collection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getCollection()
+	 * @see #getYMasterDetail()
+	 * @generated
+	 */
+	EAttribute getYMasterDetail_Collection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getType()
+	 * @see #getYMasterDetail()
+	 * @generated
+	 */
+	EAttribute getYMasterDetail_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getEmfNsURI()
+	 * @see #getYMasterDetail()
+	 * @generated
+	 */
+	EAttribute getYMasterDetail_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getMasterElement <em>Master Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Master Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getMasterElement()
+	 * @see #getYMasterDetail()
+	 * @generated
+	 */
+	EReference getYMasterDetail_MasterElement();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDetailElement <em>Detail Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Detail Element</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDetailElement()
+	 * @see #getYMasterDetail()
+	 * @generated
+	 */
+	EReference getYMasterDetail_DetailElement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getTypeQualifiedName()
+	 * @see #getYMasterDetail()
+	 * @generated
+	 */
+	EAttribute getYMasterDetail_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout <em>YForm Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YForm Layout</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout
+	 * @generated
+	 */
+	EClass getYFormLayout();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout#getCellStyles <em>Cell Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Cell Styles</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout#getCellStyles()
+	 * @see #getYFormLayout()
+	 * @generated
+	 */
+	EReference getYFormLayout_CellStyles();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle <em>YForm Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YForm Layout Cell Style</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle
+	 * @generated
+	 */
+	EClass getYFormLayoutCellStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle#getTarget <em>Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle#getTarget()
+	 * @see #getYFormLayoutCellStyle()
+	 * @generated
+	 */
+	EReference getYFormLayoutCellStyle_Target();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle#getAlignment <em>Alignment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Alignment</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle#getAlignment()
+	 * @see #getYFormLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYFormLayoutCellStyle_Alignment();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchField <em>YSearch Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSearch Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchField
+	 * @generated
+	 */
+	EClass getYSearchField();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField <em>YText Search Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YText Search Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField
+	 * @generated
+	 */
+	EClass getYTextSearchField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getDatadescription()
+	 * @see #getYTextSearchField()
+	 * @generated
+	 */
+	EReference getYTextSearchField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getValue()
+	 * @see #getYTextSearchField()
+	 * @generated
+	 */
+	EAttribute getYTextSearchField_Value();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getWildcard <em>Wildcard</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Wildcard</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getWildcard()
+	 * @see #getYTextSearchField()
+	 * @generated
+	 */
+	EAttribute getYTextSearchField_Wildcard();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getPropertyPath()
+	 * @see #getYTextSearchField()
+	 * @generated
+	 */
+	EAttribute getYTextSearchField_PropertyPath();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField <em>YBoolean Search Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBoolean Search Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField
+	 * @generated
+	 */
+	EClass getYBooleanSearchField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getDatadescription()
+	 * @see #getYBooleanSearchField()
+	 * @generated
+	 */
+	EReference getYBooleanSearchField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getValue()
+	 * @see #getYBooleanSearchField()
+	 * @generated
+	 */
+	EAttribute getYBooleanSearchField_Value();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getPropertyPath()
+	 * @see #getYBooleanSearchField()
+	 * @generated
+	 */
+	EAttribute getYBooleanSearchField_PropertyPath();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField <em>YNumeric Search Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YNumeric Search Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField
+	 * @generated
+	 */
+	EClass getYNumericSearchField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getDatadescription()
+	 * @see #getYNumericSearchField()
+	 * @generated
+	 */
+	EReference getYNumericSearchField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getValue()
+	 * @see #getYNumericSearchField()
+	 * @generated
+	 */
+	EAttribute getYNumericSearchField_Value();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getWildcard <em>Wildcard</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Wildcard</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getWildcard()
+	 * @see #getYNumericSearchField()
+	 * @generated
+	 */
+	EAttribute getYNumericSearchField_Wildcard();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getPropertyPath()
+	 * @see #getYNumericSearchField()
+	 * @generated
+	 */
+	EAttribute getYNumericSearchField_PropertyPath();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getType()
+	 * @see #getYNumericSearchField()
+	 * @generated
+	 */
+	EAttribute getYNumericSearchField_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getTypeQualifiedName()
+	 * @see #getYNumericSearchField()
+	 * @generated
+	 */
+	EAttribute getYNumericSearchField_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField <em>YReference Search Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YReference Search Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField
+	 * @generated
+	 */
+	EClass getYReferenceSearchField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getDatadescription()
+	 * @see #getYReferenceSearchField()
+	 * @generated
+	 */
+	EReference getYReferenceSearchField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getValue()
+	 * @see #getYReferenceSearchField()
+	 * @generated
+	 */
+	EAttribute getYReferenceSearchField_Value();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getWildcard <em>Wildcard</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Wildcard</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getWildcard()
+	 * @see #getYReferenceSearchField()
+	 * @generated
+	 */
+	EAttribute getYReferenceSearchField_Wildcard();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getPropertyPath()
+	 * @see #getYReferenceSearchField()
+	 * @generated
+	 */
+	EAttribute getYReferenceSearchField_PropertyPath();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getType()
+	 * @see #getYReferenceSearchField()
+	 * @generated
+	 */
+	EAttribute getYReferenceSearchField_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getEmfNsURI()
+	 * @see #getYReferenceSearchField()
+	 * @generated
+	 */
+	EAttribute getYReferenceSearchField_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getTypeQualifiedName()
+	 * @see #getYReferenceSearchField()
+	 * @generated
+	 */
+	EAttribute getYReferenceSearchField_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel <em>YPanel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YPanel</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YPanel
+	 * @generated
+	 */
+	EClass getYPanel();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getDatadescription()
+	 * @see #getYPanel()
+	 * @generated
+	 */
+	EReference getYPanel_Datadescription();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getFirstContent <em>First Content</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>First Content</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getFirstContent()
+	 * @see #getYPanel()
+	 * @generated
+	 */
+	EReference getYPanel_FirstContent();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getSecondContent <em>Second Content</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Second Content</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getSecondContent()
+	 * @see #getYPanel()
+	 * @generated
+	 */
+	EReference getYPanel_SecondContent();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel <em>YSplit Panel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSplit Panel</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel
+	 * @generated
+	 */
+	EClass getYSplitPanel();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getDatadescription()
+	 * @see #getYSplitPanel()
+	 * @generated
+	 */
+	EReference getYSplitPanel_Datadescription();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getCellStyles <em>Cell Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Cell Styles</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getCellStyles()
+	 * @see #getYSplitPanel()
+	 * @generated
+	 */
+	EReference getYSplitPanel_CellStyles();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#isFillHorizontal <em>Fill Horizontal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Fill Horizontal</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#isFillHorizontal()
+	 * @see #getYSplitPanel()
+	 * @generated
+	 */
+	EAttribute getYSplitPanel_FillHorizontal();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getSplitPosition <em>Split Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Split Position</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getSplitPosition()
+	 * @see #getYSplitPanel()
+	 * @generated
+	 */
+	EAttribute getYSplitPanel_SplitPosition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#isVertical <em>Vertical</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Vertical</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#isVertical()
+	 * @see #getYSplitPanel()
+	 * @generated
+	 */
+	EAttribute getYSplitPanel_Vertical();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel <em>YSearch Panel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSearch Panel</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel
+	 * @generated
+	 */
+	EClass getYSearchPanel();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getType()
+	 * @see #getYSearchPanel()
+	 * @generated
+	 */
+	EAttribute getYSearchPanel_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getEmfNsURI()
+	 * @see #getYSearchPanel()
+	 * @generated
+	 */
+	EAttribute getYSearchPanel_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getTypeQualifiedName()
+	 * @see #getYSearchPanel()
+	 * @generated
+	 */
+	EAttribute getYSearchPanel_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getApplyFilter <em>Apply Filter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Apply Filter</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getApplyFilter()
+	 * @see #getYSearchPanel()
+	 * @generated
+	 */
+	EAttribute getYSearchPanel_ApplyFilter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getFilter <em>Filter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Filter</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getFilter()
+	 * @see #getYSearchPanel()
+	 * @generated
+	 */
+	EAttribute getYSearchPanel_Filter();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup <em>YEnum Options Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEnum Options Group</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup
+	 * @generated
+	 */
+	EClass getYEnumOptionsGroup();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getDatadescription()
+	 * @see #getYEnumOptionsGroup()
+	 * @generated
+	 */
+	EReference getYEnumOptionsGroup_Datadescription();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getDatatype()
+	 * @see #getYEnumOptionsGroup()
+	 * @generated
+	 */
+	EReference getYEnumOptionsGroup_Datatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getSelectionType <em>Selection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getSelectionType()
+	 * @see #getYEnumOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYEnumOptionsGroup_SelectionType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getSelection <em>Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getSelection()
+	 * @see #getYEnumOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYEnumOptionsGroup_Selection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getMultiSelection <em>Multi Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Multi Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getMultiSelection()
+	 * @see #getYEnumOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYEnumOptionsGroup_MultiSelection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getType()
+	 * @see #getYEnumOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYEnumOptionsGroup_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getEmfNsURI()
+	 * @see #getYEnumOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYEnumOptionsGroup_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getTypeQualifiedName()
+	 * @see #getYEnumOptionsGroup()
+	 * @generated
+	 */
+	EAttribute getYEnumOptionsGroup_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList <em>YEnum List</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEnum List</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList
+	 * @generated
+	 */
+	EClass getYEnumList();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getDatadescription()
+	 * @see #getYEnumList()
+	 * @generated
+	 */
+	EReference getYEnumList_Datadescription();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getDatatype()
+	 * @see #getYEnumList()
+	 * @generated
+	 */
+	EReference getYEnumList_Datatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getSelectionType <em>Selection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getSelectionType()
+	 * @see #getYEnumList()
+	 * @generated
+	 */
+	EAttribute getYEnumList_SelectionType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getSelection <em>Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getSelection()
+	 * @see #getYEnumList()
+	 * @generated
+	 */
+	EAttribute getYEnumList_Selection();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getMultiSelection <em>Multi Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Multi Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getMultiSelection()
+	 * @see #getYEnumList()
+	 * @generated
+	 */
+	EAttribute getYEnumList_MultiSelection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getType()
+	 * @see #getYEnumList()
+	 * @generated
+	 */
+	EAttribute getYEnumList_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getEmfNsURI()
+	 * @see #getYEnumList()
+	 * @generated
+	 */
+	EAttribute getYEnumList_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getTypeQualifiedName()
+	 * @see #getYEnumList()
+	 * @generated
+	 */
+	EAttribute getYEnumList_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox <em>YEnum Combo Box</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YEnum Combo Box</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox
+	 * @generated
+	 */
+	EClass getYEnumComboBox();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getDatadescription()
+	 * @see #getYEnumComboBox()
+	 * @generated
+	 */
+	EReference getYEnumComboBox_Datadescription();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getDatatype()
+	 * @see #getYEnumComboBox()
+	 * @generated
+	 */
+	EReference getYEnumComboBox_Datatype();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getSelection <em>Selection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selection</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getSelection()
+	 * @see #getYEnumComboBox()
+	 * @generated
+	 */
+	EAttribute getYEnumComboBox_Selection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getType()
+	 * @see #getYEnumComboBox()
+	 * @generated
+	 */
+	EAttribute getYEnumComboBox_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getEmfNsURI()
+	 * @see #getYEnumComboBox()
+	 * @generated
+	 */
+	EAttribute getYEnumComboBox_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getTypeQualifiedName()
+	 * @see #getYEnumComboBox()
+	 * @generated
+	 */
+	EAttribute getYEnumComboBox_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer <em>YBean Service Consumer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBean Service Consumer</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer
+	 * @generated
+	 */
+	EClass getYBeanServiceConsumer();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer#isUseBeanService <em>Use Bean Service</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Use Bean Service</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer#isUseBeanService()
+	 * @see #getYBeanServiceConsumer()
+	 * @generated
+	 */
+	EAttribute getYBeanServiceConsumer_UseBeanService();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand <em>YAdd To Table Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YAdd To Table Command</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand
+	 * @generated
+	 */
+	EClass getYAddToTableCommand();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand#getTable <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Table</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand#getTable()
+	 * @see #getYAddToTableCommand()
+	 * @generated
+	 */
+	EReference getYAddToTableCommand_Table();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand#getTrigger <em>Trigger</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Trigger</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand#getTrigger()
+	 * @see #getYAddToTableCommand()
+	 * @generated
+	 */
+	EAttribute getYAddToTableCommand_Trigger();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand <em>YRemove From Table Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YRemove From Table Command</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand
+	 * @generated
+	 */
+	EClass getYRemoveFromTableCommand();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand#getTable <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Table</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand#getTable()
+	 * @see #getYRemoveFromTableCommand()
+	 * @generated
+	 */
+	EReference getYRemoveFromTableCommand_Table();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand#getTrigger <em>Trigger</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Trigger</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand#getTrigger()
+	 * @see #getYRemoveFromTableCommand()
+	 * @generated
+	 */
+	EAttribute getYRemoveFromTableCommand_Trigger();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput <em>YBrowser Stream Input</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YBrowser Stream Input</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput
+	 * @generated
+	 */
+	EClass getYBrowserStreamInput();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getFilename <em>Filename</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Filename</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getFilename()
+	 * @see #getYBrowserStreamInput()
+	 * @generated
+	 */
+	EAttribute getYBrowserStreamInput_Filename();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getInputStream <em>Input Stream</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Input Stream</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getInputStream()
+	 * @see #getYBrowserStreamInput()
+	 * @generated
+	 */
+	EAttribute getYBrowserStreamInput_InputStream();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getMimeType <em>Mime Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Mime Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getMimeType()
+	 * @see #getYBrowserStreamInput()
+	 * @generated
+	 */
+	EAttribute getYBrowserStreamInput_MimeType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand <em>YSet New Bean Instance Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSet New Bean Instance Command</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand
+	 * @generated
+	 */
+	EClass getYSetNewBeanInstanceCommand();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTarget <em>Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Target</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTarget()
+	 * @see #getYSetNewBeanInstanceCommand()
+	 * @generated
+	 */
+	EReference getYSetNewBeanInstanceCommand_Target();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTrigger <em>Trigger</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Trigger</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTrigger()
+	 * @see #getYSetNewBeanInstanceCommand()
+	 * @generated
+	 */
+	EAttribute getYSetNewBeanInstanceCommand_Trigger();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getType()
+	 * @see #getYSetNewBeanInstanceCommand()
+	 * @generated
+	 */
+	EAttribute getYSetNewBeanInstanceCommand_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getEmfNsURI()
+	 * @see #getYSetNewBeanInstanceCommand()
+	 * @generated
+	 */
+	EAttribute getYSetNewBeanInstanceCommand_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTypeQualifiedName()
+	 * @see #getYSetNewBeanInstanceCommand()
+	 * @generated
+	 */
+	EAttribute getYSetNewBeanInstanceCommand_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout <em>YCss Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCss Layout</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout
+	 * @generated
+	 */
+	EClass getYCssLayout();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout#getCellStyles <em>Cell Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Cell Styles</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout#getCellStyles()
+	 * @see #getYCssLayout()
+	 * @generated
+	 */
+	EReference getYCssLayout_CellStyles();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle <em>YCss Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YCss Layout Cell Style</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle
+	 * @generated
+	 */
+	EClass getYCssLayoutCellStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle#getTarget <em>Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle#getTarget()
+	 * @see #getYCssLayoutCellStyle()
+	 * @generated
+	 */
+	EReference getYCssLayoutCellStyle_Target();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle#getAlignment <em>Alignment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Alignment</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle#getAlignment()
+	 * @see #getYCssLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYCssLayoutCellStyle_Alignment();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter <em>YFilter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YFilter</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFilter
+	 * @generated
+	 */
+	EClass getYFilter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter#getPropertyPath <em>Property Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Property Path</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFilter#getPropertyPath()
+	 * @see #getYFilter()
+	 * @generated
+	 */
+	EAttribute getYFilter_PropertyPath();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter#getFilterValue <em>Filter Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Filter Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFilter#getFilterValue()
+	 * @see #getYFilter()
+	 * @generated
+	 */
+	EAttribute getYFilter_FilterValue();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout <em>YAbsolute Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YAbsolute Layout</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout
+	 * @generated
+	 */
+	EClass getYAbsoluteLayout();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#getCellStyles <em>Cell Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Cell Styles</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#getCellStyles()
+	 * @see #getYAbsoluteLayout()
+	 * @generated
+	 */
+	EReference getYAbsoluteLayout_CellStyles();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#isChildResizeEnabled <em>Child Resize Enabled</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Child Resize Enabled</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#isChildResizeEnabled()
+	 * @see #getYAbsoluteLayout()
+	 * @generated
+	 */
+	EAttribute getYAbsoluteLayout_ChildResizeEnabled();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#isChildMoveEnabled <em>Child Move Enabled</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Child Move Enabled</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#isChildMoveEnabled()
+	 * @see #getYAbsoluteLayout()
+	 * @generated
+	 */
+	EAttribute getYAbsoluteLayout_ChildMoveEnabled();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle <em>YAbsolute Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YAbsolute Layout Cell Style</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle
+	 * @generated
+	 */
+	EClass getYAbsoluteLayoutCellStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getTarget <em>Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getTarget()
+	 * @see #getYAbsoluteLayoutCellStyle()
+	 * @generated
+	 */
+	EReference getYAbsoluteLayoutCellStyle_Target();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getTop <em>Top</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Top</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getTop()
+	 * @see #getYAbsoluteLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYAbsoluteLayoutCellStyle_Top();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getBottom <em>Bottom</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bottom</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getBottom()
+	 * @see #getYAbsoluteLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYAbsoluteLayoutCellStyle_Bottom();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getLeft <em>Left</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Left</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getLeft()
+	 * @see #getYAbsoluteLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYAbsoluteLayoutCellStyle_Left();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getRight <em>Right</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Right</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getRight()
+	 * @see #getYAbsoluteLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYAbsoluteLayoutCellStyle_Right();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getZIndex <em>ZIndex</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>ZIndex</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getZIndex()
+	 * @see #getYAbsoluteLayoutCellStyle()
+	 * @generated
+	 */
+	EAttribute getYAbsoluteLayoutCellStyle_ZIndex();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField <em>YSuggest Text Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YSuggest Text Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField
+	 * @generated
+	 */
+	EClass getYSuggestTextField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getDatatype()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EReference getYSuggestTextField_Datatype();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getDatadescription()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EReference getYSuggestTextField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getValue()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_Value();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#isUseSuggestions <em>Use Suggestions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Use Suggestions</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#isUseSuggestions()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_UseSuggestions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#isAutoHidePopup <em>Auto Hide Popup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Auto Hide Popup</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#isAutoHidePopup()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_AutoHidePopup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getLastSuggestion <em>Last Suggestion</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Last Suggestion</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getLastSuggestion()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_LastSuggestion();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getType()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getEmfNsURI <em>Emf Ns URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Emf Ns URI</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getEmfNsURI()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_EmfNsURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getTypeQualifiedName <em>Type Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Qualified Name</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getTypeQualifiedName()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_TypeQualifiedName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemCaptionProperty <em>Item Caption Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Item Caption Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemCaptionProperty()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_ItemCaptionProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemFilterProperty <em>Item Filter Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Item Filter Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemFilterProperty()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_ItemFilterProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemUUIDProperty <em>Item UUID Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Item UUID Property</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemUUIDProperty()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_ItemUUIDProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getEvent <em>Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Event</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getEvent()
+	 * @see #getYSuggestTextField()
+	 * @generated
+	 */
+	EAttribute getYSuggestTextField_Event();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField <em>YPassword Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>YPassword Field</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField
+	 * @generated
+	 */
+	EClass getYPasswordField();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField#getDatadescription <em>Datadescription</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datadescription</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField#getDatadescription()
+	 * @see #getYPasswordField()
+	 * @generated
+	 */
+	EReference getYPasswordField_Datadescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField#getValue()
+	 * @see #getYPasswordField()
+	 * @generated
+	 */
+	EAttribute getYPasswordField_Value();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType <em>YSelection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YSelection Type</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @generated
+	 */
+	EEnum getYSelectionType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption <em>YBoolean Search Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YBoolean Search Option</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption
+	 * @generated
+	 */
+	EEnum getYBooleanSearchOption();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards <em>YSearch Wildcards</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YSearch Wildcards</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards
+	 * @generated
+	 */
+	EEnum getYSearchWildcards();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents <em>YSuggest Text Field Events</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>YSuggest Text Field Events</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents
+	 * @generated
+	 */
+	EEnum getYSuggestTextFieldEvents();
+
+	/**
+	 * Returns the meta object for data type '{@link org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener <em>YButton Click Listener</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>YButton Click Listener</em>'.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener
+	 * @model instanceClass="org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener"
+	 * @generated
+	 */
+	EDataType getYButtonClickListener();
+
+	/**
+	 * Returns the meta object for data type '{@link java.io.InputStream <em>YInput Stream</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>YInput Stream</em>'.
+	 * @see java.io.InputStream
+	 * @model instanceClass="java.io.InputStream"
+	 * @generated
+	 */
+	EDataType getYInputStream();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	ExtensionModelFactory getExtensionModelFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YInputImpl <em>YInput</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YInputImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYInput()
+		 * @generated
+		 */
+		EClass YINPUT = eINSTANCE.getYInput();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutImpl <em>YGrid Layout</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYGridLayout()
+		 * @generated
+		 */
+		EClass YGRID_LAYOUT = eINSTANCE.getYGridLayout();
+
+		/**
+		 * The meta object literal for the '<em><b>Cell Styles</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YGRID_LAYOUT__CELL_STYLES = eINSTANCE.getYGridLayout_CellStyles();
+
+		/**
+		 * The meta object literal for the '<em><b>Columns</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YGRID_LAYOUT__COLUMNS = eINSTANCE.getYGridLayout_Columns();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutCellStyleImpl <em>YGrid Layout Cell Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutCellStyleImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYGridLayoutCellStyle()
+		 * @generated
+		 */
+		EClass YGRID_LAYOUT_CELL_STYLE = eINSTANCE.getYGridLayoutCellStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YGRID_LAYOUT_CELL_STYLE__TARGET = eINSTANCE.getYGridLayoutCellStyle_Target();
+
+		/**
+		 * The meta object literal for the '<em><b>Alignment</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YGRID_LAYOUT_CELL_STYLE__ALIGNMENT = eINSTANCE.getYGridLayoutCellStyle_Alignment();
+
+		/**
+		 * The meta object literal for the '<em><b>Span Info</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YGRID_LAYOUT_CELL_STYLE__SPAN_INFO = eINSTANCE.getYGridLayoutCellStyle_SpanInfo();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutImpl <em>YHorizontal Layout</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYHorizontalLayout()
+		 * @generated
+		 */
+		EClass YHORIZONTAL_LAYOUT = eINSTANCE.getYHorizontalLayout();
+
+		/**
+		 * The meta object literal for the '<em><b>Cell Styles</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YHORIZONTAL_LAYOUT__CELL_STYLES = eINSTANCE.getYHorizontalLayout_CellStyles();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutCellStyleImpl <em>YHorizontal Layout Cell Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutCellStyleImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYHorizontalLayoutCellStyle()
+		 * @generated
+		 */
+		EClass YHORIZONTAL_LAYOUT_CELL_STYLE = eINSTANCE.getYHorizontalLayoutCellStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET = eINSTANCE.getYHorizontalLayoutCellStyle_Target();
+
+		/**
+		 * The meta object literal for the '<em><b>Alignment</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT = eINSTANCE.getYHorizontalLayoutCellStyle_Alignment();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutImpl <em>YVertical Layout</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYVerticalLayout()
+		 * @generated
+		 */
+		EClass YVERTICAL_LAYOUT = eINSTANCE.getYVerticalLayout();
+
+		/**
+		 * The meta object literal for the '<em><b>Cell Styles</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVERTICAL_LAYOUT__CELL_STYLES = eINSTANCE.getYVerticalLayout_CellStyles();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutCellStyleImpl <em>YVertical Layout Cell Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutCellStyleImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYVerticalLayoutCellStyle()
+		 * @generated
+		 */
+		EClass YVERTICAL_LAYOUT_CELL_STYLE = eINSTANCE.getYVerticalLayoutCellStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YVERTICAL_LAYOUT_CELL_STYLE__TARGET = eINSTANCE.getYVerticalLayoutCellStyle_Target();
+
+		/**
+		 * The meta object literal for the '<em><b>Alignment</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT = eINSTANCE.getYVerticalLayoutCellStyle_Alignment();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSpanInfoImpl <em>YSpan Info</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSpanInfoImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSpanInfo()
+		 * @generated
+		 */
+		EClass YSPAN_INFO = eINSTANCE.getYSpanInfo();
+
+		/**
+		 * The meta object literal for the '<em><b>Column From</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSPAN_INFO__COLUMN_FROM = eINSTANCE.getYSpanInfo_ColumnFrom();
+
+		/**
+		 * The meta object literal for the '<em><b>Row From</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSPAN_INFO__ROW_FROM = eINSTANCE.getYSpanInfo_RowFrom();
+
+		/**
+		 * The meta object literal for the '<em><b>Column To</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSPAN_INFO__COLUMN_TO = eINSTANCE.getYSpanInfo_ColumnTo();
+
+		/**
+		 * The meta object literal for the '<em><b>Row To</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSPAN_INFO__ROW_TO = eINSTANCE.getYSpanInfo_RowTo();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl <em>YTable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTable()
+		 * @generated
+		 */
+		EClass YTABLE = eINSTANCE.getYTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTABLE__DATATYPE = eINSTANCE.getYTable_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTABLE__DATADESCRIPTION = eINSTANCE.getYTable_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__SELECTION_TYPE = eINSTANCE.getYTable_SelectionType();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__SELECTION = eINSTANCE.getYTable_Selection();
+
+		/**
+		 * The meta object literal for the '<em><b>Multi Selection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__MULTI_SELECTION = eINSTANCE.getYTable_MultiSelection();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__COLLECTION = eINSTANCE.getYTable_Collection();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__TYPE = eINSTANCE.getYTable_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__EMF_NS_URI = eINSTANCE.getYTable_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__TYPE_QUALIFIED_NAME = eINSTANCE.getYTable_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Columns</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTABLE__COLUMNS = eINSTANCE.getYTable_Columns();
+
+		/**
+		 * The meta object literal for the '<em><b>Item Image Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__ITEM_IMAGE_PROPERTY = eINSTANCE.getYTable_ItemImageProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Filter</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__FILTER = eINSTANCE.getYTable_Filter();
+
+		/**
+		 * The meta object literal for the '<em><b>Refresh</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTABLE__REFRESH = eINSTANCE.getYTable_Refresh();
+
+		/**
+		 * The meta object literal for the '<em><b>Sort Order</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTABLE__SORT_ORDER = eINSTANCE.getYTable_SortOrder();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl <em>YColumn</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYColumn()
+		 * @generated
+		 */
+		EClass YCOLUMN = eINSTANCE.getYColumn();
+
+		/**
+		 * The meta object literal for the '<em><b>Icon</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__ICON = eINSTANCE.getYColumn_Icon();
+
+		/**
+		 * The meta object literal for the '<em><b>Visible</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__VISIBLE = eINSTANCE.getYColumn_Visible();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCOLUMN__DATADESCRIPTION = eINSTANCE.getYColumn_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCOLUMN__ORPHAN_DATADESCRIPTIONS = eINSTANCE.getYColumn_OrphanDatadescriptions();
+
+		/**
+		 * The meta object literal for the '<em><b>Orderable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__ORDERABLE = eINSTANCE.getYColumn_Orderable();
+
+		/**
+		 * The meta object literal for the '<em><b>Collapsed</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__COLLAPSED = eINSTANCE.getYColumn_Collapsed();
+
+		/**
+		 * The meta object literal for the '<em><b>Collapsible</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__COLLAPSIBLE = eINSTANCE.getYColumn_Collapsible();
+
+		/**
+		 * The meta object literal for the '<em><b>Alignment</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__ALIGNMENT = eINSTANCE.getYColumn_Alignment();
+
+		/**
+		 * The meta object literal for the '<em><b>Expand Ratio</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__EXPAND_RATIO = eINSTANCE.getYColumn_ExpandRatio();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__PROPERTY_PATH = eINSTANCE.getYColumn_PropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Converter</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCOLUMN__CONVERTER = eINSTANCE.getYColumn_Converter();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__TYPE = eINSTANCE.getYColumn_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOLUMN__TYPE_QUALIFIED_NAME = eINSTANCE.getYColumn_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl <em>YSort Column</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSortColumn()
+		 * @generated
+		 */
+		EClass YSORT_COLUMN = eINSTANCE.getYSortColumn();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSORT_COLUMN__PROPERTY_PATH = eINSTANCE.getYSortColumn_PropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSORT_COLUMN__TYPE = eINSTANCE.getYSortColumn_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSORT_COLUMN__TYPE_QUALIFIED_NAME = eINSTANCE.getYSortColumn_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Asc</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSORT_COLUMN__ASC = eINSTANCE.getYSortColumn_Asc();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl <em>YTree</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTree()
+		 * @generated
+		 */
+		EClass YTREE = eINSTANCE.getYTree();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTREE__DATATYPE = eINSTANCE.getYTree_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTREE__DATADESCRIPTION = eINSTANCE.getYTree_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTREE__SELECTION_TYPE = eINSTANCE.getYTree_SelectionType();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTREE__SELECTION = eINSTANCE.getYTree_Selection();
+
+		/**
+		 * The meta object literal for the '<em><b>Multi Selection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTREE__MULTI_SELECTION = eINSTANCE.getYTree_MultiSelection();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTREE__COLLECTION = eINSTANCE.getYTree_Collection();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTREE__TYPE = eINSTANCE.getYTree_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTREE__EMF_NS_URI = eINSTANCE.getYTree_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTREE__TYPE_QUALIFIED_NAME = eINSTANCE.getYTree_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl <em>YOptions Group</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYOptionsGroup()
+		 * @generated
+		 */
+		EClass YOPTIONS_GROUP = eINSTANCE.getYOptionsGroup();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YOPTIONS_GROUP__DATADESCRIPTION = eINSTANCE.getYOptionsGroup_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YOPTIONS_GROUP__DATATYPE = eINSTANCE.getYOptionsGroup_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__SELECTION_TYPE = eINSTANCE.getYOptionsGroup_SelectionType();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__SELECTION = eINSTANCE.getYOptionsGroup_Selection();
+
+		/**
+		 * The meta object literal for the '<em><b>Multi Selection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__MULTI_SELECTION = eINSTANCE.getYOptionsGroup_MultiSelection();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__COLLECTION = eINSTANCE.getYOptionsGroup_Collection();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__TYPE = eINSTANCE.getYOptionsGroup_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__EMF_NS_URI = eINSTANCE.getYOptionsGroup_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__TYPE_QUALIFIED_NAME = eINSTANCE.getYOptionsGroup_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Caption Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__CAPTION_PROPERTY = eINSTANCE.getYOptionsGroup_CaptionProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Image Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__IMAGE_PROPERTY = eINSTANCE.getYOptionsGroup_ImageProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Description Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__DESCRIPTION_PROPERTY = eINSTANCE.getYOptionsGroup_DescriptionProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YOPTIONS_GROUP__DESCRIPTION = eINSTANCE.getYOptionsGroup_Description();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl <em>YList</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYList()
+		 * @generated
+		 */
+		EClass YLIST = eINSTANCE.getYList();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YLIST__DATADESCRIPTION = eINSTANCE.getYList_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YLIST__DATATYPE = eINSTANCE.getYList_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__SELECTION_TYPE = eINSTANCE.getYList_SelectionType();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__SELECTION = eINSTANCE.getYList_Selection();
+
+		/**
+		 * The meta object literal for the '<em><b>Multi Selection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__MULTI_SELECTION = eINSTANCE.getYList_MultiSelection();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__COLLECTION = eINSTANCE.getYList_Collection();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__TYPE = eINSTANCE.getYList_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__EMF_NS_URI = eINSTANCE.getYList_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__TYPE_QUALIFIED_NAME = eINSTANCE.getYList_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Caption Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__CAPTION_PROPERTY = eINSTANCE.getYList_CaptionProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Image Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__IMAGE_PROPERTY = eINSTANCE.getYList_ImageProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Description Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__DESCRIPTION_PROPERTY = eINSTANCE.getYList_DescriptionProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLIST__DESCRIPTION = eINSTANCE.getYList_Description();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YLabelImpl <em>YLabel</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YLabelImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYLabel()
+		 * @generated
+		 */
+		EClass YLABEL = eINSTANCE.getYLabel();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YLABEL__DATADESCRIPTION = eINSTANCE.getYLabel_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YLABEL__VALUE = eINSTANCE.getYLabel_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YImageImpl <em>YImage</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YImageImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYImage()
+		 * @generated
+		 */
+		EClass YIMAGE = eINSTANCE.getYImage();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YIMAGE__DATADESCRIPTION = eINSTANCE.getYImage_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YIMAGE__VALUE = eINSTANCE.getYImage_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextFieldImpl <em>YText Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTextField()
+		 * @generated
+		 */
+		EClass YTEXT_FIELD = eINSTANCE.getYTextField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTEXT_FIELD__DATATYPE = eINSTANCE.getYTextField_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTEXT_FIELD__DATADESCRIPTION = eINSTANCE.getYTextField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTEXT_FIELD__VALUE = eINSTANCE.getYTextField_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl <em>YBean Reference Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBeanReferenceField()
+		 * @generated
+		 */
+		EClass YBEAN_REFERENCE_FIELD = eINSTANCE.getYBeanReferenceField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YBEAN_REFERENCE_FIELD__DATADESCRIPTION = eINSTANCE.getYBeanReferenceField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__VALUE = eINSTANCE.getYBeanReferenceField_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__TYPE = eINSTANCE.getYBeanReferenceField_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__EMF_NS_URI = eINSTANCE.getYBeanReferenceField_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME = eINSTANCE.getYBeanReferenceField_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>In Memory Bean Provider</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER = eINSTANCE.getYBeanReferenceField_InMemoryBeanProvider();
+
+		/**
+		 * The meta object literal for the '<em><b>In Memory Bean Provider Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME = eINSTANCE.getYBeanReferenceField_InMemoryBeanProviderQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Caption Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH = eINSTANCE.getYBeanReferenceField_CaptionPropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Image Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH = eINSTANCE.getYBeanReferenceField_ImagePropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Description Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY = eINSTANCE.getYBeanReferenceField_DescriptionProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__DESCRIPTION = eINSTANCE.getYBeanReferenceField_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>Reference Source Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE = eINSTANCE.getYBeanReferenceField_ReferenceSourceType();
+
+		/**
+		 * The meta object literal for the '<em><b>Reference Source Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME = eINSTANCE.getYBeanReferenceField_ReferenceSourceTypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Reference Source Type Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY = eINSTANCE.getYBeanReferenceField_ReferenceSourceTypeProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Required</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_REFERENCE_FIELD__REQUIRED = eINSTANCE.getYBeanReferenceField_Required();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl <em>YText Area</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTextArea()
+		 * @generated
+		 */
+		EClass YTEXT_AREA = eINSTANCE.getYTextArea();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTEXT_AREA__DATADESCRIPTION = eINSTANCE.getYTextArea_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTEXT_AREA__DATATYPE = eINSTANCE.getYTextArea_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTEXT_AREA__VALUE = eINSTANCE.getYTextArea_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Word Wrap</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTEXT_AREA__WORD_WRAP = eINSTANCE.getYTextArea_WordWrap();
+
+		/**
+		 * The meta object literal for the '<em><b>Rows</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTEXT_AREA__ROWS = eINSTANCE.getYTextArea_Rows();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCheckBoxImpl <em>YCheck Box</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCheckBoxImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYCheckBox()
+		 * @generated
+		 */
+		EClass YCHECK_BOX = eINSTANCE.getYCheckBox();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCHECK_BOX__DATADESCRIPTION = eINSTANCE.getYCheckBox_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCHECK_BOX__DATATYPE = eINSTANCE.getYCheckBox_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCHECK_BOX__VALUE = eINSTANCE.getYCheckBox_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserImpl <em>YBrowser</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBrowser()
+		 * @generated
+		 */
+		EClass YBROWSER = eINSTANCE.getYBrowser();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YBROWSER__DATATYPE = eINSTANCE.getYBrowser_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YBROWSER__DATADESCRIPTION = eINSTANCE.getYBrowser_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBROWSER__VALUE = eINSTANCE.getYBrowser_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDateTimeImpl <em>YDate Time</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDateTimeImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYDateTime()
+		 * @generated
+		 */
+		EClass YDATE_TIME = eINSTANCE.getYDateTime();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDATE_TIME__DATATYPE = eINSTANCE.getYDateTime_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDATE_TIME__DATADESCRIPTION = eINSTANCE.getYDateTime_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDATE_TIME__VALUE = eINSTANCE.getYDateTime_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDecimalFieldImpl <em>YDecimal Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDecimalFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYDecimalField()
+		 * @generated
+		 */
+		EClass YDECIMAL_FIELD = eINSTANCE.getYDecimalField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDECIMAL_FIELD__DATATYPE = eINSTANCE.getYDecimalField_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YDECIMAL_FIELD__DATADESCRIPTION = eINSTANCE.getYDecimalField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YDECIMAL_FIELD__VALUE = eINSTANCE.getYDecimalField_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericFieldImpl <em>YNumeric Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYNumericField()
+		 * @generated
+		 */
+		EClass YNUMERIC_FIELD = eINSTANCE.getYNumericField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YNUMERIC_FIELD__DATATYPE = eINSTANCE.getYNumericField_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YNUMERIC_FIELD__DATADESCRIPTION = eINSTANCE.getYNumericField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YNUMERIC_FIELD__VALUE = eINSTANCE.getYNumericField_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl <em>YCombo Box</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYComboBox()
+		 * @generated
+		 */
+		EClass YCOMBO_BOX = eINSTANCE.getYComboBox();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCOMBO_BOX__DATADESCRIPTION = eINSTANCE.getYComboBox_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCOMBO_BOX__DATATYPE = eINSTANCE.getYComboBox_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOMBO_BOX__SELECTION = eINSTANCE.getYComboBox_Selection();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOMBO_BOX__COLLECTION = eINSTANCE.getYComboBox_Collection();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOMBO_BOX__TYPE = eINSTANCE.getYComboBox_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOMBO_BOX__EMF_NS_URI = eINSTANCE.getYComboBox_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOMBO_BOX__TYPE_QUALIFIED_NAME = eINSTANCE.getYComboBox_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Caption Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOMBO_BOX__CAPTION_PROPERTY = eINSTANCE.getYComboBox_CaptionProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Image Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOMBO_BOX__IMAGE_PROPERTY = eINSTANCE.getYComboBox_ImageProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Description Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOMBO_BOX__DESCRIPTION_PROPERTY = eINSTANCE.getYComboBox_DescriptionProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCOMBO_BOX__DESCRIPTION = eINSTANCE.getYComboBox_Description();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl <em>YButton</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYButton()
+		 * @generated
+		 */
+		EClass YBUTTON = eINSTANCE.getYButton();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YBUTTON__DATADESCRIPTION = eINSTANCE.getYButton_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Click Listeners</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBUTTON__CLICK_LISTENERS = eINSTANCE.getYButton_ClickListeners();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Click Time</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBUTTON__LAST_CLICK_TIME = eINSTANCE.getYButton_LastClickTime();
+
+		/**
+		 * The meta object literal for the '<em><b>Image</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBUTTON__IMAGE = eINSTANCE.getYButton_Image();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl <em>YSlider</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSlider()
+		 * @generated
+		 */
+		EClass YSLIDER = eINSTANCE.getYSlider();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YSLIDER__DATADESCRIPTION = eINSTANCE.getYSlider_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSLIDER__VALUE = eINSTANCE.getYSlider_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Max Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSLIDER__MAX_VALUE = eINSTANCE.getYSlider_MaxValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Min Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSLIDER__MIN_VALUE = eINSTANCE.getYSlider_MinValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Resolution</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSLIDER__RESOLUTION = eINSTANCE.getYSlider_Resolution();
+
+		/**
+		 * The meta object literal for the '<em><b>Orientation</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSLIDER__ORIENTATION = eINSTANCE.getYSlider_Orientation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YToggleButtonImpl <em>YToggle Button</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YToggleButtonImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYToggleButton()
+		 * @generated
+		 */
+		EClass YTOGGLE_BUTTON = eINSTANCE.getYToggleButton();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTOGGLE_BUTTON__DATADESCRIPTION = eINSTANCE.getYToggleButton_Datadescription();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YProgressBarImpl <em>YProgress Bar</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YProgressBarImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYProgressBar()
+		 * @generated
+		 */
+		EClass YPROGRESS_BAR = eINSTANCE.getYProgressBar();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YPROGRESS_BAR__DATATYPE = eINSTANCE.getYProgressBar_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YPROGRESS_BAR__DATADESCRIPTION = eINSTANCE.getYProgressBar_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YPROGRESS_BAR__VALUE = eINSTANCE.getYProgressBar_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabSheetImpl <em>YTab Sheet</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabSheetImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTabSheet()
+		 * @generated
+		 */
+		EClass YTAB_SHEET = eINSTANCE.getYTabSheet();
+
+		/**
+		 * The meta object literal for the '<em><b>Tabs</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTAB_SHEET__TABS = eINSTANCE.getYTabSheet_Tabs();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl <em>YTab</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTab()
+		 * @generated
+		 */
+		EClass YTAB = eINSTANCE.getYTab();
+
+		/**
+		 * The meta object literal for the '<em><b>Parent</b></em>' container reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTAB__PARENT = eINSTANCE.getYTab_Parent();
+
+		/**
+		 * The meta object literal for the '<em><b>Embeddable</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTAB__EMBEDDABLE = eINSTANCE.getYTab_Embeddable();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTAB__DATADESCRIPTION = eINSTANCE.getYTab_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Orphan Datadescriptions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTAB__ORPHAN_DATADESCRIPTIONS = eINSTANCE.getYTab_OrphanDatadescriptions();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl <em>YMaster Detail</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYMasterDetail()
+		 * @generated
+		 */
+		EClass YMASTER_DETAIL = eINSTANCE.getYMasterDetail();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YMASTER_DETAIL__DATATYPE = eINSTANCE.getYMasterDetail_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YMASTER_DETAIL__DATADESCRIPTION = eINSTANCE.getYMasterDetail_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YMASTER_DETAIL__SELECTION = eINSTANCE.getYMasterDetail_Selection();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YMASTER_DETAIL__COLLECTION = eINSTANCE.getYMasterDetail_Collection();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YMASTER_DETAIL__TYPE = eINSTANCE.getYMasterDetail_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YMASTER_DETAIL__EMF_NS_URI = eINSTANCE.getYMasterDetail_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Master Element</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YMASTER_DETAIL__MASTER_ELEMENT = eINSTANCE.getYMasterDetail_MasterElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Detail Element</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YMASTER_DETAIL__DETAIL_ELEMENT = eINSTANCE.getYMasterDetail_DetailElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YMASTER_DETAIL__TYPE_QUALIFIED_NAME = eINSTANCE.getYMasterDetail_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutImpl <em>YForm Layout</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYFormLayout()
+		 * @generated
+		 */
+		EClass YFORM_LAYOUT = eINSTANCE.getYFormLayout();
+
+		/**
+		 * The meta object literal for the '<em><b>Cell Styles</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YFORM_LAYOUT__CELL_STYLES = eINSTANCE.getYFormLayout_CellStyles();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutCellStyleImpl <em>YForm Layout Cell Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutCellStyleImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYFormLayoutCellStyle()
+		 * @generated
+		 */
+		EClass YFORM_LAYOUT_CELL_STYLE = eINSTANCE.getYFormLayoutCellStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YFORM_LAYOUT_CELL_STYLE__TARGET = eINSTANCE.getYFormLayoutCellStyle_Target();
+
+		/**
+		 * The meta object literal for the '<em><b>Alignment</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YFORM_LAYOUT_CELL_STYLE__ALIGNMENT = eINSTANCE.getYFormLayoutCellStyle_Alignment();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchField <em>YSearch Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchField
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSearchField()
+		 * @generated
+		 */
+		EClass YSEARCH_FIELD = eINSTANCE.getYSearchField();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextSearchFieldImpl <em>YText Search Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextSearchFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYTextSearchField()
+		 * @generated
+		 */
+		EClass YTEXT_SEARCH_FIELD = eINSTANCE.getYTextSearchField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YTEXT_SEARCH_FIELD__DATADESCRIPTION = eINSTANCE.getYTextSearchField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTEXT_SEARCH_FIELD__VALUE = eINSTANCE.getYTextSearchField_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Wildcard</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTEXT_SEARCH_FIELD__WILDCARD = eINSTANCE.getYTextSearchField_Wildcard();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YTEXT_SEARCH_FIELD__PROPERTY_PATH = eINSTANCE.getYTextSearchField_PropertyPath();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBooleanSearchFieldImpl <em>YBoolean Search Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBooleanSearchFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBooleanSearchField()
+		 * @generated
+		 */
+		EClass YBOOLEAN_SEARCH_FIELD = eINSTANCE.getYBooleanSearchField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION = eINSTANCE.getYBooleanSearchField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBOOLEAN_SEARCH_FIELD__VALUE = eINSTANCE.getYBooleanSearchField_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH = eINSTANCE.getYBooleanSearchField_PropertyPath();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl <em>YNumeric Search Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYNumericSearchField()
+		 * @generated
+		 */
+		EClass YNUMERIC_SEARCH_FIELD = eINSTANCE.getYNumericSearchField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YNUMERIC_SEARCH_FIELD__DATADESCRIPTION = eINSTANCE.getYNumericSearchField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YNUMERIC_SEARCH_FIELD__VALUE = eINSTANCE.getYNumericSearchField_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Wildcard</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YNUMERIC_SEARCH_FIELD__WILDCARD = eINSTANCE.getYNumericSearchField_Wildcard();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YNUMERIC_SEARCH_FIELD__PROPERTY_PATH = eINSTANCE.getYNumericSearchField_PropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YNUMERIC_SEARCH_FIELD__TYPE = eINSTANCE.getYNumericSearchField_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME = eINSTANCE.getYNumericSearchField_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl <em>YReference Search Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYReferenceSearchField()
+		 * @generated
+		 */
+		EClass YREFERENCE_SEARCH_FIELD = eINSTANCE.getYReferenceSearchField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YREFERENCE_SEARCH_FIELD__DATADESCRIPTION = eINSTANCE.getYReferenceSearchField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YREFERENCE_SEARCH_FIELD__VALUE = eINSTANCE.getYReferenceSearchField_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Wildcard</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YREFERENCE_SEARCH_FIELD__WILDCARD = eINSTANCE.getYReferenceSearchField_Wildcard();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YREFERENCE_SEARCH_FIELD__PROPERTY_PATH = eINSTANCE.getYReferenceSearchField_PropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YREFERENCE_SEARCH_FIELD__TYPE = eINSTANCE.getYReferenceSearchField_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YREFERENCE_SEARCH_FIELD__EMF_NS_URI = eINSTANCE.getYReferenceSearchField_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME = eINSTANCE.getYReferenceSearchField_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPanelImpl <em>YPanel</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPanelImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYPanel()
+		 * @generated
+		 */
+		EClass YPANEL = eINSTANCE.getYPanel();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YPANEL__DATADESCRIPTION = eINSTANCE.getYPanel_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>First Content</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YPANEL__FIRST_CONTENT = eINSTANCE.getYPanel_FirstContent();
+
+		/**
+		 * The meta object literal for the '<em><b>Second Content</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YPANEL__SECOND_CONTENT = eINSTANCE.getYPanel_SecondContent();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSplitPanelImpl <em>YSplit Panel</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSplitPanelImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSplitPanel()
+		 * @generated
+		 */
+		EClass YSPLIT_PANEL = eINSTANCE.getYSplitPanel();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YSPLIT_PANEL__DATADESCRIPTION = eINSTANCE.getYSplitPanel_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Cell Styles</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YSPLIT_PANEL__CELL_STYLES = eINSTANCE.getYSplitPanel_CellStyles();
+
+		/**
+		 * The meta object literal for the '<em><b>Fill Horizontal</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSPLIT_PANEL__FILL_HORIZONTAL = eINSTANCE.getYSplitPanel_FillHorizontal();
+
+		/**
+		 * The meta object literal for the '<em><b>Split Position</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSPLIT_PANEL__SPLIT_POSITION = eINSTANCE.getYSplitPanel_SplitPosition();
+
+		/**
+		 * The meta object literal for the '<em><b>Vertical</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSPLIT_PANEL__VERTICAL = eINSTANCE.getYSplitPanel_Vertical();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl <em>YSearch Panel</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSearchPanel()
+		 * @generated
+		 */
+		EClass YSEARCH_PANEL = eINSTANCE.getYSearchPanel();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSEARCH_PANEL__TYPE = eINSTANCE.getYSearchPanel_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSEARCH_PANEL__EMF_NS_URI = eINSTANCE.getYSearchPanel_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSEARCH_PANEL__TYPE_QUALIFIED_NAME = eINSTANCE.getYSearchPanel_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Apply Filter</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSEARCH_PANEL__APPLY_FILTER = eINSTANCE.getYSearchPanel_ApplyFilter();
+
+		/**
+		 * The meta object literal for the '<em><b>Filter</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSEARCH_PANEL__FILTER = eINSTANCE.getYSearchPanel_Filter();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl <em>YEnum Options Group</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYEnumOptionsGroup()
+		 * @generated
+		 */
+		EClass YENUM_OPTIONS_GROUP = eINSTANCE.getYEnumOptionsGroup();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YENUM_OPTIONS_GROUP__DATADESCRIPTION = eINSTANCE.getYEnumOptionsGroup_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YENUM_OPTIONS_GROUP__DATATYPE = eINSTANCE.getYEnumOptionsGroup_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_OPTIONS_GROUP__SELECTION_TYPE = eINSTANCE.getYEnumOptionsGroup_SelectionType();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_OPTIONS_GROUP__SELECTION = eINSTANCE.getYEnumOptionsGroup_Selection();
+
+		/**
+		 * The meta object literal for the '<em><b>Multi Selection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_OPTIONS_GROUP__MULTI_SELECTION = eINSTANCE.getYEnumOptionsGroup_MultiSelection();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_OPTIONS_GROUP__TYPE = eINSTANCE.getYEnumOptionsGroup_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_OPTIONS_GROUP__EMF_NS_URI = eINSTANCE.getYEnumOptionsGroup_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME = eINSTANCE.getYEnumOptionsGroup_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl <em>YEnum List</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYEnumList()
+		 * @generated
+		 */
+		EClass YENUM_LIST = eINSTANCE.getYEnumList();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YENUM_LIST__DATADESCRIPTION = eINSTANCE.getYEnumList_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YENUM_LIST__DATATYPE = eINSTANCE.getYEnumList_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_LIST__SELECTION_TYPE = eINSTANCE.getYEnumList_SelectionType();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_LIST__SELECTION = eINSTANCE.getYEnumList_Selection();
+
+		/**
+		 * The meta object literal for the '<em><b>Multi Selection</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_LIST__MULTI_SELECTION = eINSTANCE.getYEnumList_MultiSelection();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_LIST__TYPE = eINSTANCE.getYEnumList_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_LIST__EMF_NS_URI = eINSTANCE.getYEnumList_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_LIST__TYPE_QUALIFIED_NAME = eINSTANCE.getYEnumList_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl <em>YEnum Combo Box</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYEnumComboBox()
+		 * @generated
+		 */
+		EClass YENUM_COMBO_BOX = eINSTANCE.getYEnumComboBox();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YENUM_COMBO_BOX__DATADESCRIPTION = eINSTANCE.getYEnumComboBox_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YENUM_COMBO_BOX__DATATYPE = eINSTANCE.getYEnumComboBox_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Selection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_COMBO_BOX__SELECTION = eINSTANCE.getYEnumComboBox_Selection();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_COMBO_BOX__TYPE = eINSTANCE.getYEnumComboBox_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_COMBO_BOX__EMF_NS_URI = eINSTANCE.getYEnumComboBox_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME = eINSTANCE.getYEnumComboBox_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer <em>YBean Service Consumer</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBeanServiceConsumer()
+		 * @generated
+		 */
+		EClass YBEAN_SERVICE_CONSUMER = eINSTANCE.getYBeanServiceConsumer();
+
+		/**
+		 * The meta object literal for the '<em><b>Use Bean Service</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE = eINSTANCE.getYBeanServiceConsumer_UseBeanService();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl <em>YAdd To Table Command</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYAddToTableCommand()
+		 * @generated
+		 */
+		EClass YADD_TO_TABLE_COMMAND = eINSTANCE.getYAddToTableCommand();
+
+		/**
+		 * The meta object literal for the '<em><b>Table</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YADD_TO_TABLE_COMMAND__TABLE = eINSTANCE.getYAddToTableCommand_Table();
+
+		/**
+		 * The meta object literal for the '<em><b>Trigger</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YADD_TO_TABLE_COMMAND__TRIGGER = eINSTANCE.getYAddToTableCommand_Trigger();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl <em>YRemove From Table Command</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYRemoveFromTableCommand()
+		 * @generated
+		 */
+		EClass YREMOVE_FROM_TABLE_COMMAND = eINSTANCE.getYRemoveFromTableCommand();
+
+		/**
+		 * The meta object literal for the '<em><b>Table</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YREMOVE_FROM_TABLE_COMMAND__TABLE = eINSTANCE.getYRemoveFromTableCommand_Table();
+
+		/**
+		 * The meta object literal for the '<em><b>Trigger</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YREMOVE_FROM_TABLE_COMMAND__TRIGGER = eINSTANCE.getYRemoveFromTableCommand_Trigger();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserStreamInputImpl <em>YBrowser Stream Input</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserStreamInputImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBrowserStreamInput()
+		 * @generated
+		 */
+		EClass YBROWSER_STREAM_INPUT = eINSTANCE.getYBrowserStreamInput();
+
+		/**
+		 * The meta object literal for the '<em><b>Filename</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBROWSER_STREAM_INPUT__FILENAME = eINSTANCE.getYBrowserStreamInput_Filename();
+
+		/**
+		 * The meta object literal for the '<em><b>Input Stream</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBROWSER_STREAM_INPUT__INPUT_STREAM = eINSTANCE.getYBrowserStreamInput_InputStream();
+
+		/**
+		 * The meta object literal for the '<em><b>Mime Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YBROWSER_STREAM_INPUT__MIME_TYPE = eINSTANCE.getYBrowserStreamInput_MimeType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl <em>YSet New Bean Instance Command</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSetNewBeanInstanceCommand()
+		 * @generated
+		 */
+		EClass YSET_NEW_BEAN_INSTANCE_COMMAND = eINSTANCE.getYSetNewBeanInstanceCommand();
+
+		/**
+		 * The meta object literal for the '<em><b>Target</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET = eINSTANCE.getYSetNewBeanInstanceCommand_Target();
+
+		/**
+		 * The meta object literal for the '<em><b>Trigger</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER = eINSTANCE.getYSetNewBeanInstanceCommand_Trigger();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE = eINSTANCE.getYSetNewBeanInstanceCommand_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI = eINSTANCE.getYSetNewBeanInstanceCommand_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME = eINSTANCE.getYSetNewBeanInstanceCommand_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutImpl <em>YCss Layout</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYCssLayout()
+		 * @generated
+		 */
+		EClass YCSS_LAYOUT = eINSTANCE.getYCssLayout();
+
+		/**
+		 * The meta object literal for the '<em><b>Cell Styles</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCSS_LAYOUT__CELL_STYLES = eINSTANCE.getYCssLayout_CellStyles();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutCellStyleImpl <em>YCss Layout Cell Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutCellStyleImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYCssLayoutCellStyle()
+		 * @generated
+		 */
+		EClass YCSS_LAYOUT_CELL_STYLE = eINSTANCE.getYCssLayoutCellStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YCSS_LAYOUT_CELL_STYLE__TARGET = eINSTANCE.getYCssLayoutCellStyle_Target();
+
+		/**
+		 * The meta object literal for the '<em><b>Alignment</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YCSS_LAYOUT_CELL_STYLE__ALIGNMENT = eINSTANCE.getYCssLayoutCellStyle_Alignment();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl <em>YFilter</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYFilter()
+		 * @generated
+		 */
+		EClass YFILTER = eINSTANCE.getYFilter();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Path</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YFILTER__PROPERTY_PATH = eINSTANCE.getYFilter_PropertyPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Filter Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YFILTER__FILTER_VALUE = eINSTANCE.getYFilter_FilterValue();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutImpl <em>YAbsolute Layout</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYAbsoluteLayout()
+		 * @generated
+		 */
+		EClass YABSOLUTE_LAYOUT = eINSTANCE.getYAbsoluteLayout();
+
+		/**
+		 * The meta object literal for the '<em><b>Cell Styles</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YABSOLUTE_LAYOUT__CELL_STYLES = eINSTANCE.getYAbsoluteLayout_CellStyles();
+
+		/**
+		 * The meta object literal for the '<em><b>Child Resize Enabled</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED = eINSTANCE.getYAbsoluteLayout_ChildResizeEnabled();
+
+		/**
+		 * The meta object literal for the '<em><b>Child Move Enabled</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED = eINSTANCE.getYAbsoluteLayout_ChildMoveEnabled();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl <em>YAbsolute Layout Cell Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYAbsoluteLayoutCellStyle()
+		 * @generated
+		 */
+		EClass YABSOLUTE_LAYOUT_CELL_STYLE = eINSTANCE.getYAbsoluteLayoutCellStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YABSOLUTE_LAYOUT_CELL_STYLE__TARGET = eINSTANCE.getYAbsoluteLayoutCellStyle_Target();
+
+		/**
+		 * The meta object literal for the '<em><b>Top</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YABSOLUTE_LAYOUT_CELL_STYLE__TOP = eINSTANCE.getYAbsoluteLayoutCellStyle_Top();
+
+		/**
+		 * The meta object literal for the '<em><b>Bottom</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM = eINSTANCE.getYAbsoluteLayoutCellStyle_Bottom();
+
+		/**
+		 * The meta object literal for the '<em><b>Left</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YABSOLUTE_LAYOUT_CELL_STYLE__LEFT = eINSTANCE.getYAbsoluteLayoutCellStyle_Left();
+
+		/**
+		 * The meta object literal for the '<em><b>Right</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT = eINSTANCE.getYAbsoluteLayoutCellStyle_Right();
+
+		/**
+		 * The meta object literal for the '<em><b>ZIndex</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX = eINSTANCE.getYAbsoluteLayoutCellStyle_ZIndex();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl <em>YSuggest Text Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSuggestTextField()
+		 * @generated
+		 */
+		EClass YSUGGEST_TEXT_FIELD = eINSTANCE.getYSuggestTextField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datatype</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YSUGGEST_TEXT_FIELD__DATATYPE = eINSTANCE.getYSuggestTextField_Datatype();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YSUGGEST_TEXT_FIELD__DATADESCRIPTION = eINSTANCE.getYSuggestTextField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__VALUE = eINSTANCE.getYSuggestTextField_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Use Suggestions</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS = eINSTANCE.getYSuggestTextField_UseSuggestions();
+
+		/**
+		 * The meta object literal for the '<em><b>Auto Hide Popup</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP = eINSTANCE.getYSuggestTextField_AutoHidePopup();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Suggestion</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__LAST_SUGGESTION = eINSTANCE.getYSuggestTextField_LastSuggestion();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__TYPE = eINSTANCE.getYSuggestTextField_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Emf Ns URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__EMF_NS_URI = eINSTANCE.getYSuggestTextField_EmfNsURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Qualified Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME = eINSTANCE.getYSuggestTextField_TypeQualifiedName();
+
+		/**
+		 * The meta object literal for the '<em><b>Item Caption Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY = eINSTANCE.getYSuggestTextField_ItemCaptionProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Item Filter Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY = eINSTANCE.getYSuggestTextField_ItemFilterProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Item UUID Property</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY = eINSTANCE.getYSuggestTextField_ItemUUIDProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Event</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YSUGGEST_TEXT_FIELD__EVENT = eINSTANCE.getYSuggestTextField_Event();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPasswordFieldImpl <em>YPassword Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPasswordFieldImpl
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYPasswordField()
+		 * @generated
+		 */
+		EClass YPASSWORD_FIELD = eINSTANCE.getYPasswordField();
+
+		/**
+		 * The meta object literal for the '<em><b>Datadescription</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference YPASSWORD_FIELD__DATADESCRIPTION = eINSTANCE.getYPasswordField_Datadescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute YPASSWORD_FIELD__VALUE = eINSTANCE.getYPasswordField_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType <em>YSelection Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSelectionType()
+		 * @generated
+		 */
+		EEnum YSELECTION_TYPE = eINSTANCE.getYSelectionType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption <em>YBoolean Search Option</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYBooleanSearchOption()
+		 * @generated
+		 */
+		EEnum YBOOLEAN_SEARCH_OPTION = eINSTANCE.getYBooleanSearchOption();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards <em>YSearch Wildcards</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSearchWildcards()
+		 * @generated
+		 */
+		EEnum YSEARCH_WILDCARDS = eINSTANCE.getYSearchWildcards();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents <em>YSuggest Text Field Events</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYSuggestTextFieldEvents()
+		 * @generated
+		 */
+		EEnum YSUGGEST_TEXT_FIELD_EVENTS = eINSTANCE.getYSuggestTextFieldEvents();
+
+		/**
+		 * The meta object literal for the '<em>YButton Click Listener</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYButtonClickListener()
+		 * @generated
+		 */
+		EDataType YBUTTON_CLICK_LISTENER = eINSTANCE.getYButtonClickListener();
+
+		/**
+		 * The meta object literal for the '<em>YInput Stream</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see java.io.InputStream
+		 * @see org.eclipse.osbp.ecview.core.extension.model.extension.impl.ExtensionModelPackageImpl#getYInputStream()
+		 * @generated
+		 */
+		EDataType YINPUT_STREAM = eINSTANCE.getYInputStream();
+
+	}
+
+} //ExtensionModelPackage
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YAbsoluteLayout.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YAbsoluteLayout.java
new file mode 100644
index 0000000..631cf51
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YAbsoluteLayout.java
@@ -0,0 +1,109 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YAbsolute Layout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#getCellStyles <em>Cell Styles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#isChildResizeEnabled <em>Child Resize Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#isChildMoveEnabled <em>Child Move Enabled</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayout()
+ * @model
+ * @generated
+ */
+public interface YAbsoluteLayout extends YLayout {
+	/**
+	 * Returns the value of the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cell Styles</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cell Styles</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayout_CellStyles()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YAbsoluteLayoutCellStyle> getCellStyles();
+
+	/**
+	 * Returns the value of the '<em><b>Child Resize Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Child Resize Enabled</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Child Resize Enabled</em>' attribute.
+	 * @see #setChildResizeEnabled(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayout_ChildResizeEnabled()
+	 * @model
+	 * @generated
+	 */
+	boolean isChildResizeEnabled();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#isChildResizeEnabled <em>Child Resize Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Child Resize Enabled</em>' attribute.
+	 * @see #isChildResizeEnabled()
+	 * @generated
+	 */
+	void setChildResizeEnabled(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Child Move Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Child Move Enabled</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Child Move Enabled</em>' attribute.
+	 * @see #setChildMoveEnabled(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayout_ChildMoveEnabled()
+	 * @model
+	 * @generated
+	 */
+	boolean isChildMoveEnabled();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout#isChildMoveEnabled <em>Child Move Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Child Move Enabled</em>' attribute.
+	 * @see #isChildMoveEnabled()
+	 * @generated
+	 */
+	void setChildMoveEnabled(boolean value);
+
+	YAbsoluteLayoutCellStyle getCellStyle(YEmbeddable element);
+
+} // YAbsoluteLayout
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YAbsoluteLayoutCellStyle.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YAbsoluteLayoutCellStyle.java
new file mode 100644
index 0000000..a979772
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YAbsoluteLayoutCellStyle.java
@@ -0,0 +1,203 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YAbsolute Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getTop <em>Top</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getBottom <em>Bottom</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getLeft <em>Left</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getRight <em>Right</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getZIndex <em>ZIndex</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayoutCellStyle()
+ * @model
+ * @generated
+ */
+public interface YAbsoluteLayoutCellStyle extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayoutCellStyle_Target()
+	 * @model required="true"
+	 * @generated
+	 */
+	YEmbeddable getTarget();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getTarget <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Top</b></em>' attribute.
+	 * The default value is <code>"-1"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Top</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Top</em>' attribute.
+	 * @see #setTop(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayoutCellStyle_Top()
+	 * @model default="-1"
+	 * @generated
+	 */
+	int getTop();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getTop <em>Top</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Top</em>' attribute.
+	 * @see #getTop()
+	 * @generated
+	 */
+	void setTop(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Bottom</b></em>' attribute.
+	 * The default value is <code>"-1"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bottom</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bottom</em>' attribute.
+	 * @see #setBottom(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayoutCellStyle_Bottom()
+	 * @model default="-1"
+	 * @generated
+	 */
+	int getBottom();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getBottom <em>Bottom</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bottom</em>' attribute.
+	 * @see #getBottom()
+	 * @generated
+	 */
+	void setBottom(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Left</b></em>' attribute.
+	 * The default value is <code>"-1"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Left</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Left</em>' attribute.
+	 * @see #setLeft(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayoutCellStyle_Left()
+	 * @model default="-1"
+	 * @generated
+	 */
+	int getLeft();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getLeft <em>Left</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Left</em>' attribute.
+	 * @see #getLeft()
+	 * @generated
+	 */
+	void setLeft(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Right</b></em>' attribute.
+	 * The default value is <code>"-1"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Right</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Right</em>' attribute.
+	 * @see #setRight(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayoutCellStyle_Right()
+	 * @model default="-1"
+	 * @generated
+	 */
+	int getRight();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getRight <em>Right</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Right</em>' attribute.
+	 * @see #getRight()
+	 * @generated
+	 */
+	void setRight(int value);
+
+	/**
+	 * Returns the value of the '<em><b>ZIndex</b></em>' attribute.
+	 * The default value is <code>"-1"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>ZIndex</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>ZIndex</em>' attribute.
+	 * @see #setZIndex(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAbsoluteLayoutCellStyle_ZIndex()
+	 * @model default="-1"
+	 * @generated
+	 */
+	int getZIndex();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle#getZIndex <em>ZIndex</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>ZIndex</em>' attribute.
+	 * @see #getZIndex()
+	 * @generated
+	 */
+	void setZIndex(int value);
+
+} // YAbsoluteLayoutCellStyle
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YAddToTableCommand.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YAddToTableCommand.java
new file mode 100644
index 0000000..d7fed6b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YAddToTableCommand.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YAdd To Table Command</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand#getTable <em>Table</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand#getTrigger <em>Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAddToTableCommand()
+ * @model
+ * @generated
+ */
+public interface YAddToTableCommand extends YCommand {
+	/**
+	 * Returns the value of the '<em><b>Table</b></em>' reference. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table</em>' reference isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Table</em>' reference.
+	 * @see #setTable(YTable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAddToTableCommand_Table()
+	 * @model
+	 * @generated
+	 */
+	YTable getTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand#getTable <em>Table</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Table</em>' reference.
+	 * @see #getTable()
+	 * @generated
+	 */
+	void setTable(YTable value);
+
+	/**
+	 * Returns the value of the '<em><b>Trigger</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trigger</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Trigger</em>' attribute.
+	 * @see #setTrigger(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYAddToTableCommand_Trigger()
+	 * @model
+	 * @generated
+	 */
+	Object getTrigger();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand#getTrigger
+	 * <em>Trigger</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Trigger</em>' attribute.
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	void setTrigger(Object value);
+	
+	public YECViewModelValueBindingEndpoint createTriggerEndpoint();
+
+} // YAddToTableCommand
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBeanReferenceField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBeanReferenceField.java
new file mode 100644
index 0000000..9648e41
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBeanReferenceField.java
@@ -0,0 +1,437 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBean Reference Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getInMemoryBeanProvider <em>In Memory Bean Provider</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getInMemoryBeanProviderQualifiedName <em>In Memory Bean Provider Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getCaptionPropertyPath <em>Caption Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getImagePropertyPath <em>Image Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDescriptionProperty <em>Description Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceType <em>Reference Source Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceTypeQualifiedName <em>Reference Source Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceTypeProperty <em>Reference Source Type Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#isRequired <em>Required</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField()
+ * @model
+ * @generated
+ */
+public interface YBeanReferenceField extends YInput, YValueBindable, YBeanServiceConsumer {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>In Memory Bean Provider</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>In Memory Bean Provider</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>In Memory Bean Provider</em>' attribute.
+	 * @see #setInMemoryBeanProvider(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_InMemoryBeanProvider()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getInMemoryBeanProvider();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getInMemoryBeanProvider <em>In Memory Bean Provider</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>In Memory Bean Provider</em>' attribute.
+	 * @see #getInMemoryBeanProvider()
+	 * @generated
+	 */
+	void setInMemoryBeanProvider(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>In Memory Bean Provider Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>In Memory Bean Provider Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>In Memory Bean Provider Qualified Name</em>' attribute.
+	 * @see #setInMemoryBeanProviderQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_InMemoryBeanProviderQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getInMemoryBeanProviderQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getInMemoryBeanProviderQualifiedName <em>In Memory Bean Provider Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>In Memory Bean Provider Qualified Name</em>' attribute.
+	 * @see #getInMemoryBeanProviderQualifiedName()
+	 * @generated
+	 */
+	void setInMemoryBeanProviderQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Caption Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Caption Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Caption Property Path</em>' attribute.
+	 * @see #setCaptionPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_CaptionPropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getCaptionPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getCaptionPropertyPath <em>Caption Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Caption Property Path</em>' attribute.
+	 * @see #getCaptionPropertyPath()
+	 * @generated
+	 */
+	void setCaptionPropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Image Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Image Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Image Property Path</em>' attribute.
+	 * @see #setImagePropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_ImagePropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getImagePropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getImagePropertyPath <em>Image Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Image Property Path</em>' attribute.
+	 * @see #getImagePropertyPath()
+	 * @generated
+	 */
+	void setImagePropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description Property</em>' attribute.
+	 * @see #setDescriptionProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_DescriptionProperty()
+	 * @model
+	 * @generated
+	 */
+	String getDescriptionProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDescriptionProperty <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description Property</em>' attribute.
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 */
+	void setDescriptionProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Reference Source Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Reference Source Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Reference Source Type</em>' attribute.
+	 * @see #setReferenceSourceType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_ReferenceSourceType()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getReferenceSourceType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceType <em>Reference Source Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Reference Source Type</em>' attribute.
+	 * @see #getReferenceSourceType()
+	 * @generated
+	 */
+	void setReferenceSourceType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Reference Source Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Reference Source Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Reference Source Type Qualified Name</em>' attribute.
+	 * @see #setReferenceSourceTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_ReferenceSourceTypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getReferenceSourceTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceTypeQualifiedName <em>Reference Source Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Reference Source Type Qualified Name</em>' attribute.
+	 * @see #getReferenceSourceTypeQualifiedName()
+	 * @generated
+	 */
+	void setReferenceSourceTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Reference Source Type Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Reference Source Type Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Reference Source Type Property</em>' attribute.
+	 * @see #setReferenceSourceTypeProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_ReferenceSourceTypeProperty()
+	 * @model
+	 * @generated
+	 */
+	String getReferenceSourceTypeProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#getReferenceSourceTypeProperty <em>Reference Source Type Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Reference Source Type Property</em>' attribute.
+	 * @see #getReferenceSourceTypeProperty()
+	 * @generated
+	 */
+	void setReferenceSourceTypeProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Required</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Required</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Required</em>' attribute.
+	 * @see #setRequired(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanReferenceField_Required()
+	 * @model
+	 * @generated
+	 */
+	boolean isRequired();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField#isRequired <em>Required</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Required</em>' attribute.
+	 * @see #isRequired()
+	 * @generated
+	 */
+	void setRequired(boolean value);
+
+} // YBeanReferenceField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBeanServiceConsumer.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBeanServiceConsumer.java
new file mode 100644
index 0000000..dc0c9c6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBeanServiceConsumer.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBean Service Consumer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer#isUseBeanService <em>Use Bean Service</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanServiceConsumer()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YBeanServiceConsumer extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Use Bean Service</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Use Bean Service</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Use Bean Service</em>' attribute.
+	 * @see #setUseBeanService(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBeanServiceConsumer_UseBeanService()
+	 * @model
+	 * @generated
+	 */
+	boolean isUseBeanService();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer#isUseBeanService <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Use Bean Service</em>' attribute.
+	 * @see #isUseBeanService()
+	 * @generated
+	 */
+	void setUseBeanService(boolean value);
+
+} // YBeanServiceConsumer
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBooleanSearchField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBooleanSearchField.java
new file mode 100644
index 0000000..3988b19
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBooleanSearchField.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBoolean Search Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getPropertyPath <em>Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBooleanSearchField()
+ * @model
+ * @generated
+ */
+public interface YBooleanSearchField extends YSearchField {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBooleanSearchField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption
+	 * @see #setValue(YBooleanSearchOption)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBooleanSearchField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	YBooleanSearchOption getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(YBooleanSearchOption value);
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBooleanSearchField_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+} // YBooleanSearchField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBooleanSearchOption.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBooleanSearchOption.java
new file mode 100644
index 0000000..461144a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBooleanSearchOption.java
@@ -0,0 +1,243 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YBoolean Search Option</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBooleanSearchOption()
+ * @model
+ * @generated
+ */
+public enum YBooleanSearchOption implements Enumerator {
+	/**
+	 * The '<em><b>TRUE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TRUE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TRUE(0, "TRUE", "TRUE"),
+
+	/**
+	 * The '<em><b>FALSE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FALSE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FALSE(1, "FALSE", "FALSE"),
+
+	/**
+	 * The '<em><b>IGNORE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #IGNORE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	IGNORE(2, "IGNORE", "IGNORE");
+
+	/**
+	 * The '<em><b>TRUE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TRUE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #TRUE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TRUE_VALUE = 0;
+
+	/**
+	 * The '<em><b>FALSE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FALSE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #FALSE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FALSE_VALUE = 1;
+
+	/**
+	 * The '<em><b>IGNORE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>IGNORE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #IGNORE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int IGNORE_VALUE = 2;
+
+	/**
+	 * An array of all the '<em><b>YBoolean Search Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YBooleanSearchOption[] VALUES_ARRAY =
+		new YBooleanSearchOption[] {
+			TRUE,
+			FALSE,
+			IGNORE,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YBoolean Search Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YBooleanSearchOption> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YBoolean Search Option</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YBooleanSearchOption get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YBooleanSearchOption result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YBoolean Search Option</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YBooleanSearchOption getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YBooleanSearchOption result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YBoolean Search Option</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YBooleanSearchOption get(int value) {
+		switch (value) {
+			case TRUE_VALUE: return TRUE;
+			case FALSE_VALUE: return FALSE;
+			case IGNORE_VALUE: return IGNORE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YBooleanSearchOption(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YBooleanSearchOption
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBrowser.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBrowser.java
new file mode 100644
index 0000000..089e950
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBrowser.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBrowser</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBrowser()
+ * @model
+ * @generated
+ */
+public interface YBrowser extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YBrowserDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBrowser_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YBrowserDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YBrowserDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBrowser_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBrowser_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(Object value);
+
+} // YBrowser
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBrowserStreamInput.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBrowserStreamInput.java
new file mode 100644
index 0000000..84e4815
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YBrowserStreamInput.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import java.io.InputStream;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YBrowser Stream Input</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getFilename <em>Filename</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getInputStream <em>Input Stream</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getMimeType <em>Mime Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBrowserStreamInput()
+ * @model
+ * @generated
+ */
+public interface YBrowserStreamInput extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Filename</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Filename</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Filename</em>' attribute.
+	 * @see #setFilename(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBrowserStreamInput_Filename()
+	 * @model required="true" transient="true"
+	 * @generated
+	 */
+	String getFilename();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getFilename <em>Filename</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Filename</em>' attribute.
+	 * @see #getFilename()
+	 * @generated
+	 */
+	void setFilename(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Input Stream</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Input Stream</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Input Stream</em>' attribute.
+	 * @see #setInputStream(InputStream)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBrowserStreamInput_InputStream()
+	 * @model dataType="org.eclipse.osbp.ecview.core.extension.model.extension.YInputStream" required="true"
+	 * @generated
+	 */
+	InputStream getInputStream();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getInputStream <em>Input Stream</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Input Stream</em>' attribute.
+	 * @see #getInputStream()
+	 * @generated
+	 */
+	void setInputStream(InputStream value);
+
+	/**
+	 * Returns the value of the '<em><b>Mime Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Mime Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Mime Type</em>' attribute.
+	 * @see #setMimeType(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBrowserStreamInput_MimeType()
+	 * @model required="true" transient="true"
+	 * @generated
+	 */
+	String getMimeType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput#getMimeType <em>Mime Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Mime Type</em>' attribute.
+	 * @see #getMimeType()
+	 * @generated
+	 */
+	void setMimeType(String value);
+
+} // YBrowserStreamInput
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YButton.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YButton.java
new file mode 100644
index 0000000..8e9158e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YButton.java
@@ -0,0 +1,185 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YVisibleable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YButton</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getClickListeners <em>Click Listeners</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getLastClickTime <em>Last Click Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getImage <em>Image</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYButton()
+ * @model
+ * @generated
+ */
+public interface YButton extends YAction, YVisibleable, YEditable, YEnable, YFocusable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYButton_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Click Listeners</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Click Listeners</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Click Listeners</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYButton_ClickListeners()
+	 * @model dataType="org.eclipse.osbp.ecview.core.extension.model.extension.YButtonClickListener" transient="true"
+	 * @generated
+	 */
+	EList<YButtonClickListener> getClickListeners();
+
+	/**
+	 * Returns the value of the '<em><b>Last Click Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Last Click Time</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Last Click Time</em>' attribute.
+	 * @see #setLastClickTime(long)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYButton_LastClickTime()
+	 * @model
+	 * @generated
+	 */
+	long getLastClickTime();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getLastClickTime <em>Last Click Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Last Click Time</em>' attribute.
+	 * @see #getLastClickTime()
+	 * @generated
+	 */
+	void setLastClickTime(long value);
+
+	/**
+	 * Returns the value of the '<em><b>Image</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Image</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Image</em>' attribute.
+	 * @see #setImage(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYButton_Image()
+	 * @model
+	 * @generated
+	 */
+	Object getImage();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton#getImage <em>Image</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Image</em>' attribute.
+	 * @see #getImage()
+	 * @generated
+	 */
+	void setImage(Object value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param listener
+	 *            the listener
+	 * @model listenerDataType=
+	 *        "org.eclipse.osbp.ecview.core.extension.model.extension.YButtonClickListener"
+	 * @generated
+	 */
+	void addClickListener(YButtonClickListener listener);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param listener
+	 *            the listener
+	 * @model listenerDataType=
+	 *        "org.eclipse.osbp.ecview.core.extension.model.extension.YButtonClickListener"
+	 * @generated
+	 */
+	void removeClickListener(YButtonClickListener listener);
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the YEC view model value binding endpoint
+	 * @model
+	 * @generated
+	 */
+	YECViewModelValueBindingEndpoint createClickEndpoint();
+
+	/**
+	 * Creates a binding endpoint to observe the editable property.
+	 *
+	 * @return the y value binding endpoint
+	 */
+	YValueBindingEndpoint createEditableEndpoint();
+	
+	
+	/**
+	 * Creates a binding endpoint to observe the enabled property.
+	 *
+	 * @return the y value binding endpoint
+	 */
+	YValueBindingEndpoint createEnabledEndpoint();
+
+} // YButton
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YButtonType.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YButtonType.java
new file mode 100644
index 0000000..49faa0b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YButtonType.java
@@ -0,0 +1,238 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+
+// TODO: check reference (see)
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YButton Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYBuButtonType()
+ * @model
+ * @generated
+ */
+public enum YButtonType implements Enumerator {
+	/**
+	 * The '<em><b>PUSH</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PUSH_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PUSH(0, "PUSH", "PUSH"),
+
+	/**
+	 * The '<em><b>TOGGLE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TOGGLE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TOGGLE(1, "TOGGLE", "TOGGLE");
+
+	/**
+	 * The '<em><b>PUSH</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PUSH</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #PUSH
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PUSH_VALUE = 0;
+
+	/**
+	 * The '<em><b>TOGGLE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TOGGLE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #TOGGLE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TOGGLE_VALUE = 1;
+
+	/**
+	 * An array of all the '<em><b>YButton Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YButtonType[] VALUES_ARRAY =
+		new YButtonType[] {
+			PUSH,
+			TOGGLE,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YButton Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YButtonType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YButton Type</b></em>' literal with the specified
+	 * literal value. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param literal
+	 *            the literal
+	 * @return the y button type
+	 * @generated
+	 */
+	public static YButtonType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YButtonType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YButton Type</b></em>' literal with the specified
+	 * name. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            the name
+	 * @return the by name
+	 * @generated
+	 */
+	public static YButtonType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YButtonType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YButton Type</b></em>' literal with the specified
+	 * integer value. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the value
+	 * @return the y button type
+	 * @generated
+	 */
+	public static YButtonType get(int value) {
+		switch (value) {
+			case PUSH_VALUE: return PUSH;
+			case TOGGLE_VALUE: return TOGGLE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 *
+	 * @param value
+	 *            the value
+	 * @param name
+	 *            the name
+	 * @param literal
+	 *            the literal
+	 * @generated
+	 */
+	private YButtonType(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string
+	 * representation. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YButtonType
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YCheckBox.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YCheckBox.java
new file mode 100644
index 0000000..b304b63
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YCheckBox.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Check Box</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#isValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYCheckBox()
+ * @model
+ * @generated
+ */
+public interface YCheckBox extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYCheckBox_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YCheckBoxDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYCheckBox_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YCheckBoxDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YCheckBoxDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYCheckBox_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	boolean isValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox#isValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #isValue()
+	 * @generated
+	 */
+	void setValue(boolean value);
+
+} // YUiCheckBox
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YColumn.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YColumn.java
new file mode 100644
index 0000000..6ca4c00
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YColumn.java
@@ -0,0 +1,414 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YConverter;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YColumn</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getIcon <em>Icon</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isVisible <em>Visible</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getOrphanDatadescriptions <em>Orphan Datadescriptions</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isOrderable <em>Orderable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isCollapsed <em>Collapsed</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isCollapsible <em>Collapsible</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getAlignment <em>Alignment</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getExpandRatio <em>Expand Ratio</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getConverter <em>Converter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn()
+ * @model
+ * @generated
+ */
+public interface YColumn extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Icon</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Icon</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Icon</em>' attribute.
+	 * @see #setIcon(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_Icon()
+	 * @model
+	 * @generated
+	 */
+	String getIcon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getIcon <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Icon</em>' attribute.
+	 * @see #getIcon()
+	 * @generated
+	 */
+	void setIcon(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Visible</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Visible</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Visible</em>' attribute.
+	 * @see #setVisible(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_Visible()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isVisible();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isVisible
+	 * <em>Visible</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Visible</em>' attribute.
+	 * @see #isVisible()
+	 * @generated
+	 */
+	void setVisible(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Orphan Datadescriptions</em>' containment
+	 * reference list isn't clear, there really should be more of a description
+	 * here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Orphan Datadescriptions</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_OrphanDatadescriptions()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YDatadescription> getOrphanDatadescriptions();
+
+	/**
+	 * Returns the value of the '<em><b>Orderable</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Orderable</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Orderable</em>' attribute.
+	 * @see #setOrderable(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_Orderable()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isOrderable();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isOrderable
+	 * <em>Orderable</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Orderable</em>' attribute.
+	 * @see #isOrderable()
+	 * @generated
+	 */
+	void setOrderable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Collapsed</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collapsed</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collapsed</em>' attribute.
+	 * @see #setCollapsed(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_Collapsed()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isCollapsed();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isCollapsed
+	 * <em>Collapsed</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Collapsed</em>' attribute.
+	 * @see #isCollapsed()
+	 * @generated
+	 */
+	void setCollapsed(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Collapsible</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collapsible</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collapsible</em>' attribute.
+	 * @see #setCollapsible(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_Collapsible()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isCollapsible();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#isCollapsible <em>Collapsible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Collapsible</em>' attribute.
+	 * @see #isCollapsible()
+	 * @generated
+	 */
+	void setCollapsible(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Alignment</b></em>' attribute.
+	 * The default value is <code>"LEFT"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Alignment</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment
+	 * @see #setAlignment(YFlatAlignment)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_Alignment()
+	 * @model default="LEFT"
+	 * @generated
+	 */
+	YFlatAlignment getAlignment();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getAlignment
+	 * <em>Alignment</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment
+	 * @see #getAlignment()
+	 * @generated
+	 */
+	void setAlignment(YFlatAlignment value);
+
+	/**
+	 * Returns the value of the '<em><b>Expand Ratio</b></em>' attribute.
+	 * The default value is <code>"-1.0f"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Expand Ratio</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Expand Ratio</em>' attribute.
+	 * @see #setExpandRatio(float)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_ExpandRatio()
+	 * @model default="-1.0f"
+	 * @generated
+	 */
+	float getExpandRatio();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getExpandRatio <em>Expand Ratio</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Expand Ratio</em>' attribute.
+	 * @see #getExpandRatio()
+	 * @generated
+	 */
+	void setExpandRatio(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Converter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Converter</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Converter</em>' containment reference.
+	 * @see #setConverter(YConverter)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_Converter()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YConverter getConverter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getConverter <em>Converter</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Converter</em>' containment reference.
+	 * @see #getConverter()
+	 * @generated
+	 */
+	void setConverter(YConverter value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYColumn_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label);
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey);
+
+} // YColumn
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YComboBox.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YComboBox.java
new file mode 100644
index 0000000..c08afcd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YComboBox.java
@@ -0,0 +1,323 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Combo Box</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getCaptionProperty <em>Caption Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getImageProperty <em>Image Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDescriptionProperty <em>Description Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox()
+ * @model
+ * @generated
+ */
+public interface YComboBox extends YInput, YCollectionBindable, YSelectionBindable, YBeanServiceConsumer {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YComboBoxDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YComboBoxDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YComboBoxDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection</em>' attribute.
+	 * @see #setSelection(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_Selection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getSelection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getSelection <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection</em>' attribute.
+	 * @see #getSelection()
+	 * @generated
+	 */
+	void setSelection(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Collection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_Collection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getCollection();
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Caption Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Caption Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Caption Property</em>' attribute.
+	 * @see #setCaptionProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_CaptionProperty()
+	 * @model
+	 * @generated
+	 */
+	String getCaptionProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getCaptionProperty <em>Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Caption Property</em>' attribute.
+	 * @see #getCaptionProperty()
+	 * @generated
+	 */
+	void setCaptionProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Image Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Image Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Image Property</em>' attribute.
+	 * @see #setImageProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_ImageProperty()
+	 * @model
+	 * @generated
+	 */
+	String getImageProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getImageProperty <em>Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Image Property</em>' attribute.
+	 * @see #getImageProperty()
+	 * @generated
+	 */
+	void setImageProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description Property</em>' attribute.
+	 * @see #setDescriptionProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_DescriptionProperty()
+	 * @model
+	 * @generated
+	 */
+	String getDescriptionProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDescriptionProperty <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description Property</em>' attribute.
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 */
+	void setDescriptionProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYComboBox_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+} // YUiComboBox
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YCssLayout.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YCssLayout.java
new file mode 100644
index 0000000..199a523
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YCssLayout.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YCss Layout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout#getCellStyles <em>Cell Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYCssLayout()
+ * @model
+ * @generated
+ */
+public interface YCssLayout extends YLayout, YSpacingable, YMarginable, YAlignmentContainer {
+
+	/**
+	 * Returns the value of the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cell Styles</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cell Styles</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYCssLayout_CellStyles()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YCssLayoutCellStyle> getCellStyles();
+	
+	/**
+	 * Returns the cell style for the given element.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the cell style
+	 */
+	YCssLayoutCellStyle getCellStyle(YEmbeddable element);
+
+	/**
+	 * Adds a new cell style to the internal list of cell styles.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the y css layout cell style
+	 */
+	YCssLayoutCellStyle addCellStyle(YEmbeddable element);
+
+} // YCssLayout
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YCssLayoutCellStyle.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YCssLayoutCellStyle.java
new file mode 100644
index 0000000..509e4a0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YCssLayoutCellStyle.java
@@ -0,0 +1,93 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YCss Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle#getAlignment <em>Alignment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYCssLayoutCellStyle()
+ * @model
+ * @generated
+ */
+public interface YCssLayoutCellStyle extends EObject {
+
+	/**
+	 * Returns the value of the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYCssLayoutCellStyle_Target()
+	 * @model required="true"
+	 * @generated
+	 */
+	YEmbeddable getTarget();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle#getTarget <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Alignment</b></em>' attribute.
+	 * The default value is <code>"UNDEFINED"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YAlignment}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The alignment of the ui element relative to its css layout cell.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #setAlignment(YAlignment)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYCssLayoutCellStyle_Alignment()
+	 * @model default="UNDEFINED"
+	 * @generated
+	 */
+	YAlignment getAlignment();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle#getAlignment <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #getAlignment()
+	 * @generated
+	 */
+	void setAlignment(YAlignment value);
+} // YCssLayoutCellStyle
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YDateTime.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YDateTime.java
new file mode 100644
index 0000000..dcbc967
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YDateTime.java
@@ -0,0 +1,152 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import java.util.Date;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YDate Time</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYDateTime()
+ * @model
+ * @generated
+ */
+public interface YDateTime extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YDateTimeDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYDateTime_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YDateTimeDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getDatatype
+	 * <em>Datatype</em>}' reference. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YDateTimeDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYDateTime_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(Date)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYDateTime_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Date getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(Date value);
+
+	/**
+	 * Sets the date format of the field.
+	 *
+	 * @param format
+	 *            the new date format
+	 */
+	void setDateFormat(YDateTimeFormat format);
+
+	/**
+	 * Sets the date time resolution of the field.
+	 *
+	 * @param resolution
+	 *            the new resolution
+	 */
+	void setResolution(YDateTimeResolution resolution);
+
+	/**
+	 * Returns the date format of the field.
+	 * 
+	 * @return format
+	 */
+	YDateTimeFormat getDateFormat();
+
+	/**
+	 * Returns the date time resolution of the field.
+	 * 
+	 * @return resolution
+	 */
+	YDateTimeResolution getResolution();
+
+} // YDateTime
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YDecimalField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YDecimalField.java
new file mode 100644
index 0000000..5a66331
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YDecimalField.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Decimal Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYDecimalField()
+ * @model
+ * @generated
+ */
+public interface YDecimalField extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YDecimalDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYDecimalField_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YDecimalDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YDecimalDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYDecimalField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(double)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYDecimalField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	double getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(double value);
+
+} // YUiDecimalField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YEnumComboBox.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YEnumComboBox.java
new file mode 100644
index 0000000..b6409a2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YEnumComboBox.java
@@ -0,0 +1,199 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEnum Combo Box</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumComboBox()
+ * @model
+ * @generated
+ */
+public interface YEnumComboBox extends YInput, YCollectionBindable, YSelectionBindable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumComboBox_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YComboBoxDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumComboBox_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YComboBoxDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YComboBoxDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection</em>' attribute.
+	 * @see #setSelection(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumComboBox_Selection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getSelection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getSelection <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection</em>' attribute.
+	 * @see #getSelection()
+	 * @generated
+	 */
+	void setSelection(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumComboBox_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumComboBox_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumComboBox_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+} // YEnumComboBox
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YEnumList.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YEnumList.java
new file mode 100644
index 0000000..9ee2c38
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YEnumList.java
@@ -0,0 +1,248 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEnum List</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumList()
+ * @model
+ * @generated
+ */
+public interface YEnumList extends YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumList_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YListDataType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumList_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YListDataType getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YListDataType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #setSelectionType(YSelectionType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumList_SelectionType()
+	 * @model
+	 * @generated
+	 */
+	YSelectionType getSelectionType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getSelectionType <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #getSelectionType()
+	 * @generated
+	 */
+	void setSelectionType(YSelectionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection</em>' attribute.
+	 * @see #setSelection(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumList_Selection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getSelection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getSelection <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection</em>' attribute.
+	 * @see #getSelection()
+	 * @generated
+	 */
+	void setSelection(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Multi Selection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Multi Selection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Multi Selection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumList_MultiSelection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getMultiSelection();
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumList_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumList_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumList_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+} // YEnumList
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YEnumOptionsGroup.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YEnumOptionsGroup.java
new file mode 100644
index 0000000..2a8ac47
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YEnumOptionsGroup.java
@@ -0,0 +1,248 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YEnum Options Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumOptionsGroup()
+ * @model
+ * @generated
+ */
+public interface YEnumOptionsGroup extends YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumOptionsGroup_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YOptionsGroupDataType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumOptionsGroup_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YOptionsGroupDataType getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YOptionsGroupDataType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #setSelectionType(YSelectionType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumOptionsGroup_SelectionType()
+	 * @model
+	 * @generated
+	 */
+	YSelectionType getSelectionType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getSelectionType <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #getSelectionType()
+	 * @generated
+	 */
+	void setSelectionType(YSelectionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection</em>' attribute.
+	 * @see #setSelection(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumOptionsGroup_Selection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getSelection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getSelection <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection</em>' attribute.
+	 * @see #getSelection()
+	 * @generated
+	 */
+	void setSelection(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Multi Selection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Multi Selection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Multi Selection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumOptionsGroup_MultiSelection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getMultiSelection();
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumOptionsGroup_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumOptionsGroup_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYEnumOptionsGroup_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+} // YEnumOptionsGroup
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YFilter.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YFilter.java
new file mode 100644
index 0000000..e5010b7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YFilter.java
@@ -0,0 +1,88 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YFilter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter#getFilterValue <em>Filter Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYFilter()
+ * @model
+ * @generated
+ */
+public interface YFilter extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYFilter_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Filter Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Filter Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Filter Value</em>' attribute.
+	 * @see #setFilterValue(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYFilter_FilterValue()
+	 * @model
+	 * @generated
+	 */
+	Object getFilterValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter#getFilterValue <em>Filter Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Filter Value</em>' attribute.
+	 * @see #getFilterValue()
+	 * @generated
+	 */
+	void setFilterValue(Object value);
+
+} // YFilter
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YFormLayout.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YFormLayout.java
new file mode 100644
index 0000000..681e04a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YFormLayout.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YForm Layout</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout#getCellStyles <em>Cell Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYFormLayout()
+ * @model
+ * @generated
+ */
+public interface YFormLayout extends YLayout, YSpacingable, YMarginable, YAlignmentContainer {
+	/**
+	 * Returns the value of the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cell Styles</em>' containment reference list
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cell Styles</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYFormLayout_CellStyles()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YFormLayoutCellStyle> getCellStyles();
+
+	/**
+	 * Returns the cell style for the given element.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the cell style
+	 */
+	YFormLayoutCellStyle getCellStyle(YEmbeddable element);
+
+} // YFormLayout
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YFormLayoutCellStyle.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YFormLayoutCellStyle.java
new file mode 100644
index 0000000..53eb056
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YFormLayoutCellStyle.java
@@ -0,0 +1,93 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YForm Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle#getAlignment <em>Alignment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYFormLayoutCellStyle()
+ * @model
+ * @generated
+ */
+public interface YFormLayoutCellStyle extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYFormLayoutCellStyle_Target()
+	 * @model required="true"
+	 * @generated
+	 */
+	YEmbeddable getTarget();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle#getTarget <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Alignment</b></em>' attribute.
+	 * The default value is <code>"UNDEFINED"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YAlignment}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The alignment of the ui element relative to its grid cell.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #setAlignment(YAlignment)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYFormLayoutCellStyle_Alignment()
+	 * @model default="UNDEFINED"
+	 * @generated
+	 */
+	YAlignment getAlignment();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle#getAlignment <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #getAlignment()
+	 * @generated
+	 */
+	void setAlignment(YAlignment value);
+
+} // YFormLayoutCellStyle
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YGridLayout.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YGridLayout.java
new file mode 100644
index 0000000..54d541e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YGridLayout.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YUi Grid Layout</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout#getCellStyles <em>Cell Styles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout#getColumns <em>Columns</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYGridLayout()
+ * @model
+ * @generated
+ */
+public interface YGridLayout extends YLayout, YSpacingable, YMarginable, YAlignmentContainer {
+	/**
+	 * Returns the value of the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cell Styles</em>' containment reference list
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cell Styles</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYGridLayout_CellStyles()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YGridLayoutCellStyle> getCellStyles();
+
+	/**
+	 * Returns the value of the '<em><b>Columns</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> The
+	 * number of columns the GridLayout should contain. <!-- end-model-doc -->
+	 * 
+	 * @return the value of the '<em>Columns</em>' attribute.
+	 * @see #setColumns(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYGridLayout_Columns()
+	 * @model
+	 * @generated
+	 */
+	int getColumns();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout#getColumns
+	 * <em>Columns</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Columns</em>' attribute.
+	 * @see #getColumns()
+	 * @generated
+	 */
+	void setColumns(int value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the y grid layout cell style
+	 * @model
+	 * @generated
+	 */
+	YGridLayoutCellStyle addGridLayoutCellStyle(YEmbeddable element);
+
+	/**
+	 * Returns the cell style for the given element.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the cell style
+	 */
+	YGridLayoutCellStyle getCellStyle(YEmbeddable element);
+
+} // YUiGridLayout
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YGridLayoutCellStyle.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YGridLayoutCellStyle.java
new file mode 100644
index 0000000..88eb7e9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YGridLayoutCellStyle.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Grid Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getAlignment <em>Alignment</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getSpanInfo <em>Span Info</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYGridLayoutCellStyle()
+ * @model
+ * @generated
+ */
+public interface YGridLayoutCellStyle extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYGridLayoutCellStyle_Target()
+	 * @model required="true"
+	 * @generated
+	 */
+	YEmbeddable getTarget();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getTarget <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Alignment</b></em>' attribute.
+	 * The default value is <code>"UNDEFINED"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YAlignment}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The alignment of the ui element relative to its grid cell.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #setAlignment(YAlignment)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYGridLayoutCellStyle_Alignment()
+	 * @model default="UNDEFINED"
+	 * @generated
+	 */
+	YAlignment getAlignment();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getAlignment <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #getAlignment()
+	 * @generated
+	 */
+	void setAlignment(YAlignment value);
+
+	/**
+	 * Returns the value of the '<em><b>Span Info</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Span Info</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Span Info</em>' containment reference.
+	 * @see #setSpanInfo(YSpanInfo)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYGridLayoutCellStyle_SpanInfo()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YSpanInfo getSpanInfo();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle#getSpanInfo <em>Span Info</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Span Info</em>' containment reference.
+	 * @see #getSpanInfo()
+	 * @generated
+	 */
+	void setSpanInfo(YSpanInfo value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param col1
+	 *            the col1
+	 * @param row1
+	 *            the row1
+	 * @param col2
+	 *            the col2
+	 * @param row2
+	 *            the row2
+	 * @return the y span info
+	 * @model
+	 * @generated
+	 */
+	YSpanInfo addSpanInfo(int col1, int row1, int col2, int row2);
+
+} // YUiGridLayoutCellStyle
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YHorizontalLayout.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YHorizontalLayout.java
new file mode 100644
index 0000000..a9b32b1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YHorizontalLayout.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YUi Horizontal Layout</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout#getCellStyles <em>Cell Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYHorizontalLayout()
+ * @model
+ * @generated
+ */
+public interface YHorizontalLayout extends YLayout, YSpacingable, YMarginable, YAlignmentContainer {
+	/**
+	 * Returns the value of the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cell Styles</em>' containment reference list
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cell Styles</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYHorizontalLayout_CellStyles()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YHorizontalLayoutCellStyle> getCellStyles();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the cell style
+	 * @model
+	 * @generated
+	 */
+	YHorizontalLayoutCellStyle getCellStyle(YEmbeddable element);
+
+	/**
+	 * Adds a new cell style to the internal list of cell styles.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the y horizontal layout cell style
+	 */
+	YHorizontalLayoutCellStyle addCellStyle(YEmbeddable element);
+
+} // YUiHorizontalLayout
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YHorizontalLayoutCellStyle.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YHorizontalLayoutCellStyle.java
new file mode 100644
index 0000000..22e9b01
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YHorizontalLayoutCellStyle.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Horizontal Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle#getAlignment <em>Alignment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYHorizontalLayoutCellStyle()
+ * @model
+ * @generated
+ */
+public interface YHorizontalLayoutCellStyle extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYHorizontalLayoutCellStyle_Target()
+	 * @model required="true"
+	 * @generated
+	 */
+	YEmbeddable getTarget();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle#getTarget <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Alignment</b></em>' attribute.
+	 * The default value is <code>"UNDEFINED"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YAlignment}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The alignment of the ui element relative to its grid cell.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #setAlignment(YAlignment)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYHorizontalLayoutCellStyle_Alignment()
+	 * @model default="UNDEFINED"
+	 * @generated
+	 */
+	YAlignment getAlignment();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle#getAlignment <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #getAlignment()
+	 * @generated
+	 */
+	void setAlignment(YAlignment value);
+
+} // YUiHorizontalLayoutCellStyle
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YImage.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YImage.java
new file mode 100644
index 0000000..35efff7
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YImage.java
@@ -0,0 +1,90 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YImage</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYImage()
+ * @model
+ * @generated
+ */
+public interface YImage extends YField, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYImage_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYImage_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+} // YImage
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YInput.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YInput.java
new file mode 100644
index 0000000..57dc3e0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YInput.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Input</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYInput()
+ * @model abstract="true"
+ * @generated
+ */
+public interface YInput extends YField {
+
+} // YUiInput
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YLabel.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YLabel.java
new file mode 100644
index 0000000..78d3c2d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YLabel.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Label</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYLabel()
+ * @model
+ * @generated
+ */
+public interface YLabel extends YField, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYLabel_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYLabel_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+} // YUiLabel
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YList.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YList.java
new file mode 100644
index 0000000..091e153
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YList.java
@@ -0,0 +1,371 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi List</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getCaptionProperty <em>Caption Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getImageProperty <em>Image Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDescriptionProperty <em>Description Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList()
+ * @model
+ * @generated
+ */
+public interface YList extends YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable, YBeanServiceConsumer {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YListDataType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YListDataType getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YListDataType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #setSelectionType(YSelectionType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_SelectionType()
+	 * @model
+	 * @generated
+	 */
+	YSelectionType getSelectionType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getSelectionType <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #getSelectionType()
+	 * @generated
+	 */
+	void setSelectionType(YSelectionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection</em>' attribute.
+	 * @see #setSelection(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_Selection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getSelection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getSelection <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection</em>' attribute.
+	 * @see #getSelection()
+	 * @generated
+	 */
+	void setSelection(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Multi Selection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Multi Selection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Multi Selection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_MultiSelection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getMultiSelection();
+
+	/**
+	 * Returns the value of the '<em><b>Collection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_Collection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getCollection();
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Caption Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Caption Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Caption Property</em>' attribute.
+	 * @see #setCaptionProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_CaptionProperty()
+	 * @model
+	 * @generated
+	 */
+	String getCaptionProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getCaptionProperty <em>Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Caption Property</em>' attribute.
+	 * @see #getCaptionProperty()
+	 * @generated
+	 */
+	void setCaptionProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Image Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Image Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Image Property</em>' attribute.
+	 * @see #setImageProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_ImageProperty()
+	 * @model
+	 * @generated
+	 */
+	String getImageProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getImageProperty <em>Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Image Property</em>' attribute.
+	 * @see #getImageProperty()
+	 * @generated
+	 */
+	void setImageProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description Property</em>' attribute.
+	 * @see #setDescriptionProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_DescriptionProperty()
+	 * @model
+	 * @generated
+	 */
+	String getDescriptionProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDescriptionProperty <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description Property</em>' attribute.
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 */
+	void setDescriptionProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYList_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+} // YUiList
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YMasterDetail.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YMasterDetail.java
new file mode 100644
index 0000000..988497f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YMasterDetail.java
@@ -0,0 +1,272 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YMaster Detail</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getMasterElement <em>Master Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDetailElement <em>Detail Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail()
+ * @model
+ * @generated
+ */
+public interface YMasterDetail extends YInput, YCollectionBindable, YSelectionBindable {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YMasterDetailDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YMasterDetailDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YMasterDetailDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection</em>' attribute.
+	 * @see #setSelection(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail_Selection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getSelection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getSelection <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection</em>' attribute.
+	 * @see #getSelection()
+	 * @generated
+	 */
+	void setSelection(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Collection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail_Collection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getCollection();
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Master Element</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Master Element</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Master Element</em>' containment reference.
+	 * @see #setMasterElement(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail_MasterElement()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YEmbeddable getMasterElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getMasterElement <em>Master Element</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Master Element</em>' containment reference.
+	 * @see #getMasterElement()
+	 * @generated
+	 */
+	void setMasterElement(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Detail Element</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Detail Element</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Detail Element</em>' containment reference.
+	 * @see #setDetailElement(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail_DetailElement()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	YEmbeddable getDetailElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getDetailElement <em>Detail Element</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Detail Element</em>' containment reference.
+	 * @see #getDetailElement()
+	 * @generated
+	 */
+	void setDetailElement(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYMasterDetail_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+} // YMasterDetail
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YNumericField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YNumericField.java
new file mode 100644
index 0000000..a667321
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YNumericField.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Numeric Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericField()
+ * @model
+ * @generated
+ */
+public interface YNumericField extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YNumericDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericField_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YNumericDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YNumericDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(long)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	long getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(long value);
+
+} // YUiNumericField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YNumericSearchField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YNumericSearchField.java
new file mode 100644
index 0000000..3ce0d85
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YNumericSearchField.java
@@ -0,0 +1,199 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YNumeric Search Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getWildcard <em>Wildcard</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericSearchField()
+ * @model
+ * @generated
+ */
+public interface YNumericSearchField extends YSearchField {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericSearchField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericSearchField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Wildcard</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Wildcard</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Wildcard</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards
+	 * @see #setWildcard(YSearchWildcards)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericSearchField_Wildcard()
+	 * @model transient="true"
+	 * @generated
+	 */
+	YSearchWildcards getWildcard();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getWildcard <em>Wildcard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Wildcard</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards
+	 * @see #getWildcard()
+	 * @generated
+	 */
+	void setWildcard(YSearchWildcards value);
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericSearchField_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericSearchField_Type()
+	 * @model
+	 * @generated
+	 */
+	Class getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYNumericSearchField_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+} // YNumericSearchField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YOptionsGroup.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YOptionsGroup.java
new file mode 100644
index 0000000..b0d71c0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YOptionsGroup.java
@@ -0,0 +1,373 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YOptions Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getCaptionProperty <em>Caption Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getImageProperty <em>Image Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDescriptionProperty <em>Description Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup()
+ * @model
+ * @generated
+ */
+public interface YOptionsGroup extends YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable, YBeanServiceConsumer {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YOptionsGroupDataType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YOptionsGroupDataType getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YOptionsGroupDataType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #setSelectionType(YSelectionType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_SelectionType()
+	 * @model
+	 * @generated
+	 */
+	YSelectionType getSelectionType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getSelectionType <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #getSelectionType()
+	 * @generated
+	 */
+	void setSelectionType(YSelectionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection</em>' attribute.
+	 * @see #setSelection(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_Selection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getSelection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getSelection <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection</em>' attribute.
+	 * @see #getSelection()
+	 * @generated
+	 */
+	void setSelection(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Multi Selection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Multi Selection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Multi Selection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_MultiSelection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getMultiSelection();
+
+	/**
+	 * Returns the value of the '<em><b>Collection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_Collection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getCollection();
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Caption Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Caption Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Caption Property</em>' attribute.
+	 * @see #setCaptionProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_CaptionProperty()
+	 * @model
+	 * @generated
+	 */
+	String getCaptionProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getCaptionProperty <em>Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Caption Property</em>' attribute.
+	 * @see #getCaptionProperty()
+	 * @generated
+	 */
+	void setCaptionProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Image Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Image Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Image Property</em>' attribute.
+	 * @see #setImageProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_ImageProperty()
+	 * @model
+	 * @generated
+	 */
+	String getImageProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getImageProperty <em>Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Image Property</em>' attribute.
+	 * @see #getImageProperty()
+	 * @generated
+	 */
+	void setImageProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description Property</em>' attribute.
+	 * @see #setDescriptionProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_DescriptionProperty()
+	 * @model
+	 * @generated
+	 */
+	String getDescriptionProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDescriptionProperty <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description Property</em>' attribute.
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 */
+	void setDescriptionProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYOptionsGroup_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+} // YOptionsGroup
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YPanel.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YPanel.java
new file mode 100644
index 0000000..9f72d50
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YPanel.java
@@ -0,0 +1,128 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YPanel</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getFirstContent <em>First Content</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getSecondContent <em>Second Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYPanel()
+ * @model
+ * @generated
+ */
+public interface YPanel extends YLayout, YFocusable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYPanel_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>First Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First Content</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First Content</em>' reference.
+	 * @see #setFirstContent(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYPanel_FirstContent()
+	 * @model
+	 * @generated
+	 */
+	YEmbeddable getFirstContent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getFirstContent <em>First Content</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First Content</em>' reference.
+	 * @see #getFirstContent()
+	 * @generated
+	 */
+	void setFirstContent(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Second Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second Content</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second Content</em>' reference.
+	 * @see #setSecondContent(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYPanel_SecondContent()
+	 * @model
+	 * @generated
+	 */
+	YEmbeddable getSecondContent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel#getSecondContent <em>Second Content</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second Content</em>' reference.
+	 * @see #getSecondContent()
+	 * @generated
+	 */
+	void setSecondContent(YEmbeddable value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the cell style
+	 * @model
+	 * @generated
+	 */
+	YHorizontalLayoutCellStyle getCellStyle(YEmbeddable element);
+
+} // YPanel
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YPasswordField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YPasswordField.java
new file mode 100644
index 0000000..55e84cf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YPasswordField.java
@@ -0,0 +1,81 @@
+/**
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YPassword Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYPasswordField()
+ * @model
+ * @generated
+ */
+public interface YPasswordField extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYPasswordField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYPasswordField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+	
+	
+
+} // YPasswordField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YProgressBar.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YProgressBar.java
new file mode 100644
index 0000000..840da8b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YProgressBar.java
@@ -0,0 +1,117 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YProgress Bar</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYProgressBar()
+ * @model
+ * @generated
+ */
+public interface YProgressBar extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YProgressBarDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYProgressBar_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YProgressBarDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YProgressBarDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYProgressBar_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(float)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYProgressBar_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	float getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(float value);
+
+} // YProgressBar
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YReferenceSearchField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YReferenceSearchField.java
new file mode 100644
index 0000000..861129f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YReferenceSearchField.java
@@ -0,0 +1,226 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YReference Search Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getWildcard <em>Wildcard</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYReferenceSearchField()
+ * @model
+ * @generated
+ */
+public interface YReferenceSearchField extends YSearchField {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYReferenceSearchField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYReferenceSearchField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Wildcard</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Wildcard</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Wildcard</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards
+	 * @see #setWildcard(YSearchWildcards)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYReferenceSearchField_Wildcard()
+	 * @model transient="true"
+	 * @generated
+	 */
+	YSearchWildcards getWildcard();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getWildcard <em>Wildcard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Wildcard</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards
+	 * @see #getWildcard()
+	 * @generated
+	 */
+	void setWildcard(YSearchWildcards value);
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYReferenceSearchField_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYReferenceSearchField_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYReferenceSearchField_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYReferenceSearchField_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+} // YReferenceSearchField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YRemoveFromTableCommand.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YRemoveFromTableCommand.java
new file mode 100644
index 0000000..c28e47e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YRemoveFromTableCommand.java
@@ -0,0 +1,94 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YRemove From Table Command</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand#getTable <em>Table</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand#getTrigger <em>Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYRemoveFromTableCommand()
+ * @model
+ * @generated
+ */
+public interface YRemoveFromTableCommand extends YCommand {
+	/**
+	 * Returns the value of the '<em><b>Table</b></em>' reference. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table</em>' reference isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Table</em>' reference.
+	 * @see #setTable(YTable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYRemoveFromTableCommand_Table()
+	 * @model
+	 * @generated
+	 */
+	YTable getTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand#getTable <em>Table</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Table</em>' reference.
+	 * @see #getTable()
+	 * @generated
+	 */
+	void setTable(YTable value);
+
+	/**
+	 * Returns the value of the '<em><b>Trigger</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trigger</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Trigger</em>' attribute.
+	 * @see #setTrigger(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYRemoveFromTableCommand_Trigger()
+	 * @model
+	 * @generated
+	 */
+	Object getTrigger();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand#getTrigger
+	 * <em>Trigger</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Trigger</em>' attribute.
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	void setTrigger(Object value);
+	
+	public YECViewModelValueBindingEndpoint createTriggerEndpoint();
+
+} // YRemoveFromTableCommand
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSearchField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSearchField.java
new file mode 100644
index 0000000..8b0d988
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSearchField.java
@@ -0,0 +1,29 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YSearch Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSearchField()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface YSearchField extends YInput, YValueBindable {
+} // YSearchField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSearchPanel.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSearchPanel.java
new file mode 100644
index 0000000..6c8fdba
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSearchPanel.java
@@ -0,0 +1,171 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YSearch Panel</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getApplyFilter <em>Apply Filter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getFilter <em>Filter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSearchPanel()
+ * @model
+ * @generated
+ */
+public interface YSearchPanel extends YLayout, YSpacingable, YMarginable {
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSearchPanel_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSearchPanel_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSearchPanel_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Apply Filter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Apply Filter</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Apply Filter</em>' attribute.
+	 * @see #setApplyFilter(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSearchPanel_ApplyFilter()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getApplyFilter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getApplyFilter <em>Apply Filter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Apply Filter</em>' attribute.
+	 * @see #getApplyFilter()
+	 * @generated
+	 */
+	void setApplyFilter(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Filter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Filter</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Filter</em>' attribute.
+	 * @see #setFilter(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSearchPanel_Filter()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getFilter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel#getFilter <em>Filter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Filter</em>' attribute.
+	 * @see #getFilter()
+	 * @generated
+	 */
+	void setFilter(Object value);
+
+} // YSearchPanel
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSearchWildcards.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSearchWildcards.java
new file mode 100644
index 0000000..302b79c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSearchWildcards.java
@@ -0,0 +1,352 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YSearch Wildcards</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSearchWildcards()
+ * @model
+ * @generated
+ */
+public enum YSearchWildcards implements Enumerator {
+	/**
+	 * The '<em><b>GT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GT(0, "GT", "GT"),
+
+	/**
+	 * The '<em><b>GE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GE(1, "GE", "GE"),
+
+	/**
+	 * The '<em><b>LT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LT(2, "LT", "LT"),
+
+	/**
+	 * The '<em><b>LE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LE(3, "LE", "LE"),
+
+	/**
+	 * The '<em><b>EQ</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EQ_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	EQ(4, "EQ", "EQ"),
+
+	/**
+	 * The '<em><b>NE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NE(5, "NE", "NE"),
+
+	/**
+	 * The '<em><b>ANY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ANY_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ANY(6, "ANY", "ANY");
+
+	/**
+	 * The '<em><b>GT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #GT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GT_VALUE = 0;
+
+	/**
+	 * The '<em><b>GE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #GE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GE_VALUE = 1;
+
+	/**
+	 * The '<em><b>LT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #LT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LT_VALUE = 2;
+
+	/**
+	 * The '<em><b>LE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #LE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LE_VALUE = 3;
+
+	/**
+	 * The '<em><b>EQ</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>EQ</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #EQ
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EQ_VALUE = 4;
+
+	/**
+	 * The '<em><b>NE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #NE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NE_VALUE = 5;
+
+	/**
+	 * The '<em><b>ANY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ANY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #ANY
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ANY_VALUE = 6;
+
+	/**
+	 * An array of all the '<em><b>YSearch Wildcards</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YSearchWildcards[] VALUES_ARRAY =
+		new YSearchWildcards[] {
+			GT,
+			GE,
+			LT,
+			LE,
+			EQ,
+			NE,
+			ANY,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YSearch Wildcards</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YSearchWildcards> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YSearch Wildcards</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YSearchWildcards get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YSearchWildcards result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YSearch Wildcards</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YSearchWildcards getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YSearchWildcards result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YSearch Wildcards</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YSearchWildcards get(int value) {
+		switch (value) {
+			case GT_VALUE: return GT;
+			case GE_VALUE: return GE;
+			case LT_VALUE: return LT;
+			case LE_VALUE: return LE;
+			case EQ_VALUE: return EQ;
+			case NE_VALUE: return NE;
+			case ANY_VALUE: return ANY;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YSearchWildcards(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YSearchWildcards
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSelectionType.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSelectionType.java
new file mode 100644
index 0000000..7c90d0d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSelectionType.java
@@ -0,0 +1,217 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YSelection Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSelectionType()
+ * @model
+ * @generated
+ */
+public enum YSelectionType implements Enumerator {
+	/**
+	 * The '<em><b>SINGLE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SINGLE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SINGLE(0, "SINGLE", ""),
+
+	/**
+	 * The '<em><b>MULTI</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MULTI_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MULTI(1, "MULTI", "MULTI");
+
+	/**
+	 * The '<em><b>SINGLE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SINGLE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #SINGLE
+	 * @model literal=""
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SINGLE_VALUE = 0;
+
+	/**
+	 * The '<em><b>MULTI</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MULTI</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @see #MULTI
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MULTI_VALUE = 1;
+
+	/**
+	 * An array of all the '<em><b>YSelection Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YSelectionType[] VALUES_ARRAY =
+		new YSelectionType[] {
+			SINGLE,
+			MULTI,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YSelection Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YSelectionType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YSelection Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YSelectionType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YSelectionType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YSelection Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YSelectionType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YSelectionType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YSelection Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YSelectionType get(int value) {
+		switch (value) {
+			case SINGLE_VALUE: return SINGLE;
+			case MULTI_VALUE: return MULTI;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	private YSelectionType(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YSelectionType
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSetNewBeanInstanceCommand.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSetNewBeanInstanceCommand.java
new file mode 100644
index 0000000..9f028c6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSetNewBeanInstanceCommand.java
@@ -0,0 +1,181 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YSet New Bean Instance Command</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTrigger <em>Trigger</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSetNewBeanInstanceCommand()
+ * @model
+ * @generated
+ */
+public interface YSetNewBeanInstanceCommand extends YCommand {
+	/**
+	 * Returns the value of the '<em><b>Target</b></em>' reference. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(YValueBindingEndpoint)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSetNewBeanInstanceCommand_Target()
+	 * @model
+	 * @generated
+	 */
+	YValueBindingEndpoint getTarget();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTarget
+	 * <em>Target</em>}' reference. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(YValueBindingEndpoint value);
+
+	/**
+	 * Returns the value of the '<em><b>Trigger</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trigger</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Trigger</em>' attribute.
+	 * @see #setTrigger(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSetNewBeanInstanceCommand_Trigger()
+	 * @model
+	 * @generated
+	 */
+	Object getTrigger();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTrigger
+	 * <em>Trigger</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Trigger</em>' attribute.
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	void setTrigger(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSetNewBeanInstanceCommand_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSetNewBeanInstanceCommand_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't
+	 * clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSetNewBeanInstanceCommand_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	public YECViewModelValueBindingEndpoint createTriggerEndpoint();
+
+} // YSetNewBeanInstanceCommand
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSlider.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSlider.java
new file mode 100644
index 0000000..d861fbe
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSlider.java
@@ -0,0 +1,205 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YOrientation;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YSlider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getMaxValue <em>Max Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getMinValue <em>Min Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getResolution <em>Resolution</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getOrientation <em>Orientation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSlider()
+ * @model
+ * @generated
+ */
+public interface YSlider extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSlider_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(double)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSlider_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	double getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Max Value</b></em>' attribute.
+	 * The default value is <code>"100"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Max Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Max Value</em>' attribute.
+	 * @see #setMaxValue(double)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSlider_MaxValue()
+	 * @model default="100" transient="true"
+	 * @generated
+	 */
+	double getMaxValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getMaxValue <em>Max Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Max Value</em>' attribute.
+	 * @see #getMaxValue()
+	 * @generated
+	 */
+	void setMaxValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Min Value</b></em>' attribute.
+	 * The default value is <code>"0"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Min Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Min Value</em>' attribute.
+	 * @see #setMinValue(double)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSlider_MinValue()
+	 * @model default="0" transient="true"
+	 * @generated
+	 */
+	double getMinValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getMinValue <em>Min Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Min Value</em>' attribute.
+	 * @see #getMinValue()
+	 * @generated
+	 */
+	void setMinValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Resolution</b></em>' attribute.
+	 * The default value is <code>"10"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Resolution</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Resolution</em>' attribute.
+	 * @see #setResolution(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSlider_Resolution()
+	 * @model default="10" transient="true"
+	 * @generated
+	 */
+	int getResolution();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getResolution <em>Resolution</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Resolution</em>' attribute.
+	 * @see #getResolution()
+	 * @generated
+	 */
+	void setResolution(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Orientation</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YOrientation}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Orientation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Orientation</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YOrientation
+	 * @see #setOrientation(YOrientation)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSlider_Orientation()
+	 * @model transient="true"
+	 * @generated
+	 */
+	YOrientation getOrientation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider#getOrientation <em>Orientation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Orientation</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YOrientation
+	 * @see #getOrientation()
+	 * @generated
+	 */
+	void setOrientation(YOrientation value);
+
+} // YSlider
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSortColumn.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSortColumn.java
new file mode 100644
index 0000000..0b5d602
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSortColumn.java
@@ -0,0 +1,132 @@
+/**
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YSort Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#isAsc <em>Asc</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSortColumn()
+ * @model
+ * @generated
+ */
+public interface YSortColumn extends YElement {
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSortColumn_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSortColumn_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSortColumn_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Asc</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Asc</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Asc</em>' attribute.
+	 * @see #setAsc(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSortColumn_Asc()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isAsc();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn#isAsc <em>Asc</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Asc</em>' attribute.
+	 * @see #isAsc()
+	 * @generated
+	 */
+	void setAsc(boolean value);
+
+} // YSortColumn
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSpanInfo.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSpanInfo.java
new file mode 100644
index 0000000..8d757c3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSpanInfo.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Span Info</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getColumnFrom <em>Column From</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getRowFrom <em>Row From</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getColumnTo <em>Column To</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getRowTo <em>Row To</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSpanInfo()
+ * @model
+ * @generated
+ */
+public interface YSpanInfo extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Column From</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The column index of the cell that should contain the Upper-Left-Edge of the element.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Column From</em>' attribute.
+	 * @see #setColumnFrom(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSpanInfo_ColumnFrom()
+	 * @model
+	 * @generated
+	 */
+	int getColumnFrom();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getColumnFrom <em>Column From</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Column From</em>' attribute.
+	 * @see #getColumnFrom()
+	 * @generated
+	 */
+	void setColumnFrom(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Row From</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The row index of the cell that should contain the Upper-Left-Edge of the element.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Row From</em>' attribute.
+	 * @see #setRowFrom(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSpanInfo_RowFrom()
+	 * @model
+	 * @generated
+	 */
+	int getRowFrom();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getRowFrom <em>Row From</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Row From</em>' attribute.
+	 * @see #getRowFrom()
+	 * @generated
+	 */
+	void setRowFrom(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Column To</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The column index of the cell that should contain the Lower-Right-Edge of the element.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Column To</em>' attribute.
+	 * @see #setColumnTo(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSpanInfo_ColumnTo()
+	 * @model
+	 * @generated
+	 */
+	int getColumnTo();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getColumnTo <em>Column To</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Column To</em>' attribute.
+	 * @see #getColumnTo()
+	 * @generated
+	 */
+	void setColumnTo(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Row To</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The row index of the cell that should contain the Lower-Right-Edge of the element.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Row To</em>' attribute.
+	 * @see #setRowTo(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSpanInfo_RowTo()
+	 * @model
+	 * @generated
+	 */
+	int getRowTo();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo#getRowTo <em>Row To</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Row To</em>' attribute.
+	 * @see #getRowTo()
+	 * @generated
+	 */
+	void setRowTo(int value);
+
+} // YUiSpanInfo
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSplitPanel.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSplitPanel.java
new file mode 100644
index 0000000..6bc3717
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSplitPanel.java
@@ -0,0 +1,175 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YSplit Panel</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getCellStyles <em>Cell Styles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#isFillHorizontal <em>Fill Horizontal</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getSplitPosition <em>Split Position</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#isVertical <em>Vertical</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSplitPanel()
+ * @model
+ * @generated
+ */
+public interface YSplitPanel extends YLayout {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSplitPanel_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cell Styles</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cell Styles</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSplitPanel_CellStyles()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YHorizontalLayoutCellStyle> getCellStyles();
+
+	/**
+	 * Returns the value of the '<em><b>Fill Horizontal</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * If false, then the width of all elements contained in the grid layout will be decreased to their preferred width or their miminum width. If no alignment is defined for a child, this setting will become its default.
+	 * Eg if child has not a alignment, the horizontal alignment will become FILL if fillHorizontal is true. Otherwise the ui-kit default will be used as the horizontal alignment.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Fill Horizontal</em>' attribute.
+	 * @see #setFillHorizontal(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSplitPanel_FillHorizontal()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isFillHorizontal();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#isFillHorizontal <em>Fill Horizontal</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fill Horizontal</em>' attribute.
+	 * @see #isFillHorizontal()
+	 * @generated
+	 */
+	void setFillHorizontal(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Split Position</b></em>' attribute.
+	 * The default value is <code>"50"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Split Position</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Split Position</em>' attribute.
+	 * @see #setSplitPosition(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSplitPanel_SplitPosition()
+	 * @model default="50"
+	 * @generated
+	 */
+	int getSplitPosition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#getSplitPosition <em>Split Position</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Split Position</em>' attribute.
+	 * @see #getSplitPosition()
+	 * @generated
+	 */
+	void setSplitPosition(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Vertical</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Vertical</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Vertical</em>' attribute.
+	 * @see #setVertical(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSplitPanel_Vertical()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isVertical();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel#isVertical <em>Vertical</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Vertical</em>' attribute.
+	 * @see #isVertical()
+	 * @generated
+	 */
+	void setVertical(boolean value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the cell style
+	 * @model
+	 * @generated
+	 */
+	YHorizontalLayoutCellStyle getCellStyle(YEmbeddable element);
+
+} // YSplitPanel
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSuggestTextField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSuggestTextField.java
new file mode 100644
index 0000000..6013302
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSuggestTextField.java
@@ -0,0 +1,392 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YSuggest Text Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#isUseSuggestions <em>Use Suggestions</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#isAutoHidePopup <em>Auto Hide Popup</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getLastSuggestion <em>Last Suggestion</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemCaptionProperty <em>Item Caption Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemFilterProperty <em>Item Filter Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemUUIDProperty <em>Item UUID Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getEvent <em>Event</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField()
+ * @model
+ * @generated
+ */
+public interface YSuggestTextField extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YTextDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YTextDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YTextDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Use Suggestions</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Use Suggestions</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Use Suggestions</em>' attribute.
+	 * @see #setUseSuggestions(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_UseSuggestions()
+	 * @model
+	 * @generated
+	 */
+	boolean isUseSuggestions();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#isUseSuggestions <em>Use Suggestions</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Use Suggestions</em>' attribute.
+	 * @see #isUseSuggestions()
+	 * @generated
+	 */
+	void setUseSuggestions(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Auto Hide Popup</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Auto Hide Popup</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Auto Hide Popup</em>' attribute.
+	 * @see #setAutoHidePopup(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_AutoHidePopup()
+	 * @model
+	 * @generated
+	 */
+	boolean isAutoHidePopup();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#isAutoHidePopup <em>Auto Hide Popup</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Auto Hide Popup</em>' attribute.
+	 * @see #isAutoHidePopup()
+	 * @generated
+	 */
+	void setAutoHidePopup(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Last Suggestion</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Last Suggestion</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Last Suggestion</em>' attribute.
+	 * @see #setLastSuggestion(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_LastSuggestion()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getLastSuggestion();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getLastSuggestion <em>Last Suggestion</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Last Suggestion</em>' attribute.
+	 * @see #getLastSuggestion()
+	 * @generated
+	 */
+	void setLastSuggestion(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Item Caption Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Item Caption Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Item Caption Property</em>' attribute.
+	 * @see #setItemCaptionProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_ItemCaptionProperty()
+	 * @model
+	 * @generated
+	 */
+	String getItemCaptionProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemCaptionProperty <em>Item Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Item Caption Property</em>' attribute.
+	 * @see #getItemCaptionProperty()
+	 * @generated
+	 */
+	void setItemCaptionProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Item Filter Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Item Filter Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Item Filter Property</em>' attribute.
+	 * @see #setItemFilterProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_ItemFilterProperty()
+	 * @model
+	 * @generated
+	 */
+	String getItemFilterProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemFilterProperty <em>Item Filter Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Item Filter Property</em>' attribute.
+	 * @see #getItemFilterProperty()
+	 * @generated
+	 */
+	void setItemFilterProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Item UUID Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Item UUID Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Item UUID Property</em>' attribute.
+	 * @see #setItemUUIDProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_ItemUUIDProperty()
+	 * @model
+	 * @generated
+	 */
+	String getItemUUIDProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getItemUUIDProperty <em>Item UUID Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Item UUID Property</em>' attribute.
+	 * @see #getItemUUIDProperty()
+	 * @generated
+	 */
+	void setItemUUIDProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Event</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Event</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Event</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents
+	 * @see #setEvent(YSuggestTextFieldEvents)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextField_Event()
+	 * @model transient="true"
+	 * @generated
+	 */
+	YSuggestTextFieldEvents getEvent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField#getEvent <em>Event</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Event</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents
+	 * @see #getEvent()
+	 * @generated
+	 */
+	void setEvent(YSuggestTextFieldEvents value);
+
+} // YSuggestTextField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSuggestTextFieldEvents.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSuggestTextFieldEvents.java
new file mode 100644
index 0000000..e75c2bc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YSuggestTextFieldEvents.java
@@ -0,0 +1,314 @@
+/**
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>YSuggest Text Field Events</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYSuggestTextFieldEvents()
+ * @model
+ * @generated
+ */
+public enum YSuggestTextFieldEvents implements Enumerator {
+	/**
+	 * The '<em><b>OPEN POPUP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OPEN_POPUP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	OPEN_POPUP(0, "OPEN_POPUP", "OPEN_POPUP"),
+
+	/**
+	 * The '<em><b>CLOSE POPUP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CLOSE_POPUP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CLOSE_POPUP(1, "CLOSE_POPUP", "CLOSE_POPUP"),
+
+	/**
+	 * The '<em><b>NAVIGATE NEXT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NAVIGATE_NEXT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NAVIGATE_NEXT(2, "NAVIGATE_NEXT", "NAVIGATE_NEXT"),
+
+	/**
+	 * The '<em><b>NAVIGATE PREV</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NAVIGATE_PREV_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NAVIGATE_PREV(3, "NAVIGATE_PREV", "NAVIGATE_PREV"),
+
+	/**
+	 * The '<em><b>SELECT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SELECT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SELECT(4, "SELECT", "SELECT"), /**
+	 * The '<em><b>CLEAR</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CLEAR_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CLEAR(5, "CLEAR", "CLEAR");
+
+	/**
+	 * The '<em><b>OPEN POPUP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>OPEN POPUP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #OPEN_POPUP
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OPEN_POPUP_VALUE = 0;
+
+	/**
+	 * The '<em><b>CLOSE POPUP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CLOSE POPUP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CLOSE_POPUP
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CLOSE_POPUP_VALUE = 1;
+
+	/**
+	 * The '<em><b>NAVIGATE NEXT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NAVIGATE NEXT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NAVIGATE_NEXT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NAVIGATE_NEXT_VALUE = 2;
+
+	/**
+	 * The '<em><b>NAVIGATE PREV</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NAVIGATE PREV</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NAVIGATE_PREV
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NAVIGATE_PREV_VALUE = 3;
+
+	/**
+	 * The '<em><b>SELECT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SELECT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SELECT
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SELECT_VALUE = 4;
+
+	/**
+	 * The '<em><b>CLEAR</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CLEAR</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CLEAR
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CLEAR_VALUE = 5;
+
+	/**
+	 * An array of all the '<em><b>YSuggest Text Field Events</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final YSuggestTextFieldEvents[] VALUES_ARRAY =
+		new YSuggestTextFieldEvents[] {
+			OPEN_POPUP,
+			CLOSE_POPUP,
+			NAVIGATE_NEXT,
+			NAVIGATE_PREV,
+			SELECT,
+			CLEAR,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>YSuggest Text Field Events</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<YSuggestTextFieldEvents> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>YSuggest Text Field Events</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YSuggestTextFieldEvents get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YSuggestTextFieldEvents result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YSuggest Text Field Events</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YSuggestTextFieldEvents getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			YSuggestTextFieldEvents result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>YSuggest Text Field Events</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static YSuggestTextFieldEvents get(int value) {
+		switch (value) {
+			case OPEN_POPUP_VALUE: return OPEN_POPUP;
+			case CLOSE_POPUP_VALUE: return CLOSE_POPUP;
+			case NAVIGATE_NEXT_VALUE: return NAVIGATE_NEXT;
+			case NAVIGATE_PREV_VALUE: return NAVIGATE_PREV;
+			case SELECT_VALUE: return SELECT;
+			case CLEAR_VALUE: return CLEAR;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private YSuggestTextFieldEvents(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //YSuggestTextFieldEvents
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTab.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTab.java
new file mode 100644
index 0000000..cd492c2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTab.java
@@ -0,0 +1,176 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YTab</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getParent <em>Parent</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getEmbeddable <em>Embeddable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getOrphanDatadescriptions <em>Orphan Datadescriptions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTab()
+ * @model
+ * @generated
+ */
+public interface YTab extends YElement, YCssAble {
+	/**
+	 * Returns the value of the '<em><b>Parent</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet#getTabs <em>Tabs</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parent</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parent</em>' container reference.
+	 * @see #setParent(YTabSheet)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTab_Parent()
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet#getTabs
+	 * @model opposite="tabs" required="true" transient="false"
+	 * @generated
+	 */
+	YTabSheet getParent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getParent <em>Parent</em>}' container reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Parent</em>' container reference.
+	 * @see #getParent()
+	 * @generated
+	 */
+	void setParent(YTabSheet value);
+
+	/**
+	 * Returns the value of the '<em><b>Embeddable</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Embeddable</em>' reference isn't clear, there
+	 * really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Embeddable</em>' containment reference.
+	 * @see #setEmbeddable(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTab_Embeddable()
+	 * @model containment="true" resolveProxies="true" required="true"
+	 * @generated
+	 */
+	YEmbeddable getEmbeddable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getEmbeddable <em>Embeddable</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Embeddable</em>' containment reference.
+	 * @see #getEmbeddable()
+	 * @generated
+	 */
+	void setEmbeddable(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTab_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Orphan Datadescriptions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Orphan Datadescriptions</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Orphan Datadescriptions</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTab_OrphanDatadescriptions()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YDatadescription> getOrphanDatadescriptions();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view
+	 * @model kind="operation"
+	 * @generated
+	 */
+	YView getView();
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label);
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey);
+	
+	/**
+	 * Returns the label.
+	 * 
+	 * @return label
+	 */
+	public String getLabel();
+
+	/**
+	 * Returns the label i18nKey.
+	 *
+	 * @return the label i18n key
+	 */
+	public String getLabelI18nKey();
+
+} // YTab
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTabSheet.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTabSheet.java
new file mode 100644
index 0000000..090c3b2
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTabSheet.java
@@ -0,0 +1,55 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YTab Sheet</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet#getTabs <em>Tabs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTabSheet()
+ * @model
+ * @generated
+ */
+public interface YTabSheet extends YEmbeddable, YFocusable {
+	/**
+	 * Returns the value of the '<em><b>Tabs</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getParent <em>Parent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tabs</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tabs</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTabSheet_Tabs()
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getParent
+	 * @model opposite="parent" containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YTab> getTabs();
+
+} // YTabSheet
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTable.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTable.java
new file mode 100644
index 0000000..5c56e59
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTable.java
@@ -0,0 +1,378 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getColumns <em>Columns</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getItemImageProperty <em>Item Image Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getFilter <em>Filter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getRefresh <em>Refresh</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSortOrder <em>Sort Order</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable()
+ * @model
+ * @generated
+ */
+public interface YTable extends YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable, YBeanServiceConsumer {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YTableDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YTableDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YTableDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #setSelectionType(YSelectionType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_SelectionType()
+	 * @model
+	 * @generated
+	 */
+	YSelectionType getSelectionType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSelectionType <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #getSelectionType()
+	 * @generated
+	 */
+	void setSelectionType(YSelectionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection</em>' attribute.
+	 * @see #setSelection(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_Selection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getSelection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getSelection <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection</em>' attribute.
+	 * @see #getSelection()
+	 * @generated
+	 */
+	void setSelection(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Multi Selection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Multi Selection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Multi Selection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_MultiSelection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getMultiSelection();
+
+	/**
+	 * Returns the value of the '<em><b>Collection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_Collection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getCollection();
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Columns</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Columns</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Columns</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_Columns()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YColumn> getColumns();
+
+	/**
+	 * Returns the value of the '<em><b>Item Image Property</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Item Image Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Item Image Property</em>' attribute.
+	 * @see #setItemImageProperty(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_ItemImageProperty()
+	 * @model
+	 * @generated
+	 */
+	String getItemImageProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getItemImageProperty <em>Item Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Item Image Property</em>' attribute.
+	 * @see #getItemImageProperty()
+	 * @generated
+	 */
+	void setItemImageProperty(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Filter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Filter</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Filter</em>' attribute.
+	 * @see #setFilter(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_Filter()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getFilter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getFilter <em>Filter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Filter</em>' attribute.
+	 * @see #getFilter()
+	 * @generated
+	 */
+	void setFilter(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Refresh</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Refresh</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Refresh</em>' attribute.
+	 * @see #setRefresh(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_Refresh()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getRefresh();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable#getRefresh <em>Refresh</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Refresh</em>' attribute.
+	 * @see #getRefresh()
+	 * @generated
+	 */
+	void setRefresh(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Sort Order</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sort Order</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sort Order</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTable_SortOrder()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YSortColumn> getSortOrder();
+
+} // YUiTable
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTextArea.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTextArea.java
new file mode 100644
index 0000000..bbdaf44
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTextArea.java
@@ -0,0 +1,171 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Text Area</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#isWordWrap <em>Word Wrap</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getRows <em>Rows</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextArea()
+ * @model
+ * @generated
+ */
+public interface YTextArea extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextArea_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YTextAreaDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextArea_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YTextAreaDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YTextAreaDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextArea_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Word Wrap</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Word Wrap</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Word Wrap</em>' attribute.
+	 * @see #setWordWrap(boolean)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextArea_WordWrap()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isWordWrap();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#isWordWrap <em>Word Wrap</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Word Wrap</em>' attribute.
+	 * @see #isWordWrap()
+	 * @generated
+	 */
+	void setWordWrap(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Rows</b></em>' attribute.
+	 * The default value is <code>"3"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Rows</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Rows</em>' attribute.
+	 * @see #setRows(int)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextArea_Rows()
+	 * @model default="3"
+	 * @generated
+	 */
+	int getRows();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea#getRows <em>Rows</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Rows</em>' attribute.
+	 * @see #getRows()
+	 * @generated
+	 */
+	void setRows(int value);
+
+} // YUiTextArea
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTextField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTextField.java
new file mode 100644
index 0000000..1157632
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTextField.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Text Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextField()
+ * @model
+ * @generated
+ */
+public interface YTextField extends YInput, YValueBindable {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YTextDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextField_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YTextDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YTextDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+} // YUiTextField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTextSearchField.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTextSearchField.java
new file mode 100644
index 0000000..89b2453
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTextSearchField.java
@@ -0,0 +1,145 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YText Search Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getWildcard <em>Wildcard</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getPropertyPath <em>Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextSearchField()
+ * @model
+ * @generated
+ */
+public interface YTextSearchField extends YSearchField {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextSearchField_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextSearchField_Value()
+	 * @model transient="true"
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Wildcard</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Wildcard</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Wildcard</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards
+	 * @see #setWildcard(YSearchWildcards)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextSearchField_Wildcard()
+	 * @model transient="true"
+	 * @generated
+	 */
+	YSearchWildcards getWildcard();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getWildcard <em>Wildcard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Wildcard</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards
+	 * @see #getWildcard()
+	 * @generated
+	 */
+	void setWildcard(YSearchWildcards value);
+
+	/**
+	 * Returns the value of the '<em><b>Property Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property Path</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property Path</em>' attribute.
+	 * @see #setPropertyPath(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTextSearchField_PropertyPath()
+	 * @model
+	 * @generated
+	 */
+	String getPropertyPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField#getPropertyPath <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property Path</em>' attribute.
+	 * @see #getPropertyPath()
+	 * @generated
+	 */
+	void setPropertyPath(String value);
+
+} // YTextSearchField
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YToggleButton.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YToggleButton.java
new file mode 100644
index 0000000..b201cbf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YToggleButton.java
@@ -0,0 +1,64 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivateable;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YToggle Button</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton#getDatadescription <em>Datadescription</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYToggleButton()
+ * @model
+ * @generated
+ */
+public interface YToggleButton extends YAction, YActivateable, YFocusable {
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYToggleButton_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+} // YToggleButton
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTree.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTree.java
new file mode 100644
index 0000000..24fafdd
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YTree.java
@@ -0,0 +1,265 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YTree</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree()
+ * @model
+ * @generated
+ */
+public interface YTree extends YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable, YBeanServiceConsumer {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datatype</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(YTreeDatatype)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree_Datatype()
+	 * @model
+	 * @generated
+	 */
+	YTreeDatatype getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(YTreeDatatype value);
+
+	/**
+	 * Returns the value of the '<em><b>Datadescription</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datadescription</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datadescription</em>' reference.
+	 * @see #setDatadescription(YDatadescription)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree_Datadescription()
+	 * @model
+	 * @generated
+	 */
+	YDatadescription getDatadescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getDatadescription <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datadescription</em>' reference.
+	 * @see #getDatadescription()
+	 * @generated
+	 */
+	void setDatadescription(YDatadescription value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #setSelectionType(YSelectionType)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree_SelectionType()
+	 * @model
+	 * @generated
+	 */
+	YSelectionType getSelectionType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getSelectionType <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection Type</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType
+	 * @see #getSelectionType()
+	 * @generated
+	 */
+	void setSelectionType(YSelectionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Selection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selection</em>' attribute.
+	 * @see #setSelection(Object)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree_Selection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Object getSelection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getSelection <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selection</em>' attribute.
+	 * @see #getSelection()
+	 * @generated
+	 */
+	void setSelection(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Multi Selection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Multi Selection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Multi Selection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree_MultiSelection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getMultiSelection();
+
+	/**
+	 * Returns the value of the '<em><b>Collection</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Object}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection</em>' attribute list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree_Collection()
+	 * @model transient="true"
+	 * @generated
+	 */
+	EList<Object> getCollection();
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(Class)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree_Type()
+	 * @model
+	 * @generated
+	 */
+	Class<?> getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(Class<?> value);
+
+	/**
+	 * Returns the value of the '<em><b>Emf Ns URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Emf Ns URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #setEmfNsURI(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree_EmfNsURI()
+	 * @model
+	 * @generated
+	 */
+	String getEmfNsURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getEmfNsURI <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Emf Ns URI</em>' attribute.
+	 * @see #getEmfNsURI()
+	 * @generated
+	 */
+	void setEmfNsURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Qualified Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #setTypeQualifiedName(String)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYTree_TypeQualifiedName()
+	 * @model
+	 * @generated
+	 */
+	String getTypeQualifiedName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree#getTypeQualifiedName <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Qualified Name</em>' attribute.
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 */
+	void setTypeQualifiedName(String value);
+
+} // YTree
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YVerticalLayout.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YVerticalLayout.java
new file mode 100644
index 0000000..e3b6bcf
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YVerticalLayout.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>YUi Vertical Layout</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout#getCellStyles <em>Cell Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYVerticalLayout()
+ * @model
+ * @generated
+ */
+public interface YVerticalLayout extends YLayout, YSpacingable, YMarginable, YAlignmentContainer {
+	/**
+	 * Returns the value of the '<em><b>Cell Styles</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cell Styles</em>' containment reference list
+	 * isn't clear, there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cell Styles</em>' containment reference list.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYVerticalLayout_CellStyles()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<YVerticalLayoutCellStyle> getCellStyles();
+
+	/**
+	 * Returns the cell style for the given element.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the cell style
+	 */
+	YVerticalLayoutCellStyle getCellStyle(YEmbeddable element);
+
+	/**
+	 * Adds a new cell style to the internal list of cell styles.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the y vertical layout cell style
+	 */
+	YVerticalLayoutCellStyle addCellStyle(YEmbeddable element);
+
+} // YUiVerticalLayout
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YVerticalLayoutCellStyle.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YVerticalLayoutCellStyle.java
new file mode 100644
index 0000000..e0ccb4b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/YVerticalLayoutCellStyle.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ *    Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>YUi Vertical Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle#getAlignment <em>Alignment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYVerticalLayoutCellStyle()
+ * @model
+ * @generated
+ */
+public interface YVerticalLayoutCellStyle extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * 
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(YEmbeddable)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYVerticalLayoutCellStyle_Target()
+	 * @model required="true"
+	 * @generated
+	 */
+	YEmbeddable getTarget();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle#getTarget <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(YEmbeddable value);
+
+	/**
+	 * Returns the value of the '<em><b>Alignment</b></em>' attribute.
+	 * The default value is <code>"UNDEFINED"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.ecview.core.common.model.core.YAlignment}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The alignment of the ui element relative to its grid cell.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #setAlignment(YAlignment)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#getYVerticalLayoutCellStyle_Alignment()
+	 * @model default="UNDEFINED"
+	 * @generated
+	 */
+	YAlignment getAlignment();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle#getAlignment <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Alignment</em>' attribute.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignment
+	 * @see #getAlignment()
+	 * @generated
+	 */
+	void setAlignment(YAlignment value);
+
+} // YUiVerticalLayoutCellStyle
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/ExtensionModelFactoryImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/ExtensionModelFactoryImpl.java
new file mode 100644
index 0000000..01278b8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/ExtensionModelFactoryImpl.java
@@ -0,0 +1,1021 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.io.InputStream;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.osbp.ecview.core.extension.model.extension.*;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YColumn;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YImage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YLabel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTree;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtensionModelFactoryImpl extends EFactoryImpl implements ExtensionModelFactory {
+	
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	public static ExtensionModelFactory init() {
+		try {
+			ExtensionModelFactory theExtensionModelFactory = (ExtensionModelFactory)EPackage.Registry.INSTANCE.getEFactory(ExtensionModelPackage.eNS_URI);
+			if (theExtensionModelFactory != null) {
+				return theExtensionModelFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new ExtensionModelFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtensionModelFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eClass
+	 *            the e class
+	 * @return the e object
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case ExtensionModelPackage.YGRID_LAYOUT: return createYGridLayout();
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE: return createYGridLayoutCellStyle();
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT: return createYHorizontalLayout();
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE: return createYHorizontalLayoutCellStyle();
+			case ExtensionModelPackage.YVERTICAL_LAYOUT: return createYVerticalLayout();
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE: return createYVerticalLayoutCellStyle();
+			case ExtensionModelPackage.YSPAN_INFO: return createYSpanInfo();
+			case ExtensionModelPackage.YTABLE: return createYTable();
+			case ExtensionModelPackage.YCOLUMN: return createYColumn();
+			case ExtensionModelPackage.YSORT_COLUMN: return createYSortColumn();
+			case ExtensionModelPackage.YTREE: return createYTree();
+			case ExtensionModelPackage.YOPTIONS_GROUP: return createYOptionsGroup();
+			case ExtensionModelPackage.YLIST: return createYList();
+			case ExtensionModelPackage.YLABEL: return createYLabel();
+			case ExtensionModelPackage.YIMAGE: return createYImage();
+			case ExtensionModelPackage.YTEXT_FIELD: return createYTextField();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD: return createYBeanReferenceField();
+			case ExtensionModelPackage.YTEXT_AREA: return createYTextArea();
+			case ExtensionModelPackage.YCHECK_BOX: return createYCheckBox();
+			case ExtensionModelPackage.YBROWSER: return createYBrowser();
+			case ExtensionModelPackage.YDATE_TIME: return createYDateTime();
+			case ExtensionModelPackage.YDECIMAL_FIELD: return createYDecimalField();
+			case ExtensionModelPackage.YNUMERIC_FIELD: return createYNumericField();
+			case ExtensionModelPackage.YCOMBO_BOX: return createYComboBox();
+			case ExtensionModelPackage.YBUTTON: return createYButton();
+			case ExtensionModelPackage.YSLIDER: return createYSlider();
+			case ExtensionModelPackage.YTOGGLE_BUTTON: return createYToggleButton();
+			case ExtensionModelPackage.YPROGRESS_BAR: return createYProgressBar();
+			case ExtensionModelPackage.YTAB_SHEET: return createYTabSheet();
+			case ExtensionModelPackage.YTAB: return createYTab();
+			case ExtensionModelPackage.YMASTER_DETAIL: return createYMasterDetail();
+			case ExtensionModelPackage.YFORM_LAYOUT: return createYFormLayout();
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE: return createYFormLayoutCellStyle();
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD: return createYTextSearchField();
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD: return createYBooleanSearchField();
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD: return createYNumericSearchField();
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD: return createYReferenceSearchField();
+			case ExtensionModelPackage.YPANEL: return createYPanel();
+			case ExtensionModelPackage.YSPLIT_PANEL: return createYSplitPanel();
+			case ExtensionModelPackage.YSEARCH_PANEL: return createYSearchPanel();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP: return createYEnumOptionsGroup();
+			case ExtensionModelPackage.YENUM_LIST: return createYEnumList();
+			case ExtensionModelPackage.YENUM_COMBO_BOX: return createYEnumComboBox();
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND: return createYAddToTableCommand();
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND: return createYRemoveFromTableCommand();
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT: return createYBrowserStreamInput();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND: return createYSetNewBeanInstanceCommand();
+			case ExtensionModelPackage.YCSS_LAYOUT: return createYCssLayout();
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE: return createYCssLayoutCellStyle();
+			case ExtensionModelPackage.YFILTER: return createYFilter();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT: return createYAbsoluteLayout();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE: return createYAbsoluteLayoutCellStyle();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD: return createYSuggestTextField();
+			case ExtensionModelPackage.YPASSWORD_FIELD: return createYPasswordField();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case ExtensionModelPackage.YSELECTION_TYPE:
+				return createYSelectionTypeFromString(eDataType, initialValue);
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_OPTION:
+				return createYBooleanSearchOptionFromString(eDataType, initialValue);
+			case ExtensionModelPackage.YSEARCH_WILDCARDS:
+				return createYSearchWildcardsFromString(eDataType, initialValue);
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD_EVENTS:
+				return createYSuggestTextFieldEventsFromString(eDataType, initialValue);
+			case ExtensionModelPackage.YBUTTON_CLICK_LISTENER:
+				return createYButtonClickListenerFromString(eDataType, initialValue);
+			case ExtensionModelPackage.YINPUT_STREAM:
+				return createYInputStreamFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case ExtensionModelPackage.YSELECTION_TYPE:
+				return convertYSelectionTypeToString(eDataType, instanceValue);
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_OPTION:
+				return convertYBooleanSearchOptionToString(eDataType, instanceValue);
+			case ExtensionModelPackage.YSEARCH_WILDCARDS:
+				return convertYSearchWildcardsToString(eDataType, instanceValue);
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD_EVENTS:
+				return convertYSuggestTextFieldEventsToString(eDataType, instanceValue);
+			case ExtensionModelPackage.YBUTTON_CLICK_LISTENER:
+				return convertYButtonClickListenerToString(eDataType, instanceValue);
+			case ExtensionModelPackage.YINPUT_STREAM:
+				return convertYInputStreamToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text field
+	 * @generated
+	 */
+	public YTextField createYTextField() {
+		YTextFieldImpl yTextField = new YTextFieldImpl();
+		return yTextField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field
+	 * @generated
+	 */
+	public YBeanReferenceField createYBeanReferenceField() {
+		YBeanReferenceFieldImpl yBeanReferenceField = new YBeanReferenceFieldImpl();
+		return yBeanReferenceField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y grid layout
+	 * @generated
+	 */
+	public YGridLayout createYGridLayout() {
+		YGridLayoutImpl yGridLayout = new YGridLayoutImpl();
+		return yGridLayout;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y grid layout cell style
+	 * @generated
+	 */
+	public YGridLayoutCellStyle createYGridLayoutCellStyle() {
+		YGridLayoutCellStyleImpl yGridLayoutCellStyle = new YGridLayoutCellStyleImpl();
+		return yGridLayoutCellStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y horizontal layout
+	 * @generated
+	 */
+	public YHorizontalLayout createYHorizontalLayout() {
+		YHorizontalLayoutImpl yHorizontalLayout = new YHorizontalLayoutImpl();
+		return yHorizontalLayout;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y horizontal layout cell style
+	 * @generated
+	 */
+	public YHorizontalLayoutCellStyle createYHorizontalLayoutCellStyle() {
+		YHorizontalLayoutCellStyleImpl yHorizontalLayoutCellStyle = new YHorizontalLayoutCellStyleImpl();
+		return yHorizontalLayoutCellStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y vertical layout
+	 * @generated
+	 */
+	public YVerticalLayout createYVerticalLayout() {
+		YVerticalLayoutImpl yVerticalLayout = new YVerticalLayoutImpl();
+		return yVerticalLayout;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y vertical layout cell style
+	 * @generated
+	 */
+	public YVerticalLayoutCellStyle createYVerticalLayoutCellStyle() {
+		YVerticalLayoutCellStyleImpl yVerticalLayoutCellStyle = new YVerticalLayoutCellStyleImpl();
+		return yVerticalLayoutCellStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y span info
+	 * @generated
+	 */
+	public YSpanInfo createYSpanInfo() {
+		YSpanInfoImpl ySpanInfo = new YSpanInfoImpl();
+		return ySpanInfo;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table
+	 * @generated
+	 */
+	public YTable createYTable() {
+		YTableImpl yTable = new YTableImpl();
+		return yTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column
+	 * @generated
+	 */
+	public YColumn createYColumn() {
+		YColumnImpl yColumn = new YColumnImpl();
+		return yColumn;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSortColumn createYSortColumn() {
+		YSortColumnImpl ySortColumn = new YSortColumnImpl();
+		return ySortColumn;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y label
+	 * @generated
+	 */
+	public YLabel createYLabel() {
+		YLabelImpl yLabel = new YLabelImpl();
+		return yLabel;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y image
+	 * @generated
+	 */
+	public YImage createYImage() {
+		YImageImpl yImage = new YImageImpl();
+		return yImage;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area
+	 * @generated
+	 */
+	public YTextArea createYTextArea() {
+		YTextAreaImpl yTextArea = new YTextAreaImpl();
+		return yTextArea;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y check box
+	 * @generated
+	 */
+	public YCheckBox createYCheckBox() {
+		YCheckBoxImpl yCheckBox = new YCheckBoxImpl();
+		return yCheckBox;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser
+	 * @generated
+	 */
+	public YBrowser createYBrowser() {
+		YBrowserImpl yBrowser = new YBrowserImpl();
+		return yBrowser;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time
+	 * @generated
+	 */
+	public YDateTime createYDateTime() {
+		YDateTimeImpl yDateTime = new YDateTimeImpl();
+		return yDateTime;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y decimal field
+	 * @generated
+	 */
+	public YDecimalField createYDecimalField() {
+		YDecimalFieldImpl yDecimalField = new YDecimalFieldImpl();
+		return yDecimalField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric field
+	 * @generated
+	 */
+	public YNumericField createYNumericField() {
+		YNumericFieldImpl yNumericField = new YNumericFieldImpl();
+		return yNumericField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box
+	 * @generated
+	 */
+	public YComboBox createYComboBox() {
+		YComboBoxImpl yComboBox = new YComboBoxImpl();
+		return yComboBox;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list
+	 * @generated
+	 */
+	public YList createYList() {
+		YListImpl yList = new YListImpl();
+		return yList;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y button
+	 * @generated
+	 */
+	public YButton createYButton() {
+		YButtonImpl yButton = new YButtonImpl();
+		return yButton;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y slider
+	 * @generated
+	 */
+	public YSlider createYSlider() {
+		YSliderImpl ySlider = new YSliderImpl();
+		return ySlider;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y toggle button
+	 * @generated
+	 */
+	public YToggleButton createYToggleButton() {
+		YToggleButtonImpl yToggleButton = new YToggleButtonImpl();
+		return yToggleButton;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y progress bar
+	 * @generated
+	 */
+	public YProgressBar createYProgressBar() {
+		YProgressBarImpl yProgressBar = new YProgressBarImpl();
+		return yProgressBar;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab sheet
+	 * @generated
+	 */
+	public YTabSheet createYTabSheet() {
+		YTabSheetImpl yTabSheet = new YTabSheetImpl();
+		return yTabSheet;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab
+	 * @generated
+	 */
+	public YTab createYTab() {
+		YTabImpl yTab = new YTabImpl();
+		return yTab;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail
+	 * @generated
+	 */
+	public YMasterDetail createYMasterDetail() {
+		YMasterDetailImpl yMasterDetail = new YMasterDetailImpl();
+		return yMasterDetail;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y form layout
+	 * @generated
+	 */
+	public YFormLayout createYFormLayout() {
+		YFormLayoutImpl yFormLayout = new YFormLayoutImpl();
+		return yFormLayout;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y form layout cell style
+	 * @generated
+	 */
+	public YFormLayoutCellStyle createYFormLayoutCellStyle() {
+		YFormLayoutCellStyleImpl yFormLayoutCellStyle = new YFormLayoutCellStyleImpl();
+		return yFormLayoutCellStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text search field
+	 * @generated
+	 */
+	public YTextSearchField createYTextSearchField() {
+		YTextSearchFieldImpl yTextSearchField = new YTextSearchFieldImpl();
+		return yTextSearchField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y boolean search field
+	 * @generated
+	 */
+	public YBooleanSearchField createYBooleanSearchField() {
+		YBooleanSearchFieldImpl yBooleanSearchField = new YBooleanSearchFieldImpl();
+		return yBooleanSearchField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric search field
+	 * @generated
+	 */
+	public YNumericSearchField createYNumericSearchField() {
+		YNumericSearchFieldImpl yNumericSearchField = new YNumericSearchFieldImpl();
+		return yNumericSearchField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y reference search field
+	 * @generated
+	 */
+	public YReferenceSearchField createYReferenceSearchField() {
+		YReferenceSearchFieldImpl yReferenceSearchField = new YReferenceSearchFieldImpl();
+		return yReferenceSearchField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y panel
+	 * @generated
+	 */
+	public YPanel createYPanel() {
+		YPanelImpl yPanel = new YPanelImpl();
+		return yPanel;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y split panel
+	 * @generated
+	 */
+	public YSplitPanel createYSplitPanel() {
+		YSplitPanelImpl ySplitPanel = new YSplitPanelImpl();
+		return ySplitPanel;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y search panel
+	 * @generated
+	 */
+	public YSearchPanel createYSearchPanel() {
+		YSearchPanelImpl ySearchPanel = new YSearchPanelImpl();
+		return ySearchPanel;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group
+	 * @generated
+	 */
+	public YEnumOptionsGroup createYEnumOptionsGroup() {
+		YEnumOptionsGroupImpl yEnumOptionsGroup = new YEnumOptionsGroupImpl();
+		return yEnumOptionsGroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list
+	 * @generated
+	 */
+	public YEnumList createYEnumList() {
+		YEnumListImpl yEnumList = new YEnumListImpl();
+		return yEnumList;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum combo box
+	 * @generated
+	 */
+	public YEnumComboBox createYEnumComboBox() {
+		YEnumComboBoxImpl yEnumComboBox = new YEnumComboBoxImpl();
+		return yEnumComboBox;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y add to table command
+	 * @generated
+	 */
+	public YAddToTableCommand createYAddToTableCommand() {
+		YAddToTableCommandImpl yAddToTableCommand = new YAddToTableCommandImpl();
+		return yAddToTableCommand;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y remove from table command
+	 * @generated
+	 */
+	public YRemoveFromTableCommand createYRemoveFromTableCommand() {
+		YRemoveFromTableCommandImpl yRemoveFromTableCommand = new YRemoveFromTableCommandImpl();
+		return yRemoveFromTableCommand;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser stream input
+	 * @generated
+	 */
+	public YBrowserStreamInput createYBrowserStreamInput() {
+		YBrowserStreamInputImpl yBrowserStreamInput = new YBrowserStreamInputImpl();
+		return yBrowserStreamInput;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y set new bean instance command
+	 * @generated
+	 */
+	public YSetNewBeanInstanceCommand createYSetNewBeanInstanceCommand() {
+		YSetNewBeanInstanceCommandImpl ySetNewBeanInstanceCommand = new YSetNewBeanInstanceCommandImpl();
+		return ySetNewBeanInstanceCommand;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y css layout
+	 * @generated
+	 */
+	public YCssLayout createYCssLayout() {
+		YCssLayoutImpl yCssLayout = new YCssLayoutImpl();
+		return yCssLayout;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y css layout cell style
+	 * @generated
+	 */
+	public YCssLayoutCellStyle createYCssLayoutCellStyle() {
+		YCssLayoutCellStyleImpl yCssLayoutCellStyle = new YCssLayoutCellStyleImpl();
+		return yCssLayoutCellStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y filter
+	 * @generated
+	 */
+	public YFilter createYFilter() {
+		YFilterImpl yFilter = new YFilterImpl();
+		return yFilter;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout
+	 * @generated
+	 */
+	public YAbsoluteLayout createYAbsoluteLayout() {
+		YAbsoluteLayoutImpl yAbsoluteLayout = new YAbsoluteLayoutImpl();
+		return yAbsoluteLayout;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout cell style
+	 * @generated
+	 */
+	public YAbsoluteLayoutCellStyle createYAbsoluteLayoutCellStyle() {
+		YAbsoluteLayoutCellStyleImpl yAbsoluteLayoutCellStyle = new YAbsoluteLayoutCellStyleImpl();
+		return yAbsoluteLayoutCellStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field
+	 * @generated
+	 */
+	public YSuggestTextField createYSuggestTextField() {
+		YSuggestTextFieldImpl ySuggestTextField = new YSuggestTextFieldImpl();
+		return ySuggestTextField;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YPasswordField createYPasswordField() {
+		YPasswordFieldImpl yPasswordField = new YPasswordFieldImpl();
+		return yPasswordField;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree
+	 * @generated
+	 */
+	public YTree createYTree() {
+		YTreeImpl yTree = new YTreeImpl();
+		return yTree;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group
+	 * @generated
+	 */
+	public YOptionsGroup createYOptionsGroup() {
+		YOptionsGroupImpl yOptionsGroup = new YOptionsGroupImpl();
+		return yOptionsGroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y selection type
+	 * @generated
+	 */
+	public YSelectionType createYSelectionTypeFromString(EDataType eDataType, String initialValue) {
+		YSelectionType result = YSelectionType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYSelectionTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y boolean search option
+	 * @generated
+	 */
+	public YBooleanSearchOption createYBooleanSearchOptionFromString(EDataType eDataType, String initialValue) {
+		YBooleanSearchOption result = YBooleanSearchOption.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYBooleanSearchOptionToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y search wildcards
+	 * @generated
+	 */
+	public YSearchWildcards createYSearchWildcardsFromString(EDataType eDataType, String initialValue) {
+		YSearchWildcards result = YSearchWildcards.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYSearchWildcardsToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSuggestTextFieldEvents createYSuggestTextFieldEventsFromString(EDataType eDataType, String initialValue) {
+		YSuggestTextFieldEvents result = YSuggestTextFieldEvents.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertYSuggestTextFieldEventsToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the y button click listener
+	 * @generated
+	 */
+	public YButtonClickListener createYButtonClickListenerFromString(EDataType eDataType, String initialValue) {
+		return (YButtonClickListener)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYButtonClickListenerToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param initialValue
+	 *            the initial value
+	 * @return the input stream
+	 * @generated
+	 */
+	public InputStream createYInputStreamFromString(EDataType eDataType, String initialValue) {
+		return (InputStream)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param eDataType
+	 *            the e data type
+	 * @param instanceValue
+	 *            the instance value
+	 * @return the string
+	 * @generated
+	 */
+	public String convertYInputStreamToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the extension model package
+	 * @generated
+	 */
+	public ExtensionModelPackage getExtensionModelPackage() {
+		return (ExtensionModelPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the package
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static ExtensionModelPackage getPackage() {
+		return ExtensionModelPackage.eINSTANCE;
+	}
+
+} //ExtensionModelFactoryImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/ExtensionModelPackageImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/ExtensionModelPackageImpl.java
new file mode 100644
index 0000000..65a2e4b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/ExtensionModelPackageImpl.java
@@ -0,0 +1,4924 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.io.InputStream;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
+import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.impl.ExtDatatypesPackageImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YColumn;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFilter;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YImage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YInput;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YLabel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSlider;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTree;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class ExtensionModelPackageImpl extends EPackageImpl implements
+		ExtensionModelPackage {
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTextFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yBeanReferenceFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yGridLayoutEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yGridLayoutCellStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yHorizontalLayoutEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yHorizontalLayoutCellStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yVerticalLayoutEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yVerticalLayoutCellStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass ySpanInfoEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yColumnEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ySortColumnEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yLabelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yImageEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTextAreaEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yCheckBoxEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yBrowserEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yDateTimeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yInputEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yDecimalFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yNumericFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yComboBoxEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yListEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yButtonEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass ySliderEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yToggleButtonEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yProgressBarEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTabSheetEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTabEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yMasterDetailEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yFormLayoutEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yFormLayoutCellStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass ySearchFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTextSearchFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yBooleanSearchFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yNumericSearchFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yReferenceSearchFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yPanelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass ySplitPanelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass ySearchPanelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yEnumOptionsGroupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yEnumListEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yEnumComboBoxEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yBeanServiceConsumerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yAddToTableCommandEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yRemoveFromTableCommandEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yBrowserStreamInputEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass ySetNewBeanInstanceCommandEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yCssLayoutEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yCssLayoutCellStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yFilterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yAbsoluteLayoutEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yAbsoluteLayoutCellStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass ySuggestTextFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass yPasswordFieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yTreeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EClass yOptionsGroupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EEnum ySelectionTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EEnum yBooleanSearchOptionEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EEnum ySearchWildcardsEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum ySuggestTextFieldEventsEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EDataType yButtonClickListenerEDataType = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private EDataType yInputStreamEDataType = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the
+	 * package package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory
+	 * method {@link #init init()}, which also performs initialization of the
+	 * package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private ExtensionModelPackageImpl() {
+		super(eNS_URI, ExtensionModelFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model,
+	 * and for any others upon which it depends.
+	 * 
+	 * <p>
+	 * This method is used to initialize {@link ExtensionModelPackage#eINSTANCE}
+	 * when that field is accessed. Clients should not invoke it directly.
+	 * Instead, they should simply access that field to obtain the package. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @return the extension model package
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static ExtensionModelPackage init() {
+		if (isInited) return (ExtensionModelPackage)EPackage.Registry.INSTANCE.getEPackage(ExtensionModelPackage.eNS_URI);
+
+		// Obtain or create and register package
+		ExtensionModelPackageImpl theExtensionModelPackage = (ExtensionModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ExtensionModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ExtensionModelPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		BindingPackage.eINSTANCE.eClass();
+		CoreModelPackage.eINSTANCE.eClass();
+		DatatypesPackage.eINSTANCE.eClass();
+		ValidationPackage.eINSTANCE.eClass();
+		VisibilityPackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		ExtDatatypesPackageImpl theExtDatatypesPackage = (ExtDatatypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ExtDatatypesPackage.eNS_URI) instanceof ExtDatatypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ExtDatatypesPackage.eNS_URI) : ExtDatatypesPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theExtensionModelPackage.createPackageContents();
+		theExtDatatypesPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theExtensionModelPackage.initializePackageContents();
+		theExtDatatypesPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theExtensionModelPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(ExtensionModelPackage.eNS_URI, theExtensionModelPackage);
+		return theExtensionModelPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text field
+	 * @generated
+	 */
+	public EClass getYTextField() {
+		return yTextFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text field_ datatype
+	 * @generated
+	 */
+	public EReference getYTextField_Datatype() {
+		return (EReference)yTextFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text field_ datadescription
+	 * @generated
+	 */
+	public EReference getYTextField_Datadescription() {
+		return (EReference)yTextFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text field_ value
+	 * @generated
+	 */
+	public EAttribute getYTextField_Value() {
+		return (EAttribute)yTextFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field
+	 * @generated
+	 */
+	public EClass getYBeanReferenceField() {
+		return yBeanReferenceFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ datadescription
+	 * @generated
+	 */
+	public EReference getYBeanReferenceField_Datadescription() {
+		return (EReference)yBeanReferenceFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ value
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_Value() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ type
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_Type() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_EmfNsURI() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_TypeQualifiedName() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ in memory bean provider
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_InMemoryBeanProvider() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ in memory bean provider qualified
+	 *         name
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_InMemoryBeanProviderQualifiedName() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ caption property path
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_CaptionPropertyPath() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ image property path
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_ImagePropertyPath() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ description property
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_DescriptionProperty() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ description
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_Description() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ reference source type
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_ReferenceSourceType() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ reference source type qualified name
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_ReferenceSourceTypeQualifiedName() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean reference field_ reference source type property
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_ReferenceSourceTypeProperty() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYBeanReferenceField_Required() {
+		return (EAttribute)yBeanReferenceFieldEClass.getEStructuralFeatures().get(14);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y grid layout
+	 * @generated
+	 */
+	public EClass getYGridLayout() {
+		return yGridLayoutEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y grid layout_ cell styles
+	 * @generated
+	 */
+	public EReference getYGridLayout_CellStyles() {
+		return (EReference)yGridLayoutEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y grid layout_ columns
+	 * @generated
+	 */
+	public EAttribute getYGridLayout_Columns() {
+		return (EAttribute)yGridLayoutEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y grid layout cell style
+	 * @generated
+	 */
+	public EClass getYGridLayoutCellStyle() {
+		return yGridLayoutCellStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y grid layout cell style_ target
+	 * @generated
+	 */
+	public EReference getYGridLayoutCellStyle_Target() {
+		return (EReference)yGridLayoutCellStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y grid layout cell style_ alignment
+	 * @generated
+	 */
+	public EAttribute getYGridLayoutCellStyle_Alignment() {
+		return (EAttribute)yGridLayoutCellStyleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y grid layout cell style_ span info
+	 * @generated
+	 */
+	public EReference getYGridLayoutCellStyle_SpanInfo() {
+		return (EReference)yGridLayoutCellStyleEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y horizontal layout
+	 * @generated
+	 */
+	public EClass getYHorizontalLayout() {
+		return yHorizontalLayoutEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y horizontal layout_ cell styles
+	 * @generated
+	 */
+	public EReference getYHorizontalLayout_CellStyles() {
+		return (EReference)yHorizontalLayoutEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y horizontal layout cell style
+	 * @generated
+	 */
+	public EClass getYHorizontalLayoutCellStyle() {
+		return yHorizontalLayoutCellStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y horizontal layout cell style_ target
+	 * @generated
+	 */
+	public EReference getYHorizontalLayoutCellStyle_Target() {
+		return (EReference)yHorizontalLayoutCellStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y horizontal layout cell style_ alignment
+	 * @generated
+	 */
+	public EAttribute getYHorizontalLayoutCellStyle_Alignment() {
+		return (EAttribute)yHorizontalLayoutCellStyleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y vertical layout
+	 * @generated
+	 */
+	public EClass getYVerticalLayout() {
+		return yVerticalLayoutEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y vertical layout_ cell styles
+	 * @generated
+	 */
+	public EReference getYVerticalLayout_CellStyles() {
+		return (EReference)yVerticalLayoutEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y vertical layout cell style
+	 * @generated
+	 */
+	public EClass getYVerticalLayoutCellStyle() {
+		return yVerticalLayoutCellStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y vertical layout cell style_ target
+	 * @generated
+	 */
+	public EReference getYVerticalLayoutCellStyle_Target() {
+		return (EReference)yVerticalLayoutCellStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y vertical layout cell style_ alignment
+	 * @generated
+	 */
+	public EAttribute getYVerticalLayoutCellStyle_Alignment() {
+		return (EAttribute)yVerticalLayoutCellStyleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y span info
+	 * @generated
+	 */
+	public EClass getYSpanInfo() {
+		return ySpanInfoEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y span info_ column from
+	 * @generated
+	 */
+	public EAttribute getYSpanInfo_ColumnFrom() {
+		return (EAttribute)ySpanInfoEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y span info_ row from
+	 * @generated
+	 */
+	public EAttribute getYSpanInfo_RowFrom() {
+		return (EAttribute)ySpanInfoEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y span info_ column to
+	 * @generated
+	 */
+	public EAttribute getYSpanInfo_ColumnTo() {
+		return (EAttribute)ySpanInfoEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y span info_ row to
+	 * @generated
+	 */
+	public EAttribute getYSpanInfo_RowTo() {
+		return (EAttribute)ySpanInfoEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table
+	 * @generated
+	 */
+	public EClass getYTable() {
+		return yTableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ datatype
+	 * @generated
+	 */
+	public EReference getYTable_Datatype() {
+		return (EReference)yTableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ datadescription
+	 * @generated
+	 */
+	public EReference getYTable_Datadescription() {
+		return (EReference)yTableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ selection type
+	 * @generated
+	 */
+	public EAttribute getYTable_SelectionType() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ selection
+	 * @generated
+	 */
+	public EAttribute getYTable_Selection() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ multi selection
+	 * @generated
+	 */
+	public EAttribute getYTable_MultiSelection() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ collection
+	 * @generated
+	 */
+	public EAttribute getYTable_Collection() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ type
+	 * @generated
+	 */
+	public EAttribute getYTable_Type() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYTable_EmfNsURI() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYTable_TypeQualifiedName() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ columns
+	 * @generated
+	 */
+	public EReference getYTable_Columns() {
+		return (EReference)yTableEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ item image property
+	 * @generated
+	 */
+	public EAttribute getYTable_ItemImageProperty() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ filter
+	 * @generated
+	 */
+	public EAttribute getYTable_Filter() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table_ refresh
+	 * @generated
+	 */
+	public EAttribute getYTable_Refresh() {
+		return (EAttribute)yTableEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYTable_SortOrder() {
+		return (EReference)yTableEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column
+	 * @generated
+	 */
+	public EClass getYColumn() {
+		return yColumnEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ icon
+	 * @generated
+	 */
+	public EAttribute getYColumn_Icon() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ visible
+	 * @generated
+	 */
+	public EAttribute getYColumn_Visible() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ datadescription
+	 * @generated
+	 */
+	public EReference getYColumn_Datadescription() {
+		return (EReference)yColumnEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ orphan datadescriptions
+	 * @generated
+	 */
+	public EReference getYColumn_OrphanDatadescriptions() {
+		return (EReference)yColumnEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ orderable
+	 * @generated
+	 */
+	public EAttribute getYColumn_Orderable() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ collapsed
+	 * @generated
+	 */
+	public EAttribute getYColumn_Collapsed() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ collapsible
+	 * @generated
+	 */
+	public EAttribute getYColumn_Collapsible() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ alignment
+	 * @generated
+	 */
+	public EAttribute getYColumn_Alignment() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ expand ratio
+	 * @generated
+	 */
+	public EAttribute getYColumn_ExpandRatio() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ property path
+	 * @generated
+	 */
+	public EAttribute getYColumn_PropertyPath() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ converter
+	 * @generated
+	 */
+	public EReference getYColumn_Converter() {
+		return (EReference)yColumnEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ type
+	 * @generated
+	 */
+	public EAttribute getYColumn_Type() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y column_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYColumn_TypeQualifiedName() {
+		return (EAttribute)yColumnEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYSortColumn() {
+		return ySortColumnEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSortColumn_PropertyPath() {
+		return (EAttribute)ySortColumnEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSortColumn_Type() {
+		return (EAttribute)ySortColumnEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSortColumn_TypeQualifiedName() {
+		return (EAttribute)ySortColumnEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSortColumn_Asc() {
+		return (EAttribute)ySortColumnEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y label
+	 * @generated
+	 */
+	public EClass getYLabel() {
+		return yLabelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y label_ datadescription
+	 * @generated
+	 */
+	public EReference getYLabel_Datadescription() {
+		return (EReference)yLabelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y label_ value
+	 * @generated
+	 */
+	public EAttribute getYLabel_Value() {
+		return (EAttribute)yLabelEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y image
+	 * @generated
+	 */
+	public EClass getYImage() {
+		return yImageEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y image_ datadescription
+	 * @generated
+	 */
+	public EReference getYImage_Datadescription() {
+		return (EReference)yImageEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y image_ value
+	 * @generated
+	 */
+	public EAttribute getYImage_Value() {
+		return (EAttribute)yImageEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area
+	 * @generated
+	 */
+	public EClass getYTextArea() {
+		return yTextAreaEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area_ datadescription
+	 * @generated
+	 */
+	public EReference getYTextArea_Datadescription() {
+		return (EReference)yTextAreaEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area_ datatype
+	 * @generated
+	 */
+	public EReference getYTextArea_Datatype() {
+		return (EReference)yTextAreaEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area_ value
+	 * @generated
+	 */
+	public EAttribute getYTextArea_Value() {
+		return (EAttribute)yTextAreaEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area_ word wrap
+	 * @generated
+	 */
+	public EAttribute getYTextArea_WordWrap() {
+		return (EAttribute)yTextAreaEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area_ rows
+	 * @generated
+	 */
+	public EAttribute getYTextArea_Rows() {
+		return (EAttribute)yTextAreaEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y check box
+	 * @generated
+	 */
+	public EClass getYCheckBox() {
+		return yCheckBoxEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y check box_ datadescription
+	 * @generated
+	 */
+	public EReference getYCheckBox_Datadescription() {
+		return (EReference)yCheckBoxEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y check box_ datatype
+	 * @generated
+	 */
+	public EReference getYCheckBox_Datatype() {
+		return (EReference)yCheckBoxEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y check box_ value
+	 * @generated
+	 */
+	public EAttribute getYCheckBox_Value() {
+		return (EAttribute)yCheckBoxEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser
+	 * @generated
+	 */
+	public EClass getYBrowser() {
+		return yBrowserEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser_ datatype
+	 * @generated
+	 */
+	public EReference getYBrowser_Datatype() {
+		return (EReference)yBrowserEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser_ datadescription
+	 * @generated
+	 */
+	public EReference getYBrowser_Datadescription() {
+		return (EReference)yBrowserEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser_ value
+	 * @generated
+	 */
+	public EAttribute getYBrowser_Value() {
+		return (EAttribute)yBrowserEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time
+	 * @generated
+	 */
+	public EClass getYDateTime() {
+		return yDateTimeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time_ datatype
+	 * @generated
+	 */
+	public EReference getYDateTime_Datatype() {
+		return (EReference)yDateTimeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time_ datadescription
+	 * @generated
+	 */
+	public EReference getYDateTime_Datadescription() {
+		return (EReference)yDateTimeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time_ value
+	 * @generated
+	 */
+	public EAttribute getYDateTime_Value() {
+		return (EAttribute)yDateTimeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y input
+	 * @generated
+	 */
+	public EClass getYInput() {
+		return yInputEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y decimal field
+	 * @generated
+	 */
+	public EClass getYDecimalField() {
+		return yDecimalFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y decimal field_ datatype
+	 * @generated
+	 */
+	public EReference getYDecimalField_Datatype() {
+		return (EReference)yDecimalFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y decimal field_ datadescription
+	 * @generated
+	 */
+	public EReference getYDecimalField_Datadescription() {
+		return (EReference)yDecimalFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y decimal field_ value
+	 * @generated
+	 */
+	public EAttribute getYDecimalField_Value() {
+		return (EAttribute)yDecimalFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric field
+	 * @generated
+	 */
+	public EClass getYNumericField() {
+		return yNumericFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric field_ datatype
+	 * @generated
+	 */
+	public EReference getYNumericField_Datatype() {
+		return (EReference)yNumericFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric field_ datadescription
+	 * @generated
+	 */
+	public EReference getYNumericField_Datadescription() {
+		return (EReference)yNumericFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric field_ value
+	 * @generated
+	 */
+	public EAttribute getYNumericField_Value() {
+		return (EAttribute)yNumericFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box
+	 * @generated
+	 */
+	public EClass getYComboBox() {
+		return yComboBoxEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ datadescription
+	 * @generated
+	 */
+	public EReference getYComboBox_Datadescription() {
+		return (EReference)yComboBoxEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ datatype
+	 * @generated
+	 */
+	public EReference getYComboBox_Datatype() {
+		return (EReference)yComboBoxEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ selection
+	 * @generated
+	 */
+	public EAttribute getYComboBox_Selection() {
+		return (EAttribute)yComboBoxEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ collection
+	 * @generated
+	 */
+	public EAttribute getYComboBox_Collection() {
+		return (EAttribute)yComboBoxEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ type
+	 * @generated
+	 */
+	public EAttribute getYComboBox_Type() {
+		return (EAttribute)yComboBoxEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYComboBox_EmfNsURI() {
+		return (EAttribute)yComboBoxEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYComboBox_TypeQualifiedName() {
+		return (EAttribute)yComboBoxEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ caption property
+	 * @generated
+	 */
+	public EAttribute getYComboBox_CaptionProperty() {
+		return (EAttribute)yComboBoxEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ image property
+	 * @generated
+	 */
+	public EAttribute getYComboBox_ImageProperty() {
+		return (EAttribute)yComboBoxEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ description property
+	 * @generated
+	 */
+	public EAttribute getYComboBox_DescriptionProperty() {
+		return (EAttribute)yComboBoxEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box_ description
+	 * @generated
+	 */
+	public EAttribute getYComboBox_Description() {
+		return (EAttribute)yComboBoxEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list
+	 * @generated
+	 */
+	public EClass getYList() {
+		return yListEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ datadescription
+	 * @generated
+	 */
+	public EReference getYList_Datadescription() {
+		return (EReference)yListEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ datatype
+	 * @generated
+	 */
+	public EReference getYList_Datatype() {
+		return (EReference)yListEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ selection type
+	 * @generated
+	 */
+	public EAttribute getYList_SelectionType() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ selection
+	 * @generated
+	 */
+	public EAttribute getYList_Selection() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ multi selection
+	 * @generated
+	 */
+	public EAttribute getYList_MultiSelection() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ collection
+	 * @generated
+	 */
+	public EAttribute getYList_Collection() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ type
+	 * @generated
+	 */
+	public EAttribute getYList_Type() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYList_EmfNsURI() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYList_TypeQualifiedName() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ caption property
+	 * @generated
+	 */
+	public EAttribute getYList_CaptionProperty() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ image property
+	 * @generated
+	 */
+	public EAttribute getYList_ImageProperty() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ description property
+	 * @generated
+	 */
+	public EAttribute getYList_DescriptionProperty() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list_ description
+	 * @generated
+	 */
+	public EAttribute getYList_Description() {
+		return (EAttribute)yListEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y button
+	 * @generated
+	 */
+	public EClass getYButton() {
+		return yButtonEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y button_ datadescription
+	 * @generated
+	 */
+	public EReference getYButton_Datadescription() {
+		return (EReference)yButtonEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y button_ click listeners
+	 * @generated
+	 */
+	public EAttribute getYButton_ClickListeners() {
+		return (EAttribute)yButtonEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y button_ last click time
+	 * @generated
+	 */
+	public EAttribute getYButton_LastClickTime() {
+		return (EAttribute)yButtonEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYButton_Image() {
+		return (EAttribute)yButtonEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y slider
+	 * @generated
+	 */
+	public EClass getYSlider() {
+		return ySliderEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y slider_ datadescription
+	 * @generated
+	 */
+	public EReference getYSlider_Datadescription() {
+		return (EReference)ySliderEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y slider_ value
+	 * @generated
+	 */
+	public EAttribute getYSlider_Value() {
+		return (EAttribute)ySliderEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y slider_ max value
+	 * @generated
+	 */
+	public EAttribute getYSlider_MaxValue() {
+		return (EAttribute)ySliderEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y slider_ min value
+	 * @generated
+	 */
+	public EAttribute getYSlider_MinValue() {
+		return (EAttribute)ySliderEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y slider_ resolution
+	 * @generated
+	 */
+	public EAttribute getYSlider_Resolution() {
+		return (EAttribute)ySliderEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y slider_ orientation
+	 * @generated
+	 */
+	public EAttribute getYSlider_Orientation() {
+		return (EAttribute)ySliderEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y toggle button
+	 * @generated
+	 */
+	public EClass getYToggleButton() {
+		return yToggleButtonEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y toggle button_ datadescription
+	 * @generated
+	 */
+	public EReference getYToggleButton_Datadescription() {
+		return (EReference)yToggleButtonEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y progress bar
+	 * @generated
+	 */
+	public EClass getYProgressBar() {
+		return yProgressBarEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y progress bar_ datatype
+	 * @generated
+	 */
+	public EReference getYProgressBar_Datatype() {
+		return (EReference)yProgressBarEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y progress bar_ datadescription
+	 * @generated
+	 */
+	public EReference getYProgressBar_Datadescription() {
+		return (EReference)yProgressBarEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y progress bar_ value
+	 * @generated
+	 */
+	public EAttribute getYProgressBar_Value() {
+		return (EAttribute)yProgressBarEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab sheet
+	 * @generated
+	 */
+	public EClass getYTabSheet() {
+		return yTabSheetEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab sheet_ tabs
+	 * @generated
+	 */
+	public EReference getYTabSheet_Tabs() {
+		return (EReference)yTabSheetEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab
+	 * @generated
+	 */
+	public EClass getYTab() {
+		return yTabEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab_ parent
+	 * @generated
+	 */
+	public EReference getYTab_Parent() {
+		return (EReference)yTabEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab_ embeddable
+	 * @generated
+	 */
+	public EReference getYTab_Embeddable() {
+		return (EReference)yTabEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab_ datadescription
+	 * @generated
+	 */
+	public EReference getYTab_Datadescription() {
+		return (EReference)yTabEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab_ orphan datadescriptions
+	 * @generated
+	 */
+	public EReference getYTab_OrphanDatadescriptions() {
+		return (EReference)yTabEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail
+	 * @generated
+	 */
+	public EClass getYMasterDetail() {
+		return yMasterDetailEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail_ datatype
+	 * @generated
+	 */
+	public EReference getYMasterDetail_Datatype() {
+		return (EReference)yMasterDetailEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail_ datadescription
+	 * @generated
+	 */
+	public EReference getYMasterDetail_Datadescription() {
+		return (EReference)yMasterDetailEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail_ selection
+	 * @generated
+	 */
+	public EAttribute getYMasterDetail_Selection() {
+		return (EAttribute)yMasterDetailEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail_ collection
+	 * @generated
+	 */
+	public EAttribute getYMasterDetail_Collection() {
+		return (EAttribute)yMasterDetailEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail_ type
+	 * @generated
+	 */
+	public EAttribute getYMasterDetail_Type() {
+		return (EAttribute)yMasterDetailEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYMasterDetail_EmfNsURI() {
+		return (EAttribute)yMasterDetailEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail_ master element
+	 * @generated
+	 */
+	public EReference getYMasterDetail_MasterElement() {
+		return (EReference)yMasterDetailEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail_ detail element
+	 * @generated
+	 */
+	public EReference getYMasterDetail_DetailElement() {
+		return (EReference)yMasterDetailEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYMasterDetail_TypeQualifiedName() {
+		return (EAttribute)yMasterDetailEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y form layout
+	 * @generated
+	 */
+	public EClass getYFormLayout() {
+		return yFormLayoutEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y form layout_ cell styles
+	 * @generated
+	 */
+	public EReference getYFormLayout_CellStyles() {
+		return (EReference)yFormLayoutEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y form layout cell style
+	 * @generated
+	 */
+	public EClass getYFormLayoutCellStyle() {
+		return yFormLayoutCellStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y form layout cell style_ target
+	 * @generated
+	 */
+	public EReference getYFormLayoutCellStyle_Target() {
+		return (EReference)yFormLayoutCellStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y form layout cell style_ alignment
+	 * @generated
+	 */
+	public EAttribute getYFormLayoutCellStyle_Alignment() {
+		return (EAttribute)yFormLayoutCellStyleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y search field
+	 * @generated
+	 */
+	public EClass getYSearchField() {
+		return ySearchFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text search field
+	 * @generated
+	 */
+	public EClass getYTextSearchField() {
+		return yTextSearchFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text search field_ datadescription
+	 * @generated
+	 */
+	public EReference getYTextSearchField_Datadescription() {
+		return (EReference)yTextSearchFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text search field_ value
+	 * @generated
+	 */
+	public EAttribute getYTextSearchField_Value() {
+		return (EAttribute)yTextSearchFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text search field_ wildcard
+	 * @generated
+	 */
+	public EAttribute getYTextSearchField_Wildcard() {
+		return (EAttribute)yTextSearchFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text search field_ property path
+	 * @generated
+	 */
+	public EAttribute getYTextSearchField_PropertyPath() {
+		return (EAttribute)yTextSearchFieldEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y boolean search field
+	 * @generated
+	 */
+	public EClass getYBooleanSearchField() {
+		return yBooleanSearchFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y boolean search field_ datadescription
+	 * @generated
+	 */
+	public EReference getYBooleanSearchField_Datadescription() {
+		return (EReference)yBooleanSearchFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y boolean search field_ value
+	 * @generated
+	 */
+	public EAttribute getYBooleanSearchField_Value() {
+		return (EAttribute)yBooleanSearchFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y boolean search field_ property path
+	 * @generated
+	 */
+	public EAttribute getYBooleanSearchField_PropertyPath() {
+		return (EAttribute)yBooleanSearchFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric search field
+	 * @generated
+	 */
+	public EClass getYNumericSearchField() {
+		return yNumericSearchFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric search field_ datadescription
+	 * @generated
+	 */
+	public EReference getYNumericSearchField_Datadescription() {
+		return (EReference)yNumericSearchFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric search field_ value
+	 * @generated
+	 */
+	public EAttribute getYNumericSearchField_Value() {
+		return (EAttribute)yNumericSearchFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric search field_ wildcard
+	 * @generated
+	 */
+	public EAttribute getYNumericSearchField_Wildcard() {
+		return (EAttribute)yNumericSearchFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric search field_ property path
+	 * @generated
+	 */
+	public EAttribute getYNumericSearchField_PropertyPath() {
+		return (EAttribute)yNumericSearchFieldEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric search field_ type
+	 * @generated
+	 */
+	public EAttribute getYNumericSearchField_Type() {
+		return (EAttribute)yNumericSearchFieldEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric search field_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYNumericSearchField_TypeQualifiedName() {
+		return (EAttribute)yNumericSearchFieldEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y reference search field
+	 * @generated
+	 */
+	public EClass getYReferenceSearchField() {
+		return yReferenceSearchFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y reference search field_ datadescription
+	 * @generated
+	 */
+	public EReference getYReferenceSearchField_Datadescription() {
+		return (EReference)yReferenceSearchFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y reference search field_ value
+	 * @generated
+	 */
+	public EAttribute getYReferenceSearchField_Value() {
+		return (EAttribute)yReferenceSearchFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y reference search field_ wildcard
+	 * @generated
+	 */
+	public EAttribute getYReferenceSearchField_Wildcard() {
+		return (EAttribute)yReferenceSearchFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y reference search field_ property path
+	 * @generated
+	 */
+	public EAttribute getYReferenceSearchField_PropertyPath() {
+		return (EAttribute)yReferenceSearchFieldEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y reference search field_ type
+	 * @generated
+	 */
+	public EAttribute getYReferenceSearchField_Type() {
+		return (EAttribute)yReferenceSearchFieldEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y reference search field_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYReferenceSearchField_EmfNsURI() {
+		return (EAttribute)yReferenceSearchFieldEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y reference search field_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYReferenceSearchField_TypeQualifiedName() {
+		return (EAttribute)yReferenceSearchFieldEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y panel
+	 * @generated
+	 */
+	public EClass getYPanel() {
+		return yPanelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y panel_ datadescription
+	 * @generated
+	 */
+	public EReference getYPanel_Datadescription() {
+		return (EReference)yPanelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y panel_ first content
+	 * @generated
+	 */
+	public EReference getYPanel_FirstContent() {
+		return (EReference)yPanelEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y panel_ second content
+	 * @generated
+	 */
+	public EReference getYPanel_SecondContent() {
+		return (EReference)yPanelEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y split panel
+	 * @generated
+	 */
+	public EClass getYSplitPanel() {
+		return ySplitPanelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y split panel_ datadescription
+	 * @generated
+	 */
+	public EReference getYSplitPanel_Datadescription() {
+		return (EReference)ySplitPanelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y split panel_ cell styles
+	 * @generated
+	 */
+	public EReference getYSplitPanel_CellStyles() {
+		return (EReference)ySplitPanelEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y split panel_ fill horizontal
+	 * @generated
+	 */
+	public EAttribute getYSplitPanel_FillHorizontal() {
+		return (EAttribute)ySplitPanelEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y split panel_ split position
+	 * @generated
+	 */
+	public EAttribute getYSplitPanel_SplitPosition() {
+		return (EAttribute)ySplitPanelEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y split panel_ vertical
+	 * @generated
+	 */
+	public EAttribute getYSplitPanel_Vertical() {
+		return (EAttribute)ySplitPanelEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y search panel
+	 * @generated
+	 */
+	public EClass getYSearchPanel() {
+		return ySearchPanelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y search panel_ type
+	 * @generated
+	 */
+	public EAttribute getYSearchPanel_Type() {
+		return (EAttribute)ySearchPanelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y search panel_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYSearchPanel_EmfNsURI() {
+		return (EAttribute)ySearchPanelEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y search panel_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYSearchPanel_TypeQualifiedName() {
+		return (EAttribute)ySearchPanelEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y search panel_ apply filter
+	 * @generated
+	 */
+	public EAttribute getYSearchPanel_ApplyFilter() {
+		return (EAttribute)ySearchPanelEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y search panel_ filter
+	 * @generated
+	 */
+	public EAttribute getYSearchPanel_Filter() {
+		return (EAttribute)ySearchPanelEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group
+	 * @generated
+	 */
+	public EClass getYEnumOptionsGroup() {
+		return yEnumOptionsGroupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group_ datadescription
+	 * @generated
+	 */
+	public EReference getYEnumOptionsGroup_Datadescription() {
+		return (EReference)yEnumOptionsGroupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group_ datatype
+	 * @generated
+	 */
+	public EReference getYEnumOptionsGroup_Datatype() {
+		return (EReference)yEnumOptionsGroupEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group_ selection type
+	 * @generated
+	 */
+	public EAttribute getYEnumOptionsGroup_SelectionType() {
+		return (EAttribute)yEnumOptionsGroupEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group_ selection
+	 * @generated
+	 */
+	public EAttribute getYEnumOptionsGroup_Selection() {
+		return (EAttribute)yEnumOptionsGroupEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group_ multi selection
+	 * @generated
+	 */
+	public EAttribute getYEnumOptionsGroup_MultiSelection() {
+		return (EAttribute)yEnumOptionsGroupEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group_ type
+	 * @generated
+	 */
+	public EAttribute getYEnumOptionsGroup_Type() {
+		return (EAttribute)yEnumOptionsGroupEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYEnumOptionsGroup_EmfNsURI() {
+		return (EAttribute)yEnumOptionsGroupEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum options group_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYEnumOptionsGroup_TypeQualifiedName() {
+		return (EAttribute)yEnumOptionsGroupEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list
+	 * @generated
+	 */
+	public EClass getYEnumList() {
+		return yEnumListEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list_ datadescription
+	 * @generated
+	 */
+	public EReference getYEnumList_Datadescription() {
+		return (EReference)yEnumListEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list_ datatype
+	 * @generated
+	 */
+	public EReference getYEnumList_Datatype() {
+		return (EReference)yEnumListEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list_ selection type
+	 * @generated
+	 */
+	public EAttribute getYEnumList_SelectionType() {
+		return (EAttribute)yEnumListEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list_ selection
+	 * @generated
+	 */
+	public EAttribute getYEnumList_Selection() {
+		return (EAttribute)yEnumListEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list_ multi selection
+	 * @generated
+	 */
+	public EAttribute getYEnumList_MultiSelection() {
+		return (EAttribute)yEnumListEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list_ type
+	 * @generated
+	 */
+	public EAttribute getYEnumList_Type() {
+		return (EAttribute)yEnumListEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYEnumList_EmfNsURI() {
+		return (EAttribute)yEnumListEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum list_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYEnumList_TypeQualifiedName() {
+		return (EAttribute)yEnumListEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum combo box
+	 * @generated
+	 */
+	public EClass getYEnumComboBox() {
+		return yEnumComboBoxEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum combo box_ datadescription
+	 * @generated
+	 */
+	public EReference getYEnumComboBox_Datadescription() {
+		return (EReference)yEnumComboBoxEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum combo box_ datatype
+	 * @generated
+	 */
+	public EReference getYEnumComboBox_Datatype() {
+		return (EReference)yEnumComboBoxEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum combo box_ selection
+	 * @generated
+	 */
+	public EAttribute getYEnumComboBox_Selection() {
+		return (EAttribute)yEnumComboBoxEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum combo box_ type
+	 * @generated
+	 */
+	public EAttribute getYEnumComboBox_Type() {
+		return (EAttribute)yEnumComboBoxEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum combo box_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYEnumComboBox_EmfNsURI() {
+		return (EAttribute)yEnumComboBoxEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y enum combo box_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYEnumComboBox_TypeQualifiedName() {
+		return (EAttribute)yEnumComboBoxEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean service consumer
+	 * @generated
+	 */
+	public EClass getYBeanServiceConsumer() {
+		return yBeanServiceConsumerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y bean service consumer_ use bean service
+	 * @generated
+	 */
+	public EAttribute getYBeanServiceConsumer_UseBeanService() {
+		return (EAttribute)yBeanServiceConsumerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y add to table command
+	 * @generated
+	 */
+	public EClass getYAddToTableCommand() {
+		return yAddToTableCommandEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y add to table command_ table
+	 * @generated
+	 */
+	public EReference getYAddToTableCommand_Table() {
+		return (EReference)yAddToTableCommandEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y add to table command_ trigger
+	 * @generated
+	 */
+	public EAttribute getYAddToTableCommand_Trigger() {
+		return (EAttribute)yAddToTableCommandEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y remove from table command
+	 * @generated
+	 */
+	public EClass getYRemoveFromTableCommand() {
+		return yRemoveFromTableCommandEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y remove from table command_ table
+	 * @generated
+	 */
+	public EReference getYRemoveFromTableCommand_Table() {
+		return (EReference)yRemoveFromTableCommandEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y remove from table command_ trigger
+	 * @generated
+	 */
+	public EAttribute getYRemoveFromTableCommand_Trigger() {
+		return (EAttribute)yRemoveFromTableCommandEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser stream input
+	 * @generated
+	 */
+	public EClass getYBrowserStreamInput() {
+		return yBrowserStreamInputEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser stream input_ filename
+	 * @generated
+	 */
+	public EAttribute getYBrowserStreamInput_Filename() {
+		return (EAttribute)yBrowserStreamInputEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser stream input_ input stream
+	 * @generated
+	 */
+	public EAttribute getYBrowserStreamInput_InputStream() {
+		return (EAttribute)yBrowserStreamInputEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser stream input_ mime type
+	 * @generated
+	 */
+	public EAttribute getYBrowserStreamInput_MimeType() {
+		return (EAttribute)yBrowserStreamInputEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y set new bean instance command
+	 * @generated
+	 */
+	public EClass getYSetNewBeanInstanceCommand() {
+		return ySetNewBeanInstanceCommandEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y set new bean instance command_ target
+	 * @generated
+	 */
+	public EReference getYSetNewBeanInstanceCommand_Target() {
+		return (EReference)ySetNewBeanInstanceCommandEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y set new bean instance command_ trigger
+	 * @generated
+	 */
+	public EAttribute getYSetNewBeanInstanceCommand_Trigger() {
+		return (EAttribute)ySetNewBeanInstanceCommandEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y set new bean instance command_ type
+	 * @generated
+	 */
+	public EAttribute getYSetNewBeanInstanceCommand_Type() {
+		return (EAttribute)ySetNewBeanInstanceCommandEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y set new bean instance command_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYSetNewBeanInstanceCommand_EmfNsURI() {
+		return (EAttribute)ySetNewBeanInstanceCommandEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y set new bean instance command_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYSetNewBeanInstanceCommand_TypeQualifiedName() {
+		return (EAttribute)ySetNewBeanInstanceCommandEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y css layout
+	 * @generated
+	 */
+	public EClass getYCssLayout() {
+		return yCssLayoutEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y css layout_ cell styles
+	 * @generated
+	 */
+	public EReference getYCssLayout_CellStyles() {
+		return (EReference)yCssLayoutEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y css layout cell style
+	 * @generated
+	 */
+	public EClass getYCssLayoutCellStyle() {
+		return yCssLayoutCellStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y css layout cell style_ target
+	 * @generated
+	 */
+	public EReference getYCssLayoutCellStyle_Target() {
+		return (EReference)yCssLayoutCellStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y css layout cell style_ alignment
+	 * @generated
+	 */
+	public EAttribute getYCssLayoutCellStyle_Alignment() {
+		return (EAttribute)yCssLayoutCellStyleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y filter
+	 * @generated
+	 */
+	public EClass getYFilter() {
+		return yFilterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y filter_ property path
+	 * @generated
+	 */
+	public EAttribute getYFilter_PropertyPath() {
+		return (EAttribute)yFilterEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y filter_ filter value
+	 * @generated
+	 */
+	public EAttribute getYFilter_FilterValue() {
+		return (EAttribute)yFilterEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout
+	 * @generated
+	 */
+	public EClass getYAbsoluteLayout() {
+		return yAbsoluteLayoutEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout_ cell styles
+	 * @generated
+	 */
+	public EReference getYAbsoluteLayout_CellStyles() {
+		return (EReference)yAbsoluteLayoutEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout_ child resize enabled
+	 * @generated
+	 */
+	public EAttribute getYAbsoluteLayout_ChildResizeEnabled() {
+		return (EAttribute)yAbsoluteLayoutEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout_ child move enabled
+	 * @generated
+	 */
+	public EAttribute getYAbsoluteLayout_ChildMoveEnabled() {
+		return (EAttribute)yAbsoluteLayoutEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout cell style
+	 * @generated
+	 */
+	public EClass getYAbsoluteLayoutCellStyle() {
+		return yAbsoluteLayoutCellStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout cell style_ target
+	 * @generated
+	 */
+	public EReference getYAbsoluteLayoutCellStyle_Target() {
+		return (EReference)yAbsoluteLayoutCellStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout cell style_ top
+	 * @generated
+	 */
+	public EAttribute getYAbsoluteLayoutCellStyle_Top() {
+		return (EAttribute)yAbsoluteLayoutCellStyleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout cell style_ bottom
+	 * @generated
+	 */
+	public EAttribute getYAbsoluteLayoutCellStyle_Bottom() {
+		return (EAttribute)yAbsoluteLayoutCellStyleEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout cell style_ left
+	 * @generated
+	 */
+	public EAttribute getYAbsoluteLayoutCellStyle_Left() {
+		return (EAttribute)yAbsoluteLayoutCellStyleEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout cell style_ right
+	 * @generated
+	 */
+	public EAttribute getYAbsoluteLayoutCellStyle_Right() {
+		return (EAttribute)yAbsoluteLayoutCellStyleEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y absolute layout cell style_ z index
+	 * @generated
+	 */
+	public EAttribute getYAbsoluteLayoutCellStyle_ZIndex() {
+		return (EAttribute)yAbsoluteLayoutCellStyleEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field
+	 * @generated
+	 */
+	public EClass getYSuggestTextField() {
+		return ySuggestTextFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ datatype
+	 * @generated
+	 */
+	public EReference getYSuggestTextField_Datatype() {
+		return (EReference)ySuggestTextFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ datadescription
+	 * @generated
+	 */
+	public EReference getYSuggestTextField_Datadescription() {
+		return (EReference)ySuggestTextFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ value
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_Value() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ use suggestions
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_UseSuggestions() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_AutoHidePopup() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ last suggestion
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_LastSuggestion() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ type
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_Type() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_EmfNsURI() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_TypeQualifiedName() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ item caption property
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_ItemCaptionProperty() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ item filter property
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_ItemFilterProperty() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y suggest text field_ item uuid property
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_ItemUUIDProperty() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYSuggestTextField_Event() {
+		return (EAttribute)ySuggestTextFieldEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getYPasswordField() {
+		return yPasswordFieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getYPasswordField_Datadescription() {
+		return (EReference)yPasswordFieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getYPasswordField_Value() {
+		return (EAttribute)yPasswordFieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree
+	 * @generated
+	 */
+	public EClass getYTree() {
+		return yTreeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree_ datatype
+	 * @generated
+	 */
+	public EReference getYTree_Datatype() {
+		return (EReference)yTreeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree_ datadescription
+	 * @generated
+	 */
+	public EReference getYTree_Datadescription() {
+		return (EReference)yTreeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree_ selection type
+	 * @generated
+	 */
+	public EAttribute getYTree_SelectionType() {
+		return (EAttribute)yTreeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree_ selection
+	 * @generated
+	 */
+	public EAttribute getYTree_Selection() {
+		return (EAttribute)yTreeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree_ multi selection
+	 * @generated
+	 */
+	public EAttribute getYTree_MultiSelection() {
+		return (EAttribute)yTreeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree_ collection
+	 * @generated
+	 */
+	public EAttribute getYTree_Collection() {
+		return (EAttribute)yTreeEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree_ type
+	 * @generated
+	 */
+	public EAttribute getYTree_Type() {
+		return (EAttribute)yTreeEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYTree_EmfNsURI() {
+		return (EAttribute)yTreeEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYTree_TypeQualifiedName() {
+		return (EAttribute)yTreeEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group
+	 * @generated
+	 */
+	public EClass getYOptionsGroup() {
+		return yOptionsGroupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ datadescription
+	 * @generated
+	 */
+	public EReference getYOptionsGroup_Datadescription() {
+		return (EReference)yOptionsGroupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ datatype
+	 * @generated
+	 */
+	public EReference getYOptionsGroup_Datatype() {
+		return (EReference)yOptionsGroupEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ selection type
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_SelectionType() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ selection
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_Selection() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ multi selection
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_MultiSelection() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ collection
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_Collection() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ type
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_Type() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ emf ns uri
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_EmfNsURI() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ type qualified name
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_TypeQualifiedName() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ caption property
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_CaptionProperty() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ image property
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_ImageProperty() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ description property
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_DescriptionProperty() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group_ description
+	 * @generated
+	 */
+	public EAttribute getYOptionsGroup_Description() {
+		return (EAttribute)yOptionsGroupEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y button click listener
+	 * @generated
+	 */
+	public EDataType getYButtonClickListener() {
+		return yButtonClickListenerEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y input stream
+	 * @generated
+	 */
+	public EDataType getYInputStream() {
+		return yInputStreamEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y selection type
+	 * @generated
+	 */
+	public EEnum getYSelectionType() {
+		return ySelectionTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y boolean search option
+	 * @generated
+	 */
+	public EEnum getYBooleanSearchOption() {
+		return yBooleanSearchOptionEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y search wildcards
+	 * @generated
+	 */
+	public EEnum getYSearchWildcards() {
+		return ySearchWildcardsEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getYSuggestTextFieldEvents() {
+		return ySuggestTextFieldEventsEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the extension model factory
+	 * @generated
+	 */
+	public ExtensionModelFactory getExtensionModelFactory() {
+		return (ExtensionModelFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		yInputEClass = createEClass(YINPUT);
+
+		yGridLayoutEClass = createEClass(YGRID_LAYOUT);
+		createEReference(yGridLayoutEClass, YGRID_LAYOUT__CELL_STYLES);
+		createEAttribute(yGridLayoutEClass, YGRID_LAYOUT__COLUMNS);
+
+		yGridLayoutCellStyleEClass = createEClass(YGRID_LAYOUT_CELL_STYLE);
+		createEReference(yGridLayoutCellStyleEClass, YGRID_LAYOUT_CELL_STYLE__TARGET);
+		createEAttribute(yGridLayoutCellStyleEClass, YGRID_LAYOUT_CELL_STYLE__ALIGNMENT);
+		createEReference(yGridLayoutCellStyleEClass, YGRID_LAYOUT_CELL_STYLE__SPAN_INFO);
+
+		yHorizontalLayoutEClass = createEClass(YHORIZONTAL_LAYOUT);
+		createEReference(yHorizontalLayoutEClass, YHORIZONTAL_LAYOUT__CELL_STYLES);
+
+		yHorizontalLayoutCellStyleEClass = createEClass(YHORIZONTAL_LAYOUT_CELL_STYLE);
+		createEReference(yHorizontalLayoutCellStyleEClass, YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET);
+		createEAttribute(yHorizontalLayoutCellStyleEClass, YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT);
+
+		yVerticalLayoutEClass = createEClass(YVERTICAL_LAYOUT);
+		createEReference(yVerticalLayoutEClass, YVERTICAL_LAYOUT__CELL_STYLES);
+
+		yVerticalLayoutCellStyleEClass = createEClass(YVERTICAL_LAYOUT_CELL_STYLE);
+		createEReference(yVerticalLayoutCellStyleEClass, YVERTICAL_LAYOUT_CELL_STYLE__TARGET);
+		createEAttribute(yVerticalLayoutCellStyleEClass, YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT);
+
+		ySpanInfoEClass = createEClass(YSPAN_INFO);
+		createEAttribute(ySpanInfoEClass, YSPAN_INFO__COLUMN_FROM);
+		createEAttribute(ySpanInfoEClass, YSPAN_INFO__ROW_FROM);
+		createEAttribute(ySpanInfoEClass, YSPAN_INFO__COLUMN_TO);
+		createEAttribute(ySpanInfoEClass, YSPAN_INFO__ROW_TO);
+
+		yTableEClass = createEClass(YTABLE);
+		createEReference(yTableEClass, YTABLE__DATATYPE);
+		createEReference(yTableEClass, YTABLE__DATADESCRIPTION);
+		createEAttribute(yTableEClass, YTABLE__SELECTION_TYPE);
+		createEAttribute(yTableEClass, YTABLE__SELECTION);
+		createEAttribute(yTableEClass, YTABLE__MULTI_SELECTION);
+		createEAttribute(yTableEClass, YTABLE__COLLECTION);
+		createEAttribute(yTableEClass, YTABLE__TYPE);
+		createEAttribute(yTableEClass, YTABLE__EMF_NS_URI);
+		createEAttribute(yTableEClass, YTABLE__TYPE_QUALIFIED_NAME);
+		createEReference(yTableEClass, YTABLE__COLUMNS);
+		createEAttribute(yTableEClass, YTABLE__ITEM_IMAGE_PROPERTY);
+		createEAttribute(yTableEClass, YTABLE__FILTER);
+		createEAttribute(yTableEClass, YTABLE__REFRESH);
+		createEReference(yTableEClass, YTABLE__SORT_ORDER);
+
+		yColumnEClass = createEClass(YCOLUMN);
+		createEAttribute(yColumnEClass, YCOLUMN__ICON);
+		createEAttribute(yColumnEClass, YCOLUMN__VISIBLE);
+		createEReference(yColumnEClass, YCOLUMN__DATADESCRIPTION);
+		createEReference(yColumnEClass, YCOLUMN__ORPHAN_DATADESCRIPTIONS);
+		createEAttribute(yColumnEClass, YCOLUMN__ORDERABLE);
+		createEAttribute(yColumnEClass, YCOLUMN__COLLAPSED);
+		createEAttribute(yColumnEClass, YCOLUMN__COLLAPSIBLE);
+		createEAttribute(yColumnEClass, YCOLUMN__ALIGNMENT);
+		createEAttribute(yColumnEClass, YCOLUMN__EXPAND_RATIO);
+		createEAttribute(yColumnEClass, YCOLUMN__PROPERTY_PATH);
+		createEReference(yColumnEClass, YCOLUMN__CONVERTER);
+		createEAttribute(yColumnEClass, YCOLUMN__TYPE);
+		createEAttribute(yColumnEClass, YCOLUMN__TYPE_QUALIFIED_NAME);
+
+		ySortColumnEClass = createEClass(YSORT_COLUMN);
+		createEAttribute(ySortColumnEClass, YSORT_COLUMN__PROPERTY_PATH);
+		createEAttribute(ySortColumnEClass, YSORT_COLUMN__TYPE);
+		createEAttribute(ySortColumnEClass, YSORT_COLUMN__TYPE_QUALIFIED_NAME);
+		createEAttribute(ySortColumnEClass, YSORT_COLUMN__ASC);
+
+		yTreeEClass = createEClass(YTREE);
+		createEReference(yTreeEClass, YTREE__DATATYPE);
+		createEReference(yTreeEClass, YTREE__DATADESCRIPTION);
+		createEAttribute(yTreeEClass, YTREE__SELECTION_TYPE);
+		createEAttribute(yTreeEClass, YTREE__SELECTION);
+		createEAttribute(yTreeEClass, YTREE__MULTI_SELECTION);
+		createEAttribute(yTreeEClass, YTREE__COLLECTION);
+		createEAttribute(yTreeEClass, YTREE__TYPE);
+		createEAttribute(yTreeEClass, YTREE__EMF_NS_URI);
+		createEAttribute(yTreeEClass, YTREE__TYPE_QUALIFIED_NAME);
+
+		yOptionsGroupEClass = createEClass(YOPTIONS_GROUP);
+		createEReference(yOptionsGroupEClass, YOPTIONS_GROUP__DATADESCRIPTION);
+		createEReference(yOptionsGroupEClass, YOPTIONS_GROUP__DATATYPE);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__SELECTION_TYPE);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__SELECTION);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__MULTI_SELECTION);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__COLLECTION);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__TYPE);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__EMF_NS_URI);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__TYPE_QUALIFIED_NAME);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__CAPTION_PROPERTY);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__IMAGE_PROPERTY);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__DESCRIPTION_PROPERTY);
+		createEAttribute(yOptionsGroupEClass, YOPTIONS_GROUP__DESCRIPTION);
+
+		yListEClass = createEClass(YLIST);
+		createEReference(yListEClass, YLIST__DATADESCRIPTION);
+		createEReference(yListEClass, YLIST__DATATYPE);
+		createEAttribute(yListEClass, YLIST__SELECTION_TYPE);
+		createEAttribute(yListEClass, YLIST__SELECTION);
+		createEAttribute(yListEClass, YLIST__MULTI_SELECTION);
+		createEAttribute(yListEClass, YLIST__COLLECTION);
+		createEAttribute(yListEClass, YLIST__TYPE);
+		createEAttribute(yListEClass, YLIST__EMF_NS_URI);
+		createEAttribute(yListEClass, YLIST__TYPE_QUALIFIED_NAME);
+		createEAttribute(yListEClass, YLIST__CAPTION_PROPERTY);
+		createEAttribute(yListEClass, YLIST__IMAGE_PROPERTY);
+		createEAttribute(yListEClass, YLIST__DESCRIPTION_PROPERTY);
+		createEAttribute(yListEClass, YLIST__DESCRIPTION);
+
+		yLabelEClass = createEClass(YLABEL);
+		createEReference(yLabelEClass, YLABEL__DATADESCRIPTION);
+		createEAttribute(yLabelEClass, YLABEL__VALUE);
+
+		yImageEClass = createEClass(YIMAGE);
+		createEReference(yImageEClass, YIMAGE__DATADESCRIPTION);
+		createEAttribute(yImageEClass, YIMAGE__VALUE);
+
+		yTextFieldEClass = createEClass(YTEXT_FIELD);
+		createEReference(yTextFieldEClass, YTEXT_FIELD__DATATYPE);
+		createEReference(yTextFieldEClass, YTEXT_FIELD__DATADESCRIPTION);
+		createEAttribute(yTextFieldEClass, YTEXT_FIELD__VALUE);
+
+		yBeanReferenceFieldEClass = createEClass(YBEAN_REFERENCE_FIELD);
+		createEReference(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__DATADESCRIPTION);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__VALUE);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__TYPE);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__EMF_NS_URI);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__DESCRIPTION);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY);
+		createEAttribute(yBeanReferenceFieldEClass, YBEAN_REFERENCE_FIELD__REQUIRED);
+
+		yTextAreaEClass = createEClass(YTEXT_AREA);
+		createEReference(yTextAreaEClass, YTEXT_AREA__DATADESCRIPTION);
+		createEReference(yTextAreaEClass, YTEXT_AREA__DATATYPE);
+		createEAttribute(yTextAreaEClass, YTEXT_AREA__VALUE);
+		createEAttribute(yTextAreaEClass, YTEXT_AREA__WORD_WRAP);
+		createEAttribute(yTextAreaEClass, YTEXT_AREA__ROWS);
+
+		yCheckBoxEClass = createEClass(YCHECK_BOX);
+		createEReference(yCheckBoxEClass, YCHECK_BOX__DATADESCRIPTION);
+		createEReference(yCheckBoxEClass, YCHECK_BOX__DATATYPE);
+		createEAttribute(yCheckBoxEClass, YCHECK_BOX__VALUE);
+
+		yBrowserEClass = createEClass(YBROWSER);
+		createEReference(yBrowserEClass, YBROWSER__DATATYPE);
+		createEReference(yBrowserEClass, YBROWSER__DATADESCRIPTION);
+		createEAttribute(yBrowserEClass, YBROWSER__VALUE);
+
+		yDateTimeEClass = createEClass(YDATE_TIME);
+		createEReference(yDateTimeEClass, YDATE_TIME__DATATYPE);
+		createEReference(yDateTimeEClass, YDATE_TIME__DATADESCRIPTION);
+		createEAttribute(yDateTimeEClass, YDATE_TIME__VALUE);
+
+		yDecimalFieldEClass = createEClass(YDECIMAL_FIELD);
+		createEReference(yDecimalFieldEClass, YDECIMAL_FIELD__DATATYPE);
+		createEReference(yDecimalFieldEClass, YDECIMAL_FIELD__DATADESCRIPTION);
+		createEAttribute(yDecimalFieldEClass, YDECIMAL_FIELD__VALUE);
+
+		yNumericFieldEClass = createEClass(YNUMERIC_FIELD);
+		createEReference(yNumericFieldEClass, YNUMERIC_FIELD__DATATYPE);
+		createEReference(yNumericFieldEClass, YNUMERIC_FIELD__DATADESCRIPTION);
+		createEAttribute(yNumericFieldEClass, YNUMERIC_FIELD__VALUE);
+
+		yComboBoxEClass = createEClass(YCOMBO_BOX);
+		createEReference(yComboBoxEClass, YCOMBO_BOX__DATADESCRIPTION);
+		createEReference(yComboBoxEClass, YCOMBO_BOX__DATATYPE);
+		createEAttribute(yComboBoxEClass, YCOMBO_BOX__SELECTION);
+		createEAttribute(yComboBoxEClass, YCOMBO_BOX__COLLECTION);
+		createEAttribute(yComboBoxEClass, YCOMBO_BOX__TYPE);
+		createEAttribute(yComboBoxEClass, YCOMBO_BOX__EMF_NS_URI);
+		createEAttribute(yComboBoxEClass, YCOMBO_BOX__TYPE_QUALIFIED_NAME);
+		createEAttribute(yComboBoxEClass, YCOMBO_BOX__CAPTION_PROPERTY);
+		createEAttribute(yComboBoxEClass, YCOMBO_BOX__IMAGE_PROPERTY);
+		createEAttribute(yComboBoxEClass, YCOMBO_BOX__DESCRIPTION_PROPERTY);
+		createEAttribute(yComboBoxEClass, YCOMBO_BOX__DESCRIPTION);
+
+		yButtonEClass = createEClass(YBUTTON);
+		createEReference(yButtonEClass, YBUTTON__DATADESCRIPTION);
+		createEAttribute(yButtonEClass, YBUTTON__CLICK_LISTENERS);
+		createEAttribute(yButtonEClass, YBUTTON__LAST_CLICK_TIME);
+		createEAttribute(yButtonEClass, YBUTTON__IMAGE);
+
+		ySliderEClass = createEClass(YSLIDER);
+		createEReference(ySliderEClass, YSLIDER__DATADESCRIPTION);
+		createEAttribute(ySliderEClass, YSLIDER__VALUE);
+		createEAttribute(ySliderEClass, YSLIDER__MAX_VALUE);
+		createEAttribute(ySliderEClass, YSLIDER__MIN_VALUE);
+		createEAttribute(ySliderEClass, YSLIDER__RESOLUTION);
+		createEAttribute(ySliderEClass, YSLIDER__ORIENTATION);
+
+		yToggleButtonEClass = createEClass(YTOGGLE_BUTTON);
+		createEReference(yToggleButtonEClass, YTOGGLE_BUTTON__DATADESCRIPTION);
+
+		yProgressBarEClass = createEClass(YPROGRESS_BAR);
+		createEReference(yProgressBarEClass, YPROGRESS_BAR__DATATYPE);
+		createEReference(yProgressBarEClass, YPROGRESS_BAR__DATADESCRIPTION);
+		createEAttribute(yProgressBarEClass, YPROGRESS_BAR__VALUE);
+
+		yTabSheetEClass = createEClass(YTAB_SHEET);
+		createEReference(yTabSheetEClass, YTAB_SHEET__TABS);
+
+		yTabEClass = createEClass(YTAB);
+		createEReference(yTabEClass, YTAB__PARENT);
+		createEReference(yTabEClass, YTAB__EMBEDDABLE);
+		createEReference(yTabEClass, YTAB__DATADESCRIPTION);
+		createEReference(yTabEClass, YTAB__ORPHAN_DATADESCRIPTIONS);
+
+		yMasterDetailEClass = createEClass(YMASTER_DETAIL);
+		createEReference(yMasterDetailEClass, YMASTER_DETAIL__DATATYPE);
+		createEReference(yMasterDetailEClass, YMASTER_DETAIL__DATADESCRIPTION);
+		createEAttribute(yMasterDetailEClass, YMASTER_DETAIL__SELECTION);
+		createEAttribute(yMasterDetailEClass, YMASTER_DETAIL__COLLECTION);
+		createEAttribute(yMasterDetailEClass, YMASTER_DETAIL__TYPE);
+		createEAttribute(yMasterDetailEClass, YMASTER_DETAIL__EMF_NS_URI);
+		createEReference(yMasterDetailEClass, YMASTER_DETAIL__MASTER_ELEMENT);
+		createEReference(yMasterDetailEClass, YMASTER_DETAIL__DETAIL_ELEMENT);
+		createEAttribute(yMasterDetailEClass, YMASTER_DETAIL__TYPE_QUALIFIED_NAME);
+
+		yFormLayoutEClass = createEClass(YFORM_LAYOUT);
+		createEReference(yFormLayoutEClass, YFORM_LAYOUT__CELL_STYLES);
+
+		yFormLayoutCellStyleEClass = createEClass(YFORM_LAYOUT_CELL_STYLE);
+		createEReference(yFormLayoutCellStyleEClass, YFORM_LAYOUT_CELL_STYLE__TARGET);
+		createEAttribute(yFormLayoutCellStyleEClass, YFORM_LAYOUT_CELL_STYLE__ALIGNMENT);
+
+		ySearchFieldEClass = createEClass(YSEARCH_FIELD);
+
+		yTextSearchFieldEClass = createEClass(YTEXT_SEARCH_FIELD);
+		createEReference(yTextSearchFieldEClass, YTEXT_SEARCH_FIELD__DATADESCRIPTION);
+		createEAttribute(yTextSearchFieldEClass, YTEXT_SEARCH_FIELD__VALUE);
+		createEAttribute(yTextSearchFieldEClass, YTEXT_SEARCH_FIELD__WILDCARD);
+		createEAttribute(yTextSearchFieldEClass, YTEXT_SEARCH_FIELD__PROPERTY_PATH);
+
+		yBooleanSearchFieldEClass = createEClass(YBOOLEAN_SEARCH_FIELD);
+		createEReference(yBooleanSearchFieldEClass, YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION);
+		createEAttribute(yBooleanSearchFieldEClass, YBOOLEAN_SEARCH_FIELD__VALUE);
+		createEAttribute(yBooleanSearchFieldEClass, YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH);
+
+		yNumericSearchFieldEClass = createEClass(YNUMERIC_SEARCH_FIELD);
+		createEReference(yNumericSearchFieldEClass, YNUMERIC_SEARCH_FIELD__DATADESCRIPTION);
+		createEAttribute(yNumericSearchFieldEClass, YNUMERIC_SEARCH_FIELD__VALUE);
+		createEAttribute(yNumericSearchFieldEClass, YNUMERIC_SEARCH_FIELD__WILDCARD);
+		createEAttribute(yNumericSearchFieldEClass, YNUMERIC_SEARCH_FIELD__PROPERTY_PATH);
+		createEAttribute(yNumericSearchFieldEClass, YNUMERIC_SEARCH_FIELD__TYPE);
+		createEAttribute(yNumericSearchFieldEClass, YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME);
+
+		yReferenceSearchFieldEClass = createEClass(YREFERENCE_SEARCH_FIELD);
+		createEReference(yReferenceSearchFieldEClass, YREFERENCE_SEARCH_FIELD__DATADESCRIPTION);
+		createEAttribute(yReferenceSearchFieldEClass, YREFERENCE_SEARCH_FIELD__VALUE);
+		createEAttribute(yReferenceSearchFieldEClass, YREFERENCE_SEARCH_FIELD__WILDCARD);
+		createEAttribute(yReferenceSearchFieldEClass, YREFERENCE_SEARCH_FIELD__PROPERTY_PATH);
+		createEAttribute(yReferenceSearchFieldEClass, YREFERENCE_SEARCH_FIELD__TYPE);
+		createEAttribute(yReferenceSearchFieldEClass, YREFERENCE_SEARCH_FIELD__EMF_NS_URI);
+		createEAttribute(yReferenceSearchFieldEClass, YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME);
+
+		yPanelEClass = createEClass(YPANEL);
+		createEReference(yPanelEClass, YPANEL__DATADESCRIPTION);
+		createEReference(yPanelEClass, YPANEL__FIRST_CONTENT);
+		createEReference(yPanelEClass, YPANEL__SECOND_CONTENT);
+
+		ySplitPanelEClass = createEClass(YSPLIT_PANEL);
+		createEReference(ySplitPanelEClass, YSPLIT_PANEL__DATADESCRIPTION);
+		createEReference(ySplitPanelEClass, YSPLIT_PANEL__CELL_STYLES);
+		createEAttribute(ySplitPanelEClass, YSPLIT_PANEL__FILL_HORIZONTAL);
+		createEAttribute(ySplitPanelEClass, YSPLIT_PANEL__SPLIT_POSITION);
+		createEAttribute(ySplitPanelEClass, YSPLIT_PANEL__VERTICAL);
+
+		ySearchPanelEClass = createEClass(YSEARCH_PANEL);
+		createEAttribute(ySearchPanelEClass, YSEARCH_PANEL__TYPE);
+		createEAttribute(ySearchPanelEClass, YSEARCH_PANEL__EMF_NS_URI);
+		createEAttribute(ySearchPanelEClass, YSEARCH_PANEL__TYPE_QUALIFIED_NAME);
+		createEAttribute(ySearchPanelEClass, YSEARCH_PANEL__APPLY_FILTER);
+		createEAttribute(ySearchPanelEClass, YSEARCH_PANEL__FILTER);
+
+		yEnumOptionsGroupEClass = createEClass(YENUM_OPTIONS_GROUP);
+		createEReference(yEnumOptionsGroupEClass, YENUM_OPTIONS_GROUP__DATADESCRIPTION);
+		createEReference(yEnumOptionsGroupEClass, YENUM_OPTIONS_GROUP__DATATYPE);
+		createEAttribute(yEnumOptionsGroupEClass, YENUM_OPTIONS_GROUP__SELECTION_TYPE);
+		createEAttribute(yEnumOptionsGroupEClass, YENUM_OPTIONS_GROUP__SELECTION);
+		createEAttribute(yEnumOptionsGroupEClass, YENUM_OPTIONS_GROUP__MULTI_SELECTION);
+		createEAttribute(yEnumOptionsGroupEClass, YENUM_OPTIONS_GROUP__TYPE);
+		createEAttribute(yEnumOptionsGroupEClass, YENUM_OPTIONS_GROUP__EMF_NS_URI);
+		createEAttribute(yEnumOptionsGroupEClass, YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME);
+
+		yEnumListEClass = createEClass(YENUM_LIST);
+		createEReference(yEnumListEClass, YENUM_LIST__DATADESCRIPTION);
+		createEReference(yEnumListEClass, YENUM_LIST__DATATYPE);
+		createEAttribute(yEnumListEClass, YENUM_LIST__SELECTION_TYPE);
+		createEAttribute(yEnumListEClass, YENUM_LIST__SELECTION);
+		createEAttribute(yEnumListEClass, YENUM_LIST__MULTI_SELECTION);
+		createEAttribute(yEnumListEClass, YENUM_LIST__TYPE);
+		createEAttribute(yEnumListEClass, YENUM_LIST__EMF_NS_URI);
+		createEAttribute(yEnumListEClass, YENUM_LIST__TYPE_QUALIFIED_NAME);
+
+		yEnumComboBoxEClass = createEClass(YENUM_COMBO_BOX);
+		createEReference(yEnumComboBoxEClass, YENUM_COMBO_BOX__DATADESCRIPTION);
+		createEReference(yEnumComboBoxEClass, YENUM_COMBO_BOX__DATATYPE);
+		createEAttribute(yEnumComboBoxEClass, YENUM_COMBO_BOX__SELECTION);
+		createEAttribute(yEnumComboBoxEClass, YENUM_COMBO_BOX__TYPE);
+		createEAttribute(yEnumComboBoxEClass, YENUM_COMBO_BOX__EMF_NS_URI);
+		createEAttribute(yEnumComboBoxEClass, YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME);
+
+		yBeanServiceConsumerEClass = createEClass(YBEAN_SERVICE_CONSUMER);
+		createEAttribute(yBeanServiceConsumerEClass, YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE);
+
+		yAddToTableCommandEClass = createEClass(YADD_TO_TABLE_COMMAND);
+		createEReference(yAddToTableCommandEClass, YADD_TO_TABLE_COMMAND__TABLE);
+		createEAttribute(yAddToTableCommandEClass, YADD_TO_TABLE_COMMAND__TRIGGER);
+
+		yRemoveFromTableCommandEClass = createEClass(YREMOVE_FROM_TABLE_COMMAND);
+		createEReference(yRemoveFromTableCommandEClass, YREMOVE_FROM_TABLE_COMMAND__TABLE);
+		createEAttribute(yRemoveFromTableCommandEClass, YREMOVE_FROM_TABLE_COMMAND__TRIGGER);
+
+		yBrowserStreamInputEClass = createEClass(YBROWSER_STREAM_INPUT);
+		createEAttribute(yBrowserStreamInputEClass, YBROWSER_STREAM_INPUT__FILENAME);
+		createEAttribute(yBrowserStreamInputEClass, YBROWSER_STREAM_INPUT__INPUT_STREAM);
+		createEAttribute(yBrowserStreamInputEClass, YBROWSER_STREAM_INPUT__MIME_TYPE);
+
+		ySetNewBeanInstanceCommandEClass = createEClass(YSET_NEW_BEAN_INSTANCE_COMMAND);
+		createEReference(ySetNewBeanInstanceCommandEClass, YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET);
+		createEAttribute(ySetNewBeanInstanceCommandEClass, YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER);
+		createEAttribute(ySetNewBeanInstanceCommandEClass, YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE);
+		createEAttribute(ySetNewBeanInstanceCommandEClass, YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI);
+		createEAttribute(ySetNewBeanInstanceCommandEClass, YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME);
+
+		yCssLayoutEClass = createEClass(YCSS_LAYOUT);
+		createEReference(yCssLayoutEClass, YCSS_LAYOUT__CELL_STYLES);
+
+		yCssLayoutCellStyleEClass = createEClass(YCSS_LAYOUT_CELL_STYLE);
+		createEReference(yCssLayoutCellStyleEClass, YCSS_LAYOUT_CELL_STYLE__TARGET);
+		createEAttribute(yCssLayoutCellStyleEClass, YCSS_LAYOUT_CELL_STYLE__ALIGNMENT);
+
+		yFilterEClass = createEClass(YFILTER);
+		createEAttribute(yFilterEClass, YFILTER__PROPERTY_PATH);
+		createEAttribute(yFilterEClass, YFILTER__FILTER_VALUE);
+
+		yAbsoluteLayoutEClass = createEClass(YABSOLUTE_LAYOUT);
+		createEReference(yAbsoluteLayoutEClass, YABSOLUTE_LAYOUT__CELL_STYLES);
+		createEAttribute(yAbsoluteLayoutEClass, YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED);
+		createEAttribute(yAbsoluteLayoutEClass, YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED);
+
+		yAbsoluteLayoutCellStyleEClass = createEClass(YABSOLUTE_LAYOUT_CELL_STYLE);
+		createEReference(yAbsoluteLayoutCellStyleEClass, YABSOLUTE_LAYOUT_CELL_STYLE__TARGET);
+		createEAttribute(yAbsoluteLayoutCellStyleEClass, YABSOLUTE_LAYOUT_CELL_STYLE__TOP);
+		createEAttribute(yAbsoluteLayoutCellStyleEClass, YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM);
+		createEAttribute(yAbsoluteLayoutCellStyleEClass, YABSOLUTE_LAYOUT_CELL_STYLE__LEFT);
+		createEAttribute(yAbsoluteLayoutCellStyleEClass, YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT);
+		createEAttribute(yAbsoluteLayoutCellStyleEClass, YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX);
+
+		ySuggestTextFieldEClass = createEClass(YSUGGEST_TEXT_FIELD);
+		createEReference(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__DATATYPE);
+		createEReference(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__DATADESCRIPTION);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__VALUE);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__LAST_SUGGESTION);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__TYPE);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__EMF_NS_URI);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY);
+		createEAttribute(ySuggestTextFieldEClass, YSUGGEST_TEXT_FIELD__EVENT);
+
+		yPasswordFieldEClass = createEClass(YPASSWORD_FIELD);
+		createEReference(yPasswordFieldEClass, YPASSWORD_FIELD__DATADESCRIPTION);
+		createEAttribute(yPasswordFieldEClass, YPASSWORD_FIELD__VALUE);
+
+		// Create enums
+		ySelectionTypeEEnum = createEEnum(YSELECTION_TYPE);
+		yBooleanSearchOptionEEnum = createEEnum(YBOOLEAN_SEARCH_OPTION);
+		ySearchWildcardsEEnum = createEEnum(YSEARCH_WILDCARDS);
+		ySuggestTextFieldEventsEEnum = createEEnum(YSUGGEST_TEXT_FIELD_EVENTS);
+
+		// Create data types
+		yButtonClickListenerEDataType = createEDataType(YBUTTON_CLICK_LISTENER);
+		yInputStreamEDataType = createEDataType(YINPUT_STREAM);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		CoreModelPackage theCoreModelPackage = (CoreModelPackage)EPackage.Registry.INSTANCE.getEPackage(CoreModelPackage.eNS_URI);
+		ExtDatatypesPackage theExtDatatypesPackage = (ExtDatatypesPackage)EPackage.Registry.INSTANCE.getEPackage(ExtDatatypesPackage.eNS_URI);
+		DatatypesPackage theDatatypesPackage = (DatatypesPackage)EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+		BindingPackage theBindingPackage = (BindingPackage)EPackage.Registry.INSTANCE.getEPackage(BindingPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		yInputEClass.getESuperTypes().add(theCoreModelPackage.getYField());
+		yGridLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYLayout());
+		yGridLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYSpacingable());
+		yGridLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYMarginable());
+		yGridLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYAlignmentContainer());
+		yHorizontalLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYLayout());
+		yHorizontalLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYSpacingable());
+		yHorizontalLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYMarginable());
+		yHorizontalLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYAlignmentContainer());
+		yVerticalLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYLayout());
+		yVerticalLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYSpacingable());
+		yVerticalLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYMarginable());
+		yVerticalLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYAlignmentContainer());
+		yTableEClass.getESuperTypes().add(this.getYInput());
+		yTableEClass.getESuperTypes().add(theCoreModelPackage.getYCollectionBindable());
+		yTableEClass.getESuperTypes().add(theCoreModelPackage.getYSelectionBindable());
+		yTableEClass.getESuperTypes().add(theCoreModelPackage.getYMultiSelectionBindable());
+		yTableEClass.getESuperTypes().add(this.getYBeanServiceConsumer());
+		yColumnEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		ySortColumnEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		yTreeEClass.getESuperTypes().add(this.getYInput());
+		yTreeEClass.getESuperTypes().add(theCoreModelPackage.getYCollectionBindable());
+		yTreeEClass.getESuperTypes().add(theCoreModelPackage.getYSelectionBindable());
+		yTreeEClass.getESuperTypes().add(theCoreModelPackage.getYMultiSelectionBindable());
+		yTreeEClass.getESuperTypes().add(this.getYBeanServiceConsumer());
+		yOptionsGroupEClass.getESuperTypes().add(this.getYInput());
+		yOptionsGroupEClass.getESuperTypes().add(theCoreModelPackage.getYCollectionBindable());
+		yOptionsGroupEClass.getESuperTypes().add(theCoreModelPackage.getYSelectionBindable());
+		yOptionsGroupEClass.getESuperTypes().add(theCoreModelPackage.getYMultiSelectionBindable());
+		yOptionsGroupEClass.getESuperTypes().add(this.getYBeanServiceConsumer());
+		yListEClass.getESuperTypes().add(this.getYInput());
+		yListEClass.getESuperTypes().add(theCoreModelPackage.getYCollectionBindable());
+		yListEClass.getESuperTypes().add(theCoreModelPackage.getYSelectionBindable());
+		yListEClass.getESuperTypes().add(theCoreModelPackage.getYMultiSelectionBindable());
+		yListEClass.getESuperTypes().add(this.getYBeanServiceConsumer());
+		yLabelEClass.getESuperTypes().add(theCoreModelPackage.getYField());
+		yLabelEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yImageEClass.getESuperTypes().add(theCoreModelPackage.getYField());
+		yImageEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yTextFieldEClass.getESuperTypes().add(this.getYInput());
+		yTextFieldEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yBeanReferenceFieldEClass.getESuperTypes().add(this.getYInput());
+		yBeanReferenceFieldEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yBeanReferenceFieldEClass.getESuperTypes().add(this.getYBeanServiceConsumer());
+		yTextAreaEClass.getESuperTypes().add(this.getYInput());
+		yTextAreaEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yCheckBoxEClass.getESuperTypes().add(this.getYInput());
+		yCheckBoxEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yBrowserEClass.getESuperTypes().add(this.getYInput());
+		yBrowserEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yDateTimeEClass.getESuperTypes().add(this.getYInput());
+		yDateTimeEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yDecimalFieldEClass.getESuperTypes().add(this.getYInput());
+		yDecimalFieldEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yNumericFieldEClass.getESuperTypes().add(this.getYInput());
+		yNumericFieldEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yComboBoxEClass.getESuperTypes().add(this.getYInput());
+		yComboBoxEClass.getESuperTypes().add(theCoreModelPackage.getYCollectionBindable());
+		yComboBoxEClass.getESuperTypes().add(theCoreModelPackage.getYSelectionBindable());
+		yComboBoxEClass.getESuperTypes().add(this.getYBeanServiceConsumer());
+		yButtonEClass.getESuperTypes().add(theCoreModelPackage.getYAction());
+		yButtonEClass.getESuperTypes().add(theCoreModelPackage.getYVisibleable());
+		yButtonEClass.getESuperTypes().add(theCoreModelPackage.getYEditable());
+		yButtonEClass.getESuperTypes().add(theCoreModelPackage.getYEnable());
+		yButtonEClass.getESuperTypes().add(theCoreModelPackage.getYFocusable());
+		ySliderEClass.getESuperTypes().add(this.getYInput());
+		ySliderEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yToggleButtonEClass.getESuperTypes().add(theCoreModelPackage.getYAction());
+		yToggleButtonEClass.getESuperTypes().add(theCoreModelPackage.getYActivateable());
+		yToggleButtonEClass.getESuperTypes().add(theCoreModelPackage.getYFocusable());
+		yProgressBarEClass.getESuperTypes().add(this.getYInput());
+		yProgressBarEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yTabSheetEClass.getESuperTypes().add(theCoreModelPackage.getYEmbeddable());
+		yTabSheetEClass.getESuperTypes().add(theCoreModelPackage.getYFocusable());
+		yTabEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		yTabEClass.getESuperTypes().add(theCoreModelPackage.getYCssAble());
+		yMasterDetailEClass.getESuperTypes().add(this.getYInput());
+		yMasterDetailEClass.getESuperTypes().add(theCoreModelPackage.getYCollectionBindable());
+		yMasterDetailEClass.getESuperTypes().add(theCoreModelPackage.getYSelectionBindable());
+		yFormLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYLayout());
+		yFormLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYSpacingable());
+		yFormLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYMarginable());
+		yFormLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYAlignmentContainer());
+		ySearchFieldEClass.getESuperTypes().add(this.getYInput());
+		ySearchFieldEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yTextSearchFieldEClass.getESuperTypes().add(this.getYSearchField());
+		yBooleanSearchFieldEClass.getESuperTypes().add(this.getYSearchField());
+		yNumericSearchFieldEClass.getESuperTypes().add(this.getYSearchField());
+		yReferenceSearchFieldEClass.getESuperTypes().add(this.getYSearchField());
+		yPanelEClass.getESuperTypes().add(theCoreModelPackage.getYLayout());
+		yPanelEClass.getESuperTypes().add(theCoreModelPackage.getYFocusable());
+		ySplitPanelEClass.getESuperTypes().add(theCoreModelPackage.getYLayout());
+		ySearchPanelEClass.getESuperTypes().add(theCoreModelPackage.getYLayout());
+		ySearchPanelEClass.getESuperTypes().add(theCoreModelPackage.getYSpacingable());
+		ySearchPanelEClass.getESuperTypes().add(theCoreModelPackage.getYMarginable());
+		yEnumOptionsGroupEClass.getESuperTypes().add(this.getYInput());
+		yEnumOptionsGroupEClass.getESuperTypes().add(theCoreModelPackage.getYCollectionBindable());
+		yEnumOptionsGroupEClass.getESuperTypes().add(theCoreModelPackage.getYSelectionBindable());
+		yEnumOptionsGroupEClass.getESuperTypes().add(theCoreModelPackage.getYMultiSelectionBindable());
+		yEnumListEClass.getESuperTypes().add(this.getYInput());
+		yEnumListEClass.getESuperTypes().add(theCoreModelPackage.getYCollectionBindable());
+		yEnumListEClass.getESuperTypes().add(theCoreModelPackage.getYSelectionBindable());
+		yEnumListEClass.getESuperTypes().add(theCoreModelPackage.getYMultiSelectionBindable());
+		yEnumComboBoxEClass.getESuperTypes().add(this.getYInput());
+		yEnumComboBoxEClass.getESuperTypes().add(theCoreModelPackage.getYCollectionBindable());
+		yEnumComboBoxEClass.getESuperTypes().add(theCoreModelPackage.getYSelectionBindable());
+		yAddToTableCommandEClass.getESuperTypes().add(theCoreModelPackage.getYCommand());
+		yRemoveFromTableCommandEClass.getESuperTypes().add(theCoreModelPackage.getYCommand());
+		ySetNewBeanInstanceCommandEClass.getESuperTypes().add(theCoreModelPackage.getYCommand());
+		yCssLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYLayout());
+		yCssLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYSpacingable());
+		yCssLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYMarginable());
+		yCssLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYAlignmentContainer());
+		yFilterEClass.getESuperTypes().add(theCoreModelPackage.getYElement());
+		yAbsoluteLayoutEClass.getESuperTypes().add(theCoreModelPackage.getYLayout());
+		ySuggestTextFieldEClass.getESuperTypes().add(this.getYInput());
+		ySuggestTextFieldEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+		yPasswordFieldEClass.getESuperTypes().add(this.getYInput());
+		yPasswordFieldEClass.getESuperTypes().add(theCoreModelPackage.getYValueBindable());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(yInputEClass, YInput.class, "YInput", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yGridLayoutEClass, YGridLayout.class, "YGridLayout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYGridLayout_CellStyles(), this.getYGridLayoutCellStyle(), null, "cellStyles", null, 0, -1, YGridLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYGridLayout_Columns(), ecorePackage.getEInt(), "columns", null, 0, 1, YGridLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		EOperation op = addEOperation(yGridLayoutEClass, this.getYGridLayoutCellStyle(), "addGridLayoutCellStyle", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, theCoreModelPackage.getYEmbeddable(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yGridLayoutCellStyleEClass, YGridLayoutCellStyle.class, "YGridLayoutCellStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYGridLayoutCellStyle_Target(), theCoreModelPackage.getYEmbeddable(), null, "target", null, 1, 1, YGridLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYGridLayoutCellStyle_Alignment(), theCoreModelPackage.getYAlignment(), "alignment", "UNDEFINED", 0, 1, YGridLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYGridLayoutCellStyle_SpanInfo(), this.getYSpanInfo(), null, "spanInfo", null, 0, 1, YGridLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(yGridLayoutCellStyleEClass, this.getYSpanInfo(), "addSpanInfo", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "col1", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "row1", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "col2", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "row2", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yHorizontalLayoutEClass, YHorizontalLayout.class, "YHorizontalLayout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYHorizontalLayout_CellStyles(), this.getYHorizontalLayoutCellStyle(), null, "cellStyles", null, 0, -1, YHorizontalLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(yHorizontalLayoutEClass, this.getYHorizontalLayoutCellStyle(), "getCellStyle", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, theCoreModelPackage.getYEmbeddable(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yHorizontalLayoutCellStyleEClass, YHorizontalLayoutCellStyle.class, "YHorizontalLayoutCellStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYHorizontalLayoutCellStyle_Target(), theCoreModelPackage.getYEmbeddable(), null, "target", null, 1, 1, YHorizontalLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYHorizontalLayoutCellStyle_Alignment(), theCoreModelPackage.getYAlignment(), "alignment", "UNDEFINED", 0, 1, YHorizontalLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yVerticalLayoutEClass, YVerticalLayout.class, "YVerticalLayout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYVerticalLayout_CellStyles(), this.getYVerticalLayoutCellStyle(), null, "cellStyles", null, 0, -1, YVerticalLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yVerticalLayoutCellStyleEClass, YVerticalLayoutCellStyle.class, "YVerticalLayoutCellStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYVerticalLayoutCellStyle_Target(), theCoreModelPackage.getYEmbeddable(), null, "target", null, 1, 1, YVerticalLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYVerticalLayoutCellStyle_Alignment(), theCoreModelPackage.getYAlignment(), "alignment", "UNDEFINED", 0, 1, YVerticalLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(ySpanInfoEClass, YSpanInfo.class, "YSpanInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYSpanInfo_ColumnFrom(), ecorePackage.getEInt(), "columnFrom", null, 0, 1, YSpanInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSpanInfo_RowFrom(), ecorePackage.getEInt(), "rowFrom", null, 0, 1, YSpanInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSpanInfo_ColumnTo(), ecorePackage.getEInt(), "columnTo", null, 0, 1, YSpanInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSpanInfo_RowTo(), ecorePackage.getEInt(), "rowTo", null, 0, 1, YSpanInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yTableEClass, YTable.class, "YTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYTable_Datatype(), theExtDatatypesPackage.getYTableDatatype(), null, "datatype", null, 0, 1, YTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYTable_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTable_SelectionType(), this.getYSelectionType(), "selectionType", null, 0, 1, YTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTable_Selection(), ecorePackage.getEJavaObject(), "selection", null, 0, 1, YTable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTable_MultiSelection(), ecorePackage.getEJavaObject(), "multiSelection", null, 0, -1, YTable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTable_Collection(), ecorePackage.getEJavaObject(), "collection", null, 0, -1, YTable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		EGenericType g1 = createEGenericType(ecorePackage.getEJavaClass());
+		EGenericType g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYTable_Type(), g1, "type", null, 0, 1, YTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTable_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTable_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYTable_Columns(), this.getYColumn(), null, "columns", null, 0, -1, YTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTable_ItemImageProperty(), ecorePackage.getEString(), "itemImageProperty", null, 0, 1, YTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTable_Filter(), ecorePackage.getEJavaObject(), "filter", null, 0, 1, YTable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTable_Refresh(), ecorePackage.getEJavaObject(), "refresh", null, 0, 1, YTable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYTable_SortOrder(), this.getYSortColumn(), null, "sortOrder", null, 0, -1, YTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yColumnEClass, YColumn.class, "YColumn", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYColumn_Icon(), ecorePackage.getEString(), "icon", null, 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYColumn_Visible(), ecorePackage.getEBoolean(), "visible", "true", 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYColumn_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYColumn_OrphanDatadescriptions(), theDatatypesPackage.getYDatadescription(), null, "orphanDatadescriptions", null, 0, -1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYColumn_Orderable(), ecorePackage.getEBoolean(), "orderable", "true", 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYColumn_Collapsed(), ecorePackage.getEBoolean(), "collapsed", "false", 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYColumn_Collapsible(), ecorePackage.getEBoolean(), "collapsible", "true", 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYColumn_Alignment(), theCoreModelPackage.getYFlatAlignment(), "alignment", "LEFT", 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYColumn_ExpandRatio(), ecorePackage.getEFloat(), "expandRatio", "-1.0f", 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYColumn_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYColumn_Converter(), theCoreModelPackage.getYConverter(), null, "converter", null, 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYColumn_Type(), g1, "type", null, 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYColumn_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(ySortColumnEClass, YSortColumn.class, "YSortColumn", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYSortColumn_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YSortColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYSortColumn_Type(), g1, "type", null, 0, 1, YSortColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSortColumn_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YSortColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSortColumn_Asc(), ecorePackage.getEBoolean(), "asc", "true", 0, 1, YSortColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yTreeEClass, YTree.class, "YTree", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYTree_Datatype(), theExtDatatypesPackage.getYTreeDatatype(), null, "datatype", null, 0, 1, YTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYTree_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTree_SelectionType(), this.getYSelectionType(), "selectionType", null, 0, 1, YTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTree_Selection(), ecorePackage.getEJavaObject(), "selection", null, 0, 1, YTree.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTree_MultiSelection(), ecorePackage.getEJavaObject(), "multiSelection", null, 0, -1, YTree.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTree_Collection(), ecorePackage.getEJavaObject(), "collection", null, 0, -1, YTree.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYTree_Type(), g1, "type", null, 0, 1, YTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTree_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTree_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yOptionsGroupEClass, YOptionsGroup.class, "YOptionsGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYOptionsGroup_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYOptionsGroup_Datatype(), theExtDatatypesPackage.getYOptionsGroupDataType(), null, "datatype", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_SelectionType(), this.getYSelectionType(), "selectionType", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_Selection(), ecorePackage.getEJavaObject(), "selection", null, 0, 1, YOptionsGroup.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_MultiSelection(), ecorePackage.getEJavaObject(), "multiSelection", null, 0, -1, YOptionsGroup.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_Collection(), ecorePackage.getEJavaObject(), "collection", null, 0, -1, YOptionsGroup.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYOptionsGroup_Type(), g1, "type", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_CaptionProperty(), ecorePackage.getEString(), "captionProperty", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_ImageProperty(), ecorePackage.getEString(), "imageProperty", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_DescriptionProperty(), ecorePackage.getEString(), "descriptionProperty", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYOptionsGroup_Description(), ecorePackage.getEString(), "description", null, 0, 1, YOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yListEClass, YList.class, "YList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYList_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYList_Datatype(), theExtDatatypesPackage.getYListDataType(), null, "datatype", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_SelectionType(), this.getYSelectionType(), "selectionType", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_Selection(), ecorePackage.getEJavaObject(), "selection", null, 0, 1, YList.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_MultiSelection(), ecorePackage.getEJavaObject(), "multiSelection", null, 0, -1, YList.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_Collection(), ecorePackage.getEJavaObject(), "collection", null, 0, -1, YList.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYList_Type(), g1, "type", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_CaptionProperty(), ecorePackage.getEString(), "captionProperty", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_ImageProperty(), ecorePackage.getEString(), "imageProperty", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_DescriptionProperty(), ecorePackage.getEString(), "descriptionProperty", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYList_Description(), ecorePackage.getEString(), "description", null, 0, 1, YList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yLabelEClass, YLabel.class, "YLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYLabel_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YLabel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYLabel_Value(), ecorePackage.getEString(), "value", null, 0, 1, YLabel.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yImageEClass, YImage.class, "YImage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYImage_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YImage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYImage_Value(), ecorePackage.getEString(), "value", null, 0, 1, YImage.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yTextFieldEClass, YTextField.class, "YTextField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYTextField_Datatype(), theExtDatatypesPackage.getYTextDatatype(), null, "datatype", null, 0, 1, YTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYTextField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTextField_Value(), ecorePackage.getEString(), "value", null, 0, 1, YTextField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yBeanReferenceFieldEClass, YBeanReferenceField.class, "YBeanReferenceField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYBeanReferenceField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_Value(), ecorePackage.getEJavaObject(), "value", null, 0, 1, YBeanReferenceField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYBeanReferenceField_Type(), g1, "type", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYBeanReferenceField_InMemoryBeanProvider(), g1, "inMemoryBeanProvider", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_InMemoryBeanProviderQualifiedName(), ecorePackage.getEString(), "inMemoryBeanProviderQualifiedName", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_CaptionPropertyPath(), ecorePackage.getEString(), "captionPropertyPath", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_ImagePropertyPath(), ecorePackage.getEString(), "imagePropertyPath", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_DescriptionProperty(), ecorePackage.getEString(), "descriptionProperty", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_Description(), ecorePackage.getEString(), "description", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYBeanReferenceField_ReferenceSourceType(), g1, "referenceSourceType", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_ReferenceSourceTypeQualifiedName(), ecorePackage.getEString(), "referenceSourceTypeQualifiedName", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_ReferenceSourceTypeProperty(), ecorePackage.getEString(), "referenceSourceTypeProperty", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBeanReferenceField_Required(), ecorePackage.getEBoolean(), "required", null, 0, 1, YBeanReferenceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yTextAreaEClass, YTextArea.class, "YTextArea", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYTextArea_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YTextArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYTextArea_Datatype(), theExtDatatypesPackage.getYTextAreaDatatype(), null, "datatype", null, 0, 1, YTextArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTextArea_Value(), ecorePackage.getEString(), "value", null, 0, 1, YTextArea.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTextArea_WordWrap(), ecorePackage.getEBoolean(), "wordWrap", "true", 0, 1, YTextArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTextArea_Rows(), ecorePackage.getEInt(), "rows", "3", 0, 1, YTextArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yCheckBoxEClass, YCheckBox.class, "YCheckBox", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYCheckBox_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YCheckBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYCheckBox_Datatype(), theExtDatatypesPackage.getYCheckBoxDatatype(), null, "datatype", null, 0, 1, YCheckBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYCheckBox_Value(), ecorePackage.getEBoolean(), "value", null, 0, 1, YCheckBox.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yBrowserEClass, YBrowser.class, "YBrowser", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYBrowser_Datatype(), theExtDatatypesPackage.getYBrowserDatatype(), null, "datatype", null, 0, 1, YBrowser.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYBrowser_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YBrowser.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBrowser_Value(), ecorePackage.getEJavaObject(), "value", null, 0, 1, YBrowser.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yDateTimeEClass, YDateTime.class, "YDateTime", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYDateTime_Datatype(), theExtDatatypesPackage.getYDateTimeDatatype(), null, "datatype", null, 0, 1, YDateTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYDateTime_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YDateTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDateTime_Value(), ecorePackage.getEDate(), "value", null, 0, 1, YDateTime.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yDecimalFieldEClass, YDecimalField.class, "YDecimalField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYDecimalField_Datatype(), theExtDatatypesPackage.getYDecimalDatatype(), null, "datatype", null, 0, 1, YDecimalField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYDecimalField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YDecimalField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYDecimalField_Value(), ecorePackage.getEDouble(), "value", null, 0, 1, YDecimalField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yNumericFieldEClass, YNumericField.class, "YNumericField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYNumericField_Datatype(), theExtDatatypesPackage.getYNumericDatatype(), null, "datatype", null, 0, 1, YNumericField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYNumericField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YNumericField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYNumericField_Value(), ecorePackage.getELong(), "value", null, 0, 1, YNumericField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yComboBoxEClass, YComboBox.class, "YComboBox", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYComboBox_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYComboBox_Datatype(), theExtDatatypesPackage.getYComboBoxDatatype(), null, "datatype", null, 0, 1, YComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYComboBox_Selection(), ecorePackage.getEJavaObject(), "selection", null, 0, 1, YComboBox.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYComboBox_Collection(), ecorePackage.getEJavaObject(), "collection", null, 0, -1, YComboBox.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYComboBox_Type(), g1, "type", null, 0, 1, YComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYComboBox_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYComboBox_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYComboBox_CaptionProperty(), ecorePackage.getEString(), "captionProperty", null, 0, 1, YComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYComboBox_ImageProperty(), ecorePackage.getEString(), "imageProperty", null, 0, 1, YComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYComboBox_DescriptionProperty(), ecorePackage.getEString(), "descriptionProperty", null, 0, 1, YComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYComboBox_Description(), ecorePackage.getEString(), "description", null, 0, 1, YComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yButtonEClass, YButton.class, "YButton", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYButton_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYButton_ClickListeners(), this.getYButtonClickListener(), "clickListeners", null, 0, -1, YButton.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYButton_LastClickTime(), ecorePackage.getELong(), "lastClickTime", null, 0, 1, YButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYButton_Image(), ecorePackage.getEJavaObject(), "image", null, 0, 1, YButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(yButtonEClass, null, "addClickListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYButtonClickListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(yButtonEClass, null, "removeClickListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getYButtonClickListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(yButtonEClass, theBindingPackage.getYECViewModelValueBindingEndpoint(), "createClickEndpoint", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(ySliderEClass, YSlider.class, "YSlider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYSlider_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YSlider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSlider_Value(), ecorePackage.getEDouble(), "value", null, 0, 1, YSlider.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSlider_MaxValue(), ecorePackage.getEDouble(), "maxValue", "100", 0, 1, YSlider.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSlider_MinValue(), ecorePackage.getEDouble(), "minValue", "0", 0, 1, YSlider.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSlider_Resolution(), ecorePackage.getEInt(), "resolution", "10", 0, 1, YSlider.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSlider_Orientation(), theCoreModelPackage.getYOrientation(), "orientation", null, 0, 1, YSlider.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yToggleButtonEClass, YToggleButton.class, "YToggleButton", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYToggleButton_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YToggleButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yProgressBarEClass, YProgressBar.class, "YProgressBar", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYProgressBar_Datatype(), theExtDatatypesPackage.getYProgressBarDatatype(), null, "datatype", null, 0, 1, YProgressBar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYProgressBar_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YProgressBar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYProgressBar_Value(), ecorePackage.getEFloat(), "value", null, 0, 1, YProgressBar.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yTabSheetEClass, YTabSheet.class, "YTabSheet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYTabSheet_Tabs(), this.getYTab(), this.getYTab_Parent(), "tabs", null, 0, -1, YTabSheet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yTabEClass, YTab.class, "YTab", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYTab_Parent(), this.getYTabSheet(), this.getYTabSheet_Tabs(), "parent", null, 1, 1, YTab.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYTab_Embeddable(), theCoreModelPackage.getYEmbeddable(), null, "embeddable", null, 1, 1, YTab.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYTab_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YTab.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYTab_OrphanDatadescriptions(), theDatatypesPackage.getYDatadescription(), null, "orphanDatadescriptions", null, 0, -1, YTab.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(yTabEClass, theCoreModelPackage.getYView(), "getView", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(yMasterDetailEClass, YMasterDetail.class, "YMasterDetail", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYMasterDetail_Datatype(), theExtDatatypesPackage.getYMasterDetailDatatype(), null, "datatype", null, 0, 1, YMasterDetail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYMasterDetail_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YMasterDetail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYMasterDetail_Selection(), ecorePackage.getEJavaObject(), "selection", null, 0, 1, YMasterDetail.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYMasterDetail_Collection(), ecorePackage.getEJavaObject(), "collection", null, 0, -1, YMasterDetail.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYMasterDetail_Type(), g1, "type", null, 0, 1, YMasterDetail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYMasterDetail_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YMasterDetail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYMasterDetail_MasterElement(), theCoreModelPackage.getYEmbeddable(), null, "masterElement", null, 0, 1, YMasterDetail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYMasterDetail_DetailElement(), theCoreModelPackage.getYEmbeddable(), null, "detailElement", null, 0, 1, YMasterDetail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYMasterDetail_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YMasterDetail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yFormLayoutEClass, YFormLayout.class, "YFormLayout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYFormLayout_CellStyles(), this.getYFormLayoutCellStyle(), null, "cellStyles", null, 0, -1, YFormLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yFormLayoutCellStyleEClass, YFormLayoutCellStyle.class, "YFormLayoutCellStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYFormLayoutCellStyle_Target(), theCoreModelPackage.getYEmbeddable(), null, "target", null, 1, 1, YFormLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYFormLayoutCellStyle_Alignment(), theCoreModelPackage.getYAlignment(), "alignment", "UNDEFINED", 0, 1, YFormLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(ySearchFieldEClass, YSearchField.class, "YSearchField", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(yTextSearchFieldEClass, YTextSearchField.class, "YTextSearchField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYTextSearchField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YTextSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTextSearchField_Value(), ecorePackage.getEString(), "value", null, 0, 1, YTextSearchField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTextSearchField_Wildcard(), this.getYSearchWildcards(), "wildcard", null, 0, 1, YTextSearchField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYTextSearchField_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YTextSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yBooleanSearchFieldEClass, YBooleanSearchField.class, "YBooleanSearchField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYBooleanSearchField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YBooleanSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBooleanSearchField_Value(), this.getYBooleanSearchOption(), "value", null, 0, 1, YBooleanSearchField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBooleanSearchField_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YBooleanSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yNumericSearchFieldEClass, YNumericSearchField.class, "YNumericSearchField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYNumericSearchField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YNumericSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYNumericSearchField_Value(), ecorePackage.getEString(), "value", null, 0, 1, YNumericSearchField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYNumericSearchField_Wildcard(), this.getYSearchWildcards(), "wildcard", null, 0, 1, YNumericSearchField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYNumericSearchField_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YNumericSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYNumericSearchField_Type(), ecorePackage.getEJavaClass(), "type", null, 0, 1, YNumericSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYNumericSearchField_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YNumericSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yReferenceSearchFieldEClass, YReferenceSearchField.class, "YReferenceSearchField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYReferenceSearchField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YReferenceSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYReferenceSearchField_Value(), ecorePackage.getEJavaObject(), "value", null, 0, 1, YReferenceSearchField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYReferenceSearchField_Wildcard(), this.getYSearchWildcards(), "wildcard", null, 0, 1, YReferenceSearchField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYReferenceSearchField_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YReferenceSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYReferenceSearchField_Type(), g1, "type", null, 0, 1, YReferenceSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYReferenceSearchField_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YReferenceSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYReferenceSearchField_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YReferenceSearchField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yPanelEClass, YPanel.class, "YPanel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYPanel_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYPanel_FirstContent(), theCoreModelPackage.getYEmbeddable(), null, "firstContent", null, 0, 1, YPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYPanel_SecondContent(), theCoreModelPackage.getYEmbeddable(), null, "secondContent", null, 0, 1, YPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(yPanelEClass, this.getYHorizontalLayoutCellStyle(), "getCellStyle", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, theCoreModelPackage.getYEmbeddable(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(ySplitPanelEClass, YSplitPanel.class, "YSplitPanel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYSplitPanel_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YSplitPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYSplitPanel_CellStyles(), this.getYHorizontalLayoutCellStyle(), null, "cellStyles", null, 0, -1, YSplitPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSplitPanel_FillHorizontal(), ecorePackage.getEBoolean(), "fillHorizontal", "true", 0, 1, YSplitPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSplitPanel_SplitPosition(), ecorePackage.getEInt(), "splitPosition", "50", 0, 1, YSplitPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSplitPanel_Vertical(), ecorePackage.getEBoolean(), "vertical", "true", 0, 1, YSplitPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(ySplitPanelEClass, this.getYHorizontalLayoutCellStyle(), "getCellStyle", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, theCoreModelPackage.getYEmbeddable(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(ySearchPanelEClass, YSearchPanel.class, "YSearchPanel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYSearchPanel_Type(), g1, "type", null, 0, 1, YSearchPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSearchPanel_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YSearchPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSearchPanel_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YSearchPanel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSearchPanel_ApplyFilter(), ecorePackage.getEJavaObject(), "applyFilter", null, 0, 1, YSearchPanel.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSearchPanel_Filter(), ecorePackage.getEJavaObject(), "filter", null, 0, 1, YSearchPanel.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEnumOptionsGroupEClass, YEnumOptionsGroup.class, "YEnumOptionsGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYEnumOptionsGroup_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YEnumOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYEnumOptionsGroup_Datatype(), theExtDatatypesPackage.getYOptionsGroupDataType(), null, "datatype", null, 0, 1, YEnumOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumOptionsGroup_SelectionType(), this.getYSelectionType(), "selectionType", null, 0, 1, YEnumOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumOptionsGroup_Selection(), ecorePackage.getEJavaObject(), "selection", null, 0, 1, YEnumOptionsGroup.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumOptionsGroup_MultiSelection(), ecorePackage.getEJavaObject(), "multiSelection", null, 0, -1, YEnumOptionsGroup.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYEnumOptionsGroup_Type(), g1, "type", null, 0, 1, YEnumOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumOptionsGroup_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YEnumOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumOptionsGroup_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YEnumOptionsGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEnumListEClass, YEnumList.class, "YEnumList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYEnumList_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YEnumList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYEnumList_Datatype(), theExtDatatypesPackage.getYListDataType(), null, "datatype", null, 0, 1, YEnumList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumList_SelectionType(), this.getYSelectionType(), "selectionType", null, 0, 1, YEnumList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumList_Selection(), ecorePackage.getEJavaObject(), "selection", null, 0, 1, YEnumList.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumList_MultiSelection(), ecorePackage.getEJavaObject(), "multiSelection", null, 0, -1, YEnumList.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYEnumList_Type(), g1, "type", null, 0, 1, YEnumList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumList_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YEnumList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumList_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YEnumList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yEnumComboBoxEClass, YEnumComboBox.class, "YEnumComboBox", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYEnumComboBox_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YEnumComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYEnumComboBox_Datatype(), theExtDatatypesPackage.getYComboBoxDatatype(), null, "datatype", null, 0, 1, YEnumComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumComboBox_Selection(), ecorePackage.getEJavaObject(), "selection", null, 0, 1, YEnumComboBox.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYEnumComboBox_Type(), g1, "type", null, 0, 1, YEnumComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumComboBox_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YEnumComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYEnumComboBox_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YEnumComboBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yBeanServiceConsumerEClass, YBeanServiceConsumer.class, "YBeanServiceConsumer", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYBeanServiceConsumer_UseBeanService(), ecorePackage.getEBoolean(), "useBeanService", null, 0, 1, YBeanServiceConsumer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yAddToTableCommandEClass, YAddToTableCommand.class, "YAddToTableCommand", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYAddToTableCommand_Table(), this.getYTable(), null, "table", null, 0, 1, YAddToTableCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYAddToTableCommand_Trigger(), ecorePackage.getEJavaObject(), "trigger", null, 0, 1, YAddToTableCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yRemoveFromTableCommandEClass, YRemoveFromTableCommand.class, "YRemoveFromTableCommand", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYRemoveFromTableCommand_Table(), this.getYTable(), null, "table", null, 0, 1, YRemoveFromTableCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYRemoveFromTableCommand_Trigger(), ecorePackage.getEJavaObject(), "trigger", null, 0, 1, YRemoveFromTableCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yBrowserStreamInputEClass, YBrowserStreamInput.class, "YBrowserStreamInput", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYBrowserStreamInput_Filename(), ecorePackage.getEString(), "filename", null, 1, 1, YBrowserStreamInput.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBrowserStreamInput_InputStream(), this.getYInputStream(), "inputStream", null, 1, 1, YBrowserStreamInput.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYBrowserStreamInput_MimeType(), ecorePackage.getEString(), "mimeType", null, 1, 1, YBrowserStreamInput.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(ySetNewBeanInstanceCommandEClass, YSetNewBeanInstanceCommand.class, "YSetNewBeanInstanceCommand", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYSetNewBeanInstanceCommand_Target(), theBindingPackage.getYValueBindingEndpoint(), null, "target", null, 0, 1, YSetNewBeanInstanceCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSetNewBeanInstanceCommand_Trigger(), ecorePackage.getEJavaObject(), "trigger", null, 0, 1, YSetNewBeanInstanceCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYSetNewBeanInstanceCommand_Type(), g1, "type", null, 0, 1, YSetNewBeanInstanceCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSetNewBeanInstanceCommand_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YSetNewBeanInstanceCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSetNewBeanInstanceCommand_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YSetNewBeanInstanceCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yCssLayoutEClass, YCssLayout.class, "YCssLayout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYCssLayout_CellStyles(), this.getYCssLayoutCellStyle(), null, "cellStyles", null, 0, -1, YCssLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yCssLayoutCellStyleEClass, YCssLayoutCellStyle.class, "YCssLayoutCellStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYCssLayoutCellStyle_Target(), theCoreModelPackage.getYEmbeddable(), null, "target", null, 1, 1, YCssLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYCssLayoutCellStyle_Alignment(), theCoreModelPackage.getYAlignment(), "alignment", "UNDEFINED", 0, 1, YCssLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yFilterEClass, YFilter.class, "YFilter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getYFilter_PropertyPath(), ecorePackage.getEString(), "propertyPath", null, 0, 1, YFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYFilter_FilterValue(), ecorePackage.getEJavaObject(), "filterValue", null, 0, 1, YFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yAbsoluteLayoutEClass, YAbsoluteLayout.class, "YAbsoluteLayout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYAbsoluteLayout_CellStyles(), this.getYAbsoluteLayoutCellStyle(), null, "cellStyles", null, 0, -1, YAbsoluteLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYAbsoluteLayout_ChildResizeEnabled(), ecorePackage.getEBoolean(), "childResizeEnabled", null, 0, 1, YAbsoluteLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYAbsoluteLayout_ChildMoveEnabled(), ecorePackage.getEBoolean(), "childMoveEnabled", null, 0, 1, YAbsoluteLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yAbsoluteLayoutCellStyleEClass, YAbsoluteLayoutCellStyle.class, "YAbsoluteLayoutCellStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYAbsoluteLayoutCellStyle_Target(), theCoreModelPackage.getYEmbeddable(), null, "target", null, 1, 1, YAbsoluteLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYAbsoluteLayoutCellStyle_Top(), ecorePackage.getEInt(), "top", "-1", 0, 1, YAbsoluteLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYAbsoluteLayoutCellStyle_Bottom(), ecorePackage.getEInt(), "bottom", "-1", 0, 1, YAbsoluteLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYAbsoluteLayoutCellStyle_Left(), ecorePackage.getEInt(), "left", "-1", 0, 1, YAbsoluteLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYAbsoluteLayoutCellStyle_Right(), ecorePackage.getEInt(), "right", "-1", 0, 1, YAbsoluteLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYAbsoluteLayoutCellStyle_ZIndex(), ecorePackage.getEInt(), "zIndex", "-1", 0, 1, YAbsoluteLayoutCellStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(ySuggestTextFieldEClass, YSuggestTextField.class, "YSuggestTextField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYSuggestTextField_Datatype(), theExtDatatypesPackage.getYTextDatatype(), null, "datatype", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getYSuggestTextField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_Value(), ecorePackage.getEString(), "value", null, 0, 1, YSuggestTextField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_UseSuggestions(), ecorePackage.getEBoolean(), "useSuggestions", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_AutoHidePopup(), ecorePackage.getEBoolean(), "autoHidePopup", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_LastSuggestion(), ecorePackage.getEJavaObject(), "lastSuggestion", null, 0, 1, YSuggestTextField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEJavaClass());
+		g2 = createEGenericType();
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getYSuggestTextField_Type(), g1, "type", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_EmfNsURI(), ecorePackage.getEString(), "emfNsURI", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_TypeQualifiedName(), ecorePackage.getEString(), "typeQualifiedName", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_ItemCaptionProperty(), ecorePackage.getEString(), "itemCaptionProperty", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_ItemFilterProperty(), ecorePackage.getEString(), "itemFilterProperty", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_ItemUUIDProperty(), ecorePackage.getEString(), "itemUUIDProperty", null, 0, 1, YSuggestTextField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYSuggestTextField_Event(), this.getYSuggestTextFieldEvents(), "event", null, 0, 1, YSuggestTextField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(yPasswordFieldEClass, YPasswordField.class, "YPasswordField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getYPasswordField_Datadescription(), theDatatypesPackage.getYDatadescription(), null, "datadescription", null, 0, 1, YPasswordField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getYPasswordField_Value(), ecorePackage.getEString(), "value", null, 0, 1, YPasswordField.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(ySelectionTypeEEnum, YSelectionType.class, "YSelectionType");
+		addEEnumLiteral(ySelectionTypeEEnum, YSelectionType.SINGLE);
+		addEEnumLiteral(ySelectionTypeEEnum, YSelectionType.MULTI);
+
+		initEEnum(yBooleanSearchOptionEEnum, YBooleanSearchOption.class, "YBooleanSearchOption");
+		addEEnumLiteral(yBooleanSearchOptionEEnum, YBooleanSearchOption.TRUE);
+		addEEnumLiteral(yBooleanSearchOptionEEnum, YBooleanSearchOption.FALSE);
+		addEEnumLiteral(yBooleanSearchOptionEEnum, YBooleanSearchOption.IGNORE);
+
+		initEEnum(ySearchWildcardsEEnum, YSearchWildcards.class, "YSearchWildcards");
+		addEEnumLiteral(ySearchWildcardsEEnum, YSearchWildcards.GT);
+		addEEnumLiteral(ySearchWildcardsEEnum, YSearchWildcards.GE);
+		addEEnumLiteral(ySearchWildcardsEEnum, YSearchWildcards.LT);
+		addEEnumLiteral(ySearchWildcardsEEnum, YSearchWildcards.LE);
+		addEEnumLiteral(ySearchWildcardsEEnum, YSearchWildcards.EQ);
+		addEEnumLiteral(ySearchWildcardsEEnum, YSearchWildcards.NE);
+		addEEnumLiteral(ySearchWildcardsEEnum, YSearchWildcards.ANY);
+
+		initEEnum(ySuggestTextFieldEventsEEnum, YSuggestTextFieldEvents.class, "YSuggestTextFieldEvents");
+		addEEnumLiteral(ySuggestTextFieldEventsEEnum, YSuggestTextFieldEvents.OPEN_POPUP);
+		addEEnumLiteral(ySuggestTextFieldEventsEEnum, YSuggestTextFieldEvents.CLOSE_POPUP);
+		addEEnumLiteral(ySuggestTextFieldEventsEEnum, YSuggestTextFieldEvents.NAVIGATE_NEXT);
+		addEEnumLiteral(ySuggestTextFieldEventsEEnum, YSuggestTextFieldEvents.NAVIGATE_PREV);
+		addEEnumLiteral(ySuggestTextFieldEventsEEnum, YSuggestTextFieldEvents.SELECT);
+		addEEnumLiteral(ySuggestTextFieldEventsEEnum, YSuggestTextFieldEvents.CLEAR);
+
+		// Initialize data types
+		initEDataType(yButtonClickListenerEDataType, YButtonClickListener.class, "YButtonClickListener", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+		initEDataType(yInputStreamEDataType, InputStream.class, "YInputStream", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // ExtensionModelPackageImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YAbsoluteLayoutCellStyleImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YAbsoluteLayoutCellStyleImpl.java
new file mode 100644
index 0000000..a920e03
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YAbsoluteLayoutCellStyleImpl.java
@@ -0,0 +1,501 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YAbsolute Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl#getTop <em>Top</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl#getBottom <em>Bottom</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl#getLeft <em>Left</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl#getRight <em>Right</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutCellStyleImpl#getZIndex <em>ZIndex</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YAbsoluteLayoutCellStyleImpl extends MinimalEObjectImpl.Container implements YAbsoluteLayoutCellStyle {
+	/**
+	 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTarget()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable target;
+
+	/**
+	 * The default value of the '{@link #getTop() <em>Top</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTop()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int TOP_EDEFAULT = -1;
+
+	/**
+	 * The cached value of the '{@link #getTop() <em>Top</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTop()
+	 * @generated
+	 * @ordered
+	 */
+	protected int top = TOP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getBottom() <em>Bottom</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBottom()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int BOTTOM_EDEFAULT = -1;
+
+	/**
+	 * The cached value of the '{@link #getBottom() <em>Bottom</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBottom()
+	 * @generated
+	 * @ordered
+	 */
+	protected int bottom = BOTTOM_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLeft() <em>Left</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeft()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int LEFT_EDEFAULT = -1;
+
+	/**
+	 * The cached value of the '{@link #getLeft() <em>Left</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeft()
+	 * @generated
+	 * @ordered
+	 */
+	protected int left = LEFT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRight() <em>Right</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRight()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int RIGHT_EDEFAULT = -1;
+
+	/**
+	 * The cached value of the '{@link #getRight() <em>Right</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRight()
+	 * @generated
+	 * @ordered
+	 */
+	protected int right = RIGHT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getZIndex() <em>ZIndex</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int ZINDEX_EDEFAULT = -1;
+
+	/**
+	 * The cached value of the '{@link #getZIndex() <em>ZIndex</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected int zIndex = ZINDEX_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YAbsoluteLayoutCellStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT_CELL_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTarget() <em>Target</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YEmbeddable getTarget() {
+		if (target != null && target.eIsProxy()) {
+			InternalEObject oldTarget = (InternalEObject)target;
+			target = (YEmbeddable)eResolveProxy(oldTarget);
+			if (target != oldTarget) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+			}
+		}
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetTarget() {
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTarget
+	 *            the new cached value of the '{@link #getTarget()
+	 *            <em>Target</em>}' reference
+	 * @generated
+	 */
+	public void setTarget(YEmbeddable newTarget) {
+		YEmbeddable oldTarget = target;
+		target = newTarget;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTop() <em>Top</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public int getTop() {
+		return top;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTop
+	 *            the new cached value of the '{@link #getTop() <em>Top</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setTop(int newTop) {
+		int oldTop = top;
+		top = newTop;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TOP, oldTop, top));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getBottom() <em>Bottom</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public int getBottom() {
+		return bottom;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newBottom
+	 *            the new cached value of the '{@link #getBottom()
+	 *            <em>Bottom</em>}' attribute
+	 * @generated
+	 */
+	public void setBottom(int newBottom) {
+		int oldBottom = bottom;
+		bottom = newBottom;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM, oldBottom, bottom));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getLeft() <em>Left</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public int getLeft() {
+		return left;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newLeft
+	 *            the new cached value of the '{@link #getLeft() <em>Left</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setLeft(int newLeft) {
+		int oldLeft = left;
+		left = newLeft;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__LEFT, oldLeft, left));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getRight() <em>Right</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public int getRight() {
+		return right;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newRight
+	 *            the new cached value of the '{@link #getRight()
+	 *            <em>Right</em>}' attribute
+	 * @generated
+	 */
+	public void setRight(int newRight) {
+		int oldRight = right;
+		right = newRight;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT, oldRight, right));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getZIndex() <em>ZIndex</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public int getZIndex() {
+		return zIndex;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newZIndex
+	 *            the new cached value of the '{@link #getZIndex()
+	 *            <em>ZIndex</em>}' attribute
+	 * @generated
+	 */
+	public void setZIndex(int newZIndex) {
+		int oldZIndex = zIndex;
+		zIndex = newZIndex;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX, oldZIndex, zIndex));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TARGET:
+				if (resolve) return getTarget();
+				return basicGetTarget();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TOP:
+				return getTop();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM:
+				return getBottom();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__LEFT:
+				return getLeft();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT:
+				return getRight();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX:
+				return getZIndex();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TOP:
+				setTop((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM:
+				setBottom((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__LEFT:
+				setLeft((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT:
+				setRight((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX:
+				setZIndex((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TOP:
+				setTop(TOP_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM:
+				setBottom(BOTTOM_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__LEFT:
+				setLeft(LEFT_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT:
+				setRight(RIGHT_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX:
+				setZIndex(ZINDEX_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TARGET:
+				return target != null;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__TOP:
+				return top != TOP_EDEFAULT;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__BOTTOM:
+				return bottom != BOTTOM_EDEFAULT;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__LEFT:
+				return left != LEFT_EDEFAULT;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__RIGHT:
+				return right != RIGHT_EDEFAULT;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE__ZINDEX:
+				return zIndex != ZINDEX_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (top: ");
+		result.append(top);
+		result.append(", bottom: ");
+		result.append(bottom);
+		result.append(", left: ");
+		result.append(left);
+		result.append(", right: ");
+		result.append(right);
+		result.append(", zIndex: ");
+		result.append(zIndex);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YAbsoluteLayoutCellStyleImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YAbsoluteLayoutImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YAbsoluteLayoutImpl.java
new file mode 100644
index 0000000..5cfc09d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YAbsoluteLayoutImpl.java
@@ -0,0 +1,283 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YAbsolute Layout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutImpl#getCellStyles <em>Cell Styles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutImpl#isChildResizeEnabled <em>Child Resize Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAbsoluteLayoutImpl#isChildMoveEnabled <em>Child Move Enabled</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YAbsoluteLayoutImpl extends YLayoutImpl implements YAbsoluteLayout {
+	/**
+	 * The cached value of the '{@link #getCellStyles() <em>Cell Styles</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCellStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YAbsoluteLayoutCellStyle> cellStyles;
+
+	/**
+	 * The default value of the '{@link #isChildResizeEnabled() <em>Child Resize Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isChildResizeEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CHILD_RESIZE_ENABLED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isChildResizeEnabled() <em>Child Resize Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isChildResizeEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean childResizeEnabled = CHILD_RESIZE_ENABLED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isChildMoveEnabled() <em>Child Move Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isChildMoveEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CHILD_MOVE_ENABLED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isChildMoveEnabled() <em>Child Move Enabled</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isChildMoveEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean childMoveEnabled = CHILD_MOVE_ENABLED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YAbsoluteLayoutImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YABSOLUTE_LAYOUT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YAbsoluteLayoutCellStyle> getCellStyles() {
+		if (cellStyles == null) {
+			cellStyles = new EObjectContainmentEList.Resolving<YAbsoluteLayoutCellStyle>(YAbsoluteLayoutCellStyle.class, this, ExtensionModelPackage.YABSOLUTE_LAYOUT__CELL_STYLES);
+		}
+		return cellStyles;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isChildResizeEnabled() {
+		return childResizeEnabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setChildResizeEnabled(boolean newChildResizeEnabled) {
+		boolean oldChildResizeEnabled = childResizeEnabled;
+		childResizeEnabled = newChildResizeEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED, oldChildResizeEnabled, childResizeEnabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isChildMoveEnabled() {
+		return childMoveEnabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setChildMoveEnabled(boolean newChildMoveEnabled) {
+		boolean oldChildMoveEnabled = childMoveEnabled;
+		childMoveEnabled = newChildMoveEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED, oldChildMoveEnabled, childMoveEnabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CELL_STYLES:
+				return ((InternalEList<?>)getCellStyles()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CELL_STYLES:
+				return getCellStyles();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED:
+				return isChildResizeEnabled();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED:
+				return isChildMoveEnabled();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				getCellStyles().addAll((Collection<? extends YAbsoluteLayoutCellStyle>)newValue);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED:
+				setChildResizeEnabled((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED:
+				setChildMoveEnabled((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED:
+				setChildResizeEnabled(CHILD_RESIZE_ENABLED_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED:
+				setChildMoveEnabled(CHILD_MOVE_ENABLED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CELL_STYLES:
+				return cellStyles != null && !cellStyles.isEmpty();
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_RESIZE_ENABLED:
+				return childResizeEnabled != CHILD_RESIZE_ENABLED_EDEFAULT;
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT__CHILD_MOVE_ENABLED:
+				return childMoveEnabled != CHILD_MOVE_ENABLED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (childResizeEnabled: ");
+		result.append(childResizeEnabled);
+		result.append(", childMoveEnabled: ");
+		result.append(childMoveEnabled);
+		result.append(')');
+		return result.toString();
+	}
+
+	public YAbsoluteLayoutCellStyle getCellStyle(YEmbeddable element) {
+		for (YAbsoluteLayoutCellStyle style : getCellStyles()) {
+			if (element == style.getTarget()) {
+				return style;
+			}
+		}
+		
+		YAbsoluteLayoutCellStyle yStyle = ExtensionModelFactory.eINSTANCE
+				.createYAbsoluteLayoutCellStyle();
+		yStyle.setTarget(element);
+		getCellStyles().add(yStyle);
+		return yStyle;
+	}
+
+} // YAbsoluteLayoutImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YAddToTableCommandImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YAddToTableCommandImpl.java
new file mode 100644
index 0000000..3d1f01b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YAddToTableCommandImpl.java
@@ -0,0 +1,546 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YAdd To Table Command</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl#getTable <em>Table</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YAddToTableCommandImpl#getTrigger <em>Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YAddToTableCommandImpl extends MinimalEObjectImpl.Container
+		implements YAddToTableCommand {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The cached value of the '{@link #getTable() <em>Table</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected YTable table;
+
+	/**
+	 * The default value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object TRIGGER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object trigger = TRIGGER_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YAddToTableCommandImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YADD_TO_TABLE_COMMAND;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getId() <em>Id</em>}' attribute
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newId
+	 *            the new cached value of the '{@link #getId() <em>Id</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YADD_TO_TABLE_COMMAND__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getName() <em>Name</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newName
+	 *            the new cached value of the '{@link #getName() <em>Name</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YADD_TO_TABLE_COMMAND__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTags() <em>Tags</em>}'
+	 *         attribute list
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getProperties()
+	 *         <em>Properties</em>}' map
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtensionModelPackage.YADD_TO_TABLE_COMMAND__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTable() <em>Table</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YTable getTable() {
+		if (table != null && table.eIsProxy()) {
+			InternalEObject oldTable = (InternalEObject)table;
+			table = (YTable)eResolveProxy(oldTable);
+			if (table != oldTable) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TABLE, oldTable, table));
+			}
+		}
+		return table;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table
+	 * @generated
+	 */
+	public YTable basicGetTable() {
+		return table;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTable
+	 *            the new cached value of the '{@link #getTable()
+	 *            <em>Table</em>}' reference
+	 * @generated
+	 */
+	public void setTable(YTable newTable) {
+		YTable oldTable = table;
+		table = newTable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TABLE, oldTable, table));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTrigger() <em>Trigger</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Object getTrigger() {
+		return trigger;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTrigger
+	 *            the new cached value of the '{@link #getTrigger()
+	 *            <em>Trigger</em>}' attribute
+	 * @generated
+	 */
+	public void setTrigger(Object newTrigger) {
+		Object oldTrigger = trigger;
+		trigger = newTrigger;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TRIGGER, oldTrigger, trigger));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view gen
+	 * @generated
+	 */
+	public YView getViewGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommand#getView()
+	 */
+	public YView getView() {
+		return findViewGeneric(eContainer());
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * Find view generic.
+	 *
+	 * @param container
+	 *            the container
+	 * @return the y view
+	 */
+	protected YView findViewGeneric(EObject container) {
+		if (container == null) {
+			return null;
+		}
+		if (container instanceof YView) {
+			return (YView) container;
+		} else if (container instanceof YLayout) {
+			return ((YLayout) container).getView();
+		} else {
+			EObject parent = container.eContainer();
+			return findViewGeneric(parent);
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TAGS:
+				return getTags();
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__ID:
+				return getId();
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__NAME:
+				return getName();
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TABLE:
+				if (resolve) return getTable();
+				return basicGetTable();
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TRIGGER:
+				return getTrigger();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__ID:
+				setId((String)newValue);
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__NAME:
+				setName((String)newValue);
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TABLE:
+				setTable((YTable)newValue);
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TRIGGER:
+				setTrigger(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TAGS:
+				getTags().clear();
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TABLE:
+				setTable((YTable)null);
+				return;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TRIGGER:
+				setTrigger(TRIGGER_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TABLE:
+				return table != null;
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND__TRIGGER:
+				return TRIGGER_EDEFAULT == null ? trigger != null : !TRIGGER_EDEFAULT.equals(trigger);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", trigger: ");
+		result.append(trigger);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Creates the trigger endpoint gen.
+	 *
+	 * @return the YEC view model value binding endpoint
+	 */
+	public YECViewModelValueBindingEndpoint createTriggerEndpointGen() {
+		throw new UnsupportedOperationException();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand#createTriggerEndpoint()
+	 */
+	@Override
+	public YECViewModelValueBindingEndpoint createTriggerEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) ExtensionModelPackage.Literals.YADD_TO_TABLE_COMMAND__TRIGGER);
+		return endpoint;
+	}
+
+} // YAddToTableCommandImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBeanReferenceFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBeanReferenceFieldImpl.java
new file mode 100644
index 0000000..e2e5a77
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBeanReferenceFieldImpl.java
@@ -0,0 +1,1346 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YBean Reference Field</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#isUseBeanService <em>Use Bean Service</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getInMemoryBeanProvider <em>In Memory Bean Provider</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getInMemoryBeanProviderQualifiedName <em>In Memory Bean Provider Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getCaptionPropertyPath <em>Caption Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getImagePropertyPath <em>Image Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getDescriptionProperty <em>Description Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getReferenceSourceType <em>Reference Source Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getReferenceSourceTypeQualifiedName <em>Reference Source Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#getReferenceSourceTypeProperty <em>Reference Source Type Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBeanReferenceFieldImpl#isRequired <em>Required</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBeanReferenceFieldImpl extends YInputImpl implements
+		YBeanReferenceField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The default value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USE_BEAN_SERVICE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean useBeanService = USE_BEAN_SERVICE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object value = VALUE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getInMemoryBeanProvider() <em>In Memory Bean Provider</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInMemoryBeanProvider()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> inMemoryBeanProvider;
+
+	/**
+	 * The default value of the '{@link #getInMemoryBeanProviderQualifiedName()
+	 * <em>In Memory Bean Provider Qualified Name</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getInMemoryBeanProviderQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getInMemoryBeanProviderQualifiedName()
+	 * <em>In Memory Bean Provider Qualified Name</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getInMemoryBeanProviderQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String inMemoryBeanProviderQualifiedName = IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCaptionPropertyPath() <em>Caption Property Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getCaptionPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CAPTION_PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCaptionPropertyPath() <em>Caption Property Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getCaptionPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String captionPropertyPath = CAPTION_PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getImagePropertyPath() <em>Image Property Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getImagePropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IMAGE_PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getImagePropertyPath() <em>Image Property Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getImagePropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String imagePropertyPath = IMAGE_PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescriptionProperty() <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescriptionProperty() <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String descriptionProperty = DESCRIPTION_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getReferenceSourceType() <em>Reference Source Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getReferenceSourceType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> referenceSourceType;
+
+	/**
+	 * The default value of the '{@link #getReferenceSourceTypeQualifiedName()
+	 * <em>Reference Source Type Qualified Name</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getReferenceSourceTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REFERENCE_SOURCE_TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getReferenceSourceTypeQualifiedName()
+	 * <em>Reference Source Type Qualified Name</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getReferenceSourceTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String referenceSourceTypeQualifiedName = REFERENCE_SOURCE_TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getReferenceSourceTypeProperty() <em>Reference Source Type Property</em>}' attribute.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @see #getReferenceSourceTypeProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REFERENCE_SOURCE_TYPE_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getReferenceSourceTypeProperty() <em>Reference Source Type Property</em>}' attribute.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @see #getReferenceSourceTypeProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String referenceSourceTypeProperty = REFERENCE_SOURCE_TYPE_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isRequired() <em>Required</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRequired()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean REQUIRED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRequired() <em>Required</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRequired()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean required = REQUIRED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YBeanReferenceFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YBEAN_REFERENCE_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isUseBeanService()
+	 *         <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public boolean isUseBeanService() {
+		return useBeanService;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newUseBeanService
+	 *            the new cached value of the '{@link #isUseBeanService()
+	 *            <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public void setUseBeanService(boolean newUseBeanService) {
+		boolean oldUseBeanService = useBeanService;
+		useBeanService = newUseBeanService;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__USE_BEAN_SERVICE, oldUseBeanService, useBeanService));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Object getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(Object newValue) {
+		Object oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getInMemoryBeanProvider()
+	 *         <em>In Memory Bean Provider</em>}' attribute
+	 * @generated
+	 */
+	public Class<?> getInMemoryBeanProvider() {
+		return inMemoryBeanProvider;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newInMemoryBeanProvider
+	 *            the new cached value of the '
+	 *            {@link #getInMemoryBeanProvider()
+	 *            <em>In Memory Bean Provider</em>}' attribute
+	 * @generated
+	 */
+	public void setInMemoryBeanProvider(Class<?> newInMemoryBeanProvider) {
+		Class<?> oldInMemoryBeanProvider = inMemoryBeanProvider;
+		inMemoryBeanProvider = newInMemoryBeanProvider;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER, oldInMemoryBeanProvider, inMemoryBeanProvider));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '
+	 *         {@link #getInMemoryBeanProviderQualifiedName()
+	 *         <em>In Memory Bean Provider Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getInMemoryBeanProviderQualifiedName() {
+		return inMemoryBeanProviderQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newInMemoryBeanProviderQualifiedName
+	 *            the new cached value of the '
+	 *            {@link #getInMemoryBeanProviderQualifiedName()
+	 *            <em>In Memory Bean Provider Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setInMemoryBeanProviderQualifiedName(
+			String newInMemoryBeanProviderQualifiedName) {
+		String oldInMemoryBeanProviderQualifiedName = inMemoryBeanProviderQualifiedName;
+		inMemoryBeanProviderQualifiedName = newInMemoryBeanProviderQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME, oldInMemoryBeanProviderQualifiedName, inMemoryBeanProviderQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCaptionPropertyPath()
+	 *         <em>Caption Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getCaptionPropertyPath() {
+		return captionPropertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCaptionPropertyPath
+	 *            the new cached value of the '{@link #getCaptionPropertyPath()
+	 *            <em>Caption Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setCaptionPropertyPath(String newCaptionPropertyPath) {
+		String oldCaptionPropertyPath = captionPropertyPath;
+		captionPropertyPath = newCaptionPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH, oldCaptionPropertyPath, captionPropertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getImagePropertyPath()
+	 *         <em>Image Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getImagePropertyPath() {
+		return imagePropertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newImagePropertyPath
+	 *            the new cached value of the '{@link #getImagePropertyPath()
+	 *            <em>Image Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setImagePropertyPath(String newImagePropertyPath) {
+		String oldImagePropertyPath = imagePropertyPath;
+		imagePropertyPath = newImagePropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH, oldImagePropertyPath, imagePropertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDescriptionProperty()
+	 *         <em>Description Property</em>}' attribute
+	 * @generated
+	 */
+	public String getDescriptionProperty() {
+		return descriptionProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDescriptionProperty
+	 *            the new cached value of the '{@link #getDescriptionProperty()
+	 *            <em>Description Property</em>}' attribute
+	 * @generated
+	 */
+	public void setDescriptionProperty(String newDescriptionProperty) {
+		String oldDescriptionProperty = descriptionProperty;
+		descriptionProperty = newDescriptionProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY, oldDescriptionProperty, descriptionProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDescription()
+	 *         <em>Description</em>}' attribute
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDescription
+	 *            the new cached value of the '{@link #getDescription()
+	 *            <em>Description</em>}' attribute
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getReferenceSourceType()
+	 *         <em>Reference Source Type</em>}' attribute
+	 * @generated
+	 */
+	public Class<?> getReferenceSourceType() {
+		return referenceSourceType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newReferenceSourceType
+	 *            the new cached value of the '{@link #getReferenceSourceType()
+	 *            <em>Reference Source Type</em>}' attribute
+	 * @generated
+	 */
+	public void setReferenceSourceType(Class<?> newReferenceSourceType) {
+		Class<?> oldReferenceSourceType = referenceSourceType;
+		referenceSourceType = newReferenceSourceType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE, oldReferenceSourceType, referenceSourceType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '
+	 *         {@link #getReferenceSourceTypeQualifiedName()
+	 *         <em>Reference Source Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getReferenceSourceTypeQualifiedName() {
+		return referenceSourceTypeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newReferenceSourceTypeQualifiedName
+	 *            the new cached value of the '
+	 *            {@link #getReferenceSourceTypeQualifiedName()
+	 *            <em>Reference Source Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setReferenceSourceTypeQualifiedName(
+			String newReferenceSourceTypeQualifiedName) {
+		String oldReferenceSourceTypeQualifiedName = referenceSourceTypeQualifiedName;
+		referenceSourceTypeQualifiedName = newReferenceSourceTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME, oldReferenceSourceTypeQualifiedName, referenceSourceTypeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '
+	 *         {@link #getReferenceSourceTypeProperty()
+	 *         <em>Reference Source Type Property</em>}' attribute
+	 * @generated
+	 */
+	public String getReferenceSourceTypeProperty() {
+		return referenceSourceTypeProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newReferenceSourceTypeProperty
+	 *            the new cached value of the '
+	 *            {@link #getReferenceSourceTypeProperty()
+	 *            <em>Reference Source Type Property</em>}' attribute
+	 * @generated
+	 */
+	public void setReferenceSourceTypeProperty(
+			String newReferenceSourceTypeProperty) {
+		String oldReferenceSourceTypeProperty = referenceSourceTypeProperty;
+		referenceSourceTypeProperty = newReferenceSourceTypeProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY, oldReferenceSourceTypeProperty, referenceSourceTypeProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRequired() {
+		return required;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRequired(boolean newRequired) {
+		boolean oldRequired = required;
+		required = newRequired;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REQUIRED, oldRequired, required));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		throw new UnsupportedOperationException();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YValueBindable#createValueEndpoint()
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__USE_BEAN_SERVICE:
+				return isUseBeanService();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE:
+				return getValue();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE:
+				return getType();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER:
+				return getInMemoryBeanProvider();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME:
+				return getInMemoryBeanProviderQualifiedName();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH:
+				return getCaptionPropertyPath();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH:
+				return getImagePropertyPath();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY:
+				return getDescriptionProperty();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION:
+				return getDescription();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE:
+				return getReferenceSourceType();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME:
+				return getReferenceSourceTypeQualifiedName();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY:
+				return getReferenceSourceTypeProperty();
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REQUIRED:
+				return isRequired();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__USE_BEAN_SERVICE:
+				setUseBeanService((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE:
+				setValue(newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER:
+				setInMemoryBeanProvider((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME:
+				setInMemoryBeanProviderQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH:
+				setCaptionPropertyPath((String)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH:
+				setImagePropertyPath((String)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY:
+				setDescriptionProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE:
+				setReferenceSourceType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME:
+				setReferenceSourceTypeQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY:
+				setReferenceSourceTypeProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REQUIRED:
+				setRequired((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__USE_BEAN_SERVICE:
+				setUseBeanService(USE_BEAN_SERVICE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER:
+				setInMemoryBeanProvider((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME:
+				setInMemoryBeanProviderQualifiedName(IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH:
+				setCaptionPropertyPath(CAPTION_PROPERTY_PATH_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH:
+				setImagePropertyPath(IMAGE_PROPERTY_PATH_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY:
+				setDescriptionProperty(DESCRIPTION_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE:
+				setReferenceSourceType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME:
+				setReferenceSourceTypeQualifiedName(REFERENCE_SOURCE_TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY:
+				setReferenceSourceTypeProperty(REFERENCE_SOURCE_TYPE_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REQUIRED:
+				setRequired(REQUIRED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__USE_BEAN_SERVICE:
+				return useBeanService != USE_BEAN_SERVICE_EDEFAULT;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER:
+				return inMemoryBeanProvider != null;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME:
+				return IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME_EDEFAULT == null ? inMemoryBeanProviderQualifiedName != null : !IN_MEMORY_BEAN_PROVIDER_QUALIFIED_NAME_EDEFAULT.equals(inMemoryBeanProviderQualifiedName);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__CAPTION_PROPERTY_PATH:
+				return CAPTION_PROPERTY_PATH_EDEFAULT == null ? captionPropertyPath != null : !CAPTION_PROPERTY_PATH_EDEFAULT.equals(captionPropertyPath);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__IMAGE_PROPERTY_PATH:
+				return IMAGE_PROPERTY_PATH_EDEFAULT == null ? imagePropertyPath != null : !IMAGE_PROPERTY_PATH_EDEFAULT.equals(imagePropertyPath);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION_PROPERTY:
+				return DESCRIPTION_PROPERTY_EDEFAULT == null ? descriptionProperty != null : !DESCRIPTION_PROPERTY_EDEFAULT.equals(descriptionProperty);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE:
+				return referenceSourceType != null;
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_QUALIFIED_NAME:
+				return REFERENCE_SOURCE_TYPE_QUALIFIED_NAME_EDEFAULT == null ? referenceSourceTypeQualifiedName != null : !REFERENCE_SOURCE_TYPE_QUALIFIED_NAME_EDEFAULT.equals(referenceSourceTypeQualifiedName);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REFERENCE_SOURCE_TYPE_PROPERTY:
+				return REFERENCE_SOURCE_TYPE_PROPERTY_EDEFAULT == null ? referenceSourceTypeProperty != null : !REFERENCE_SOURCE_TYPE_PROPERTY_EDEFAULT.equals(referenceSourceTypeProperty);
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__REQUIRED:
+				return required != REQUIRED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YBEAN_REFERENCE_FIELD__USE_BEAN_SERVICE: return ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YBEAN_REFERENCE_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (baseFeatureID) {
+				case ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE: return ExtensionModelPackage.YBEAN_REFERENCE_FIELD__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (useBeanService: ");
+		result.append(useBeanService);
+		result.append(", value: ");
+		result.append(value);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", inMemoryBeanProvider: ");
+		result.append(inMemoryBeanProvider);
+		result.append(", inMemoryBeanProviderQualifiedName: ");
+		result.append(inMemoryBeanProviderQualifiedName);
+		result.append(", captionPropertyPath: ");
+		result.append(captionPropertyPath);
+		result.append(", imagePropertyPath: ");
+		result.append(imagePropertyPath);
+		result.append(", descriptionProperty: ");
+		result.append(descriptionProperty);
+		result.append(", description: ");
+		result.append(description);
+		result.append(", referenceSourceType: ");
+		result.append(referenceSourceType);
+		result.append(", referenceSourceTypeQualifiedName: ");
+		result.append(referenceSourceTypeQualifiedName);
+		result.append(", referenceSourceTypeProperty: ");
+		result.append(referenceSourceTypeProperty);
+		result.append(", required: ");
+		result.append(required);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YBeanReferenceFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBooleanSearchFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBooleanSearchFieldImpl.java
new file mode 100644
index 0000000..59bd72c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBooleanSearchFieldImpl.java
@@ -0,0 +1,603 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchOption;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YBoolean Search Field</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBooleanSearchFieldImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBooleanSearchFieldImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBooleanSearchFieldImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBooleanSearchFieldImpl#getPropertyPath <em>Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBooleanSearchFieldImpl extends YInputImpl implements YBooleanSearchField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YBooleanSearchOption VALUE_EDEFAULT = YBooleanSearchOption.TRUE;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected YBooleanSearchOption value = VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YBooleanSearchFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YBOOLEAN_SEARCH_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public YBooleanSearchOption getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(YBooleanSearchOption newValue) {
+		YBooleanSearchOption oldValue = value;
+		value = newValue == null ? VALUE_EDEFAULT : newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getPropertyPath()
+	 *         <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newPropertyPath
+	 *            the new cached value of the '{@link #getPropertyPath()
+	 *            <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE:
+				return getValue();
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH:
+				return getPropertyPath();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE:
+				setValue((YBooleanSearchOption)newValue);
+				return;
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE:
+				return value != VALUE_EDEFAULT;
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(", propertyPath: ");
+		result.append(propertyPath);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#createDatadescription(java.lang.String)
+	 */
+	protected YDatadescription createDatadescription(String label) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabel(label);
+		return dsc;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#createDatadescriptionForI18n(java.lang.String)
+	 */
+	protected YDatadescription createDatadescriptionForI18n(String i18nKey) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabelI18nKey(i18nKey);
+		return dsc;
+	}
+
+} //YBooleanSearchFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBrowserImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBrowserImpl.java
new file mode 100644
index 0000000..c214d6a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBrowserImpl.java
@@ -0,0 +1,618 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.custom.ChangeAdapter;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YBrowser</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBrowserImpl extends YInputImpl implements YBrowser {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YBrowserDatatype datatype;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YBrowserImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YBROWSER;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YBrowserDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YBrowserDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YBROWSER__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y browser datatype
+	 * @generated
+	 */
+	public YBrowserDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YBrowserDatatype newDatatype) {
+		YBrowserDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBROWSER__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YBROWSER__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBROWSER__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Object getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(Object newValue) {
+		Object oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBROWSER__VALUE, oldValue, value));
+	}
+
+	/**
+	 * Creates the value endpoint gen.
+	 *
+	 * @return the y embeddable value endpoint
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * Returns a new instance of the change adapter config. Has to be overridden
+	 * by subclasses.
+	 *
+	 * @return the change adapter. config
+	 * @generated NOT
+	 */
+	protected ChangeAdapter.Config createNewChangeAdapterConfig() {
+		return new ChangeAdapter.Config(
+				ExtensionModelPackage.Literals.YBROWSER__VALUE,
+				Notification.SET);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YBROWSER__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YBROWSER__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YBROWSER__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YBROWSER__DATATYPE:
+				setDatatype((YBrowserDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YBROWSER__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YBROWSER__VALUE:
+				setValue(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YBROWSER__DATATYPE:
+				setDatatype((YBrowserDatatype)null);
+				return;
+			case ExtensionModelPackage.YBROWSER__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YBROWSER__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YBROWSER__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YBROWSER__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YBROWSER__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YBROWSER__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+} // YBrowserImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBrowserStreamInputImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBrowserStreamInputImpl.java
new file mode 100644
index 0000000..74dd597
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YBrowserStreamInputImpl.java
@@ -0,0 +1,281 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.io.InputStream;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YBrowser Stream Input</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserStreamInputImpl#getFilename <em>Filename</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserStreamInputImpl#getInputStream <em>Input Stream</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YBrowserStreamInputImpl#getMimeType <em>Mime Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YBrowserStreamInputImpl extends MinimalEObjectImpl.Container implements YBrowserStreamInput {
+	/**
+	 * The default value of the '{@link #getFilename() <em>Filename</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilename()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FILENAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFilename() <em>Filename</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilename()
+	 * @generated
+	 * @ordered
+	 */
+	protected String filename = FILENAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getInputStream() <em>Input Stream</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInputStream()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final InputStream INPUT_STREAM_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getInputStream() <em>Input Stream</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInputStream()
+	 * @generated
+	 * @ordered
+	 */
+	protected InputStream inputStream = INPUT_STREAM_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMimeType() <em>Mime Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMimeType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String MIME_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getMimeType() <em>Mime Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMimeType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String mimeType = MIME_TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YBrowserStreamInputImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YBROWSER_STREAM_INPUT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFilename() {
+		return filename;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFilename(String newFilename) {
+		String oldFilename = filename;
+		filename = newFilename;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBROWSER_STREAM_INPUT__FILENAME, oldFilename, filename));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public InputStream getInputStream() {
+		return inputStream;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInputStream(InputStream newInputStream) {
+		InputStream oldInputStream = inputStream;
+		inputStream = newInputStream;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBROWSER_STREAM_INPUT__INPUT_STREAM, oldInputStream, inputStream));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getMimeType() {
+		return mimeType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMimeType(String newMimeType) {
+		String oldMimeType = mimeType;
+		mimeType = newMimeType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBROWSER_STREAM_INPUT__MIME_TYPE, oldMimeType, mimeType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__FILENAME:
+				return getFilename();
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__INPUT_STREAM:
+				return getInputStream();
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__MIME_TYPE:
+				return getMimeType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__FILENAME:
+				setFilename((String)newValue);
+				return;
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__INPUT_STREAM:
+				setInputStream((InputStream)newValue);
+				return;
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__MIME_TYPE:
+				setMimeType((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__FILENAME:
+				setFilename(FILENAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__INPUT_STREAM:
+				setInputStream(INPUT_STREAM_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__MIME_TYPE:
+				setMimeType(MIME_TYPE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__FILENAME:
+				return FILENAME_EDEFAULT == null ? filename != null : !FILENAME_EDEFAULT.equals(filename);
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__INPUT_STREAM:
+				return INPUT_STREAM_EDEFAULT == null ? inputStream != null : !INPUT_STREAM_EDEFAULT.equals(inputStream);
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT__MIME_TYPE:
+				return MIME_TYPE_EDEFAULT == null ? mimeType != null : !MIME_TYPE_EDEFAULT.equals(mimeType);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (filename: ");
+		result.append(filename);
+		result.append(", inputStream: ");
+		result.append(inputStream);
+		result.append(", mimeType: ");
+		result.append(mimeType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YBrowserStreamInputImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YButtonImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YButtonImpl.java
new file mode 100644
index 0000000..ca60c7e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YButtonImpl.java
@@ -0,0 +1,724 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YButton</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl#isInitialEditable <em>Initial Editable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl#isEditable <em>Editable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl#getTabIndex <em>Tab Index</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl#getClickListeners <em>Click Listeners</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl#getLastClickTime <em>Last Click Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YButtonImpl#getImage <em>Image</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YButtonImpl extends YActionImpl implements YButton {
+	/**
+	 * The default value of the '{@link #isInitialEditable() <em>Initial Editable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isInitialEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIAL_EDITABLE_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isInitialEditable() <em>Initial Editable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isInitialEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initialEditable = INITIAL_EDITABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEditable() <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EDITABLE_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isEditable() <em>Editable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isEditable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean editable = EDITABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int TAB_INDEX_EDEFAULT = -1;
+
+	/**
+	 * The cached value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected int tabIndex = TAB_INDEX_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getClickListeners() <em>Click Listeners</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getClickListeners()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YButtonClickListener> clickListeners;
+
+	/**
+	 * The default value of the '{@link #getLastClickTime() <em>Last Click Time</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getLastClickTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final long LAST_CLICK_TIME_EDEFAULT = 0L;
+
+	/**
+	 * The cached value of the '{@link #getLastClickTime() <em>Last Click Time</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getLastClickTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected long lastClickTime = LAST_CLICK_TIME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getImage() <em>Image</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object IMAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getImage() <em>Image</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImage()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object image = IMAGE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YButtonImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YBUTTON;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isInitialEditable()
+	 *         <em>Initial Editable</em>}' attribute
+	 * @generated
+	 */
+	public boolean isInitialEditable() {
+		return initialEditable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newInitialEditable
+	 *            the new cached value of the '{@link #isInitialEditable()
+	 *            <em>Initial Editable</em>}' attribute
+	 * @generated
+	 */
+	public void setInitialEditable(boolean newInitialEditable) {
+		boolean oldInitialEditable = initialEditable;
+		initialEditable = newInitialEditable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBUTTON__INITIAL_EDITABLE, oldInitialEditable, initialEditable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isEditable() <em>Editable</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isEditable() {
+		return editable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEditable
+	 *            the new cached value of the '{@link #isEditable()
+	 *            <em>Editable</em>}' attribute
+	 * @generated
+	 */
+	public void setEditable(boolean newEditable) {
+		boolean oldEditable = editable;
+		editable = newEditable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBUTTON__EDITABLE, oldEditable, editable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTabIndex()
+	 *         <em>Tab Index</em>}' attribute
+	 * @generated
+	 */
+	public int getTabIndex() {
+		return tabIndex;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTabIndex
+	 *            the new cached value of the '{@link #getTabIndex()
+	 *            <em>Tab Index</em>}' attribute
+	 * @generated
+	 */
+	public void setTabIndex(int newTabIndex) {
+		int oldTabIndex = tabIndex;
+		tabIndex = newTabIndex;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBUTTON__TAB_INDEX, oldTabIndex, tabIndex));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YBUTTON__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBUTTON__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getClickListeners()
+	 *         <em>Click Listeners</em>}' attribute list
+	 * @generated
+	 */
+	public EList<YButtonClickListener> getClickListeners() {
+		if (clickListeners == null) {
+			clickListeners = new EDataTypeUniqueEList<YButtonClickListener>(YButtonClickListener.class, this, ExtensionModelPackage.YBUTTON__CLICK_LISTENERS);
+		}
+		return clickListeners;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getLastClickTime()
+	 *         <em>Last Click Time</em>}' attribute
+	 * @generated
+	 */
+	public long getLastClickTime() {
+		return lastClickTime;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newLastClickTime
+	 *            the new cached value of the '{@link #getLastClickTime()
+	 *            <em>Last Click Time</em>}' attribute
+	 * @generated
+	 */
+	public void setLastClickTime(long newLastClickTime) {
+		long oldLastClickTime = lastClickTime;
+		lastClickTime = newLastClickTime;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBUTTON__LAST_CLICK_TIME, oldLastClickTime, lastClickTime));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage() {
+		return image;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setImage(Object newImage) {
+		Object oldImage = image;
+		image = newImage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YBUTTON__IMAGE, oldImage, image));
+	}
+
+	/**
+	 * Adds a listener that is notified if the button was clicked.
+	 *
+	 * @param listener
+	 *            the listener
+	 * @generated NOT
+	 */
+	@Override
+	public void addClickListener(YButtonClickListener listener) {
+		getClickListeners().add(listener);
+	}
+
+	/**
+	 * Removes a listener that is notified if the button was clicked.
+	 *
+	 * @param listener
+	 *            the listener
+	 * @generated NOT
+	 */
+	@Override
+	public void removeClickListener(YButtonClickListener listener) {
+		getClickListeners().remove(listener);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBUTTON__INITIAL_EDITABLE:
+				return isInitialEditable();
+			case ExtensionModelPackage.YBUTTON__EDITABLE:
+				return isEditable();
+			case ExtensionModelPackage.YBUTTON__TAB_INDEX:
+				return getTabIndex();
+			case ExtensionModelPackage.YBUTTON__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YBUTTON__CLICK_LISTENERS:
+				return getClickListeners();
+			case ExtensionModelPackage.YBUTTON__LAST_CLICK_TIME:
+				return getLastClickTime();
+			case ExtensionModelPackage.YBUTTON__IMAGE:
+				return getImage();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBUTTON__INITIAL_EDITABLE:
+				setInitialEditable((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YBUTTON__EDITABLE:
+				setEditable((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YBUTTON__TAB_INDEX:
+				setTabIndex((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YBUTTON__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YBUTTON__CLICK_LISTENERS:
+				getClickListeners().clear();
+				getClickListeners().addAll((Collection<? extends YButtonClickListener>)newValue);
+				return;
+			case ExtensionModelPackage.YBUTTON__LAST_CLICK_TIME:
+				setLastClickTime((Long)newValue);
+				return;
+			case ExtensionModelPackage.YBUTTON__IMAGE:
+				setImage(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBUTTON__INITIAL_EDITABLE:
+				setInitialEditable(INITIAL_EDITABLE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBUTTON__EDITABLE:
+				setEditable(EDITABLE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBUTTON__TAB_INDEX:
+				setTabIndex(TAB_INDEX_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBUTTON__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YBUTTON__CLICK_LISTENERS:
+				getClickListeners().clear();
+				return;
+			case ExtensionModelPackage.YBUTTON__LAST_CLICK_TIME:
+				setLastClickTime(LAST_CLICK_TIME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YBUTTON__IMAGE:
+				setImage(IMAGE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YBUTTON__INITIAL_EDITABLE:
+				return initialEditable != INITIAL_EDITABLE_EDEFAULT;
+			case ExtensionModelPackage.YBUTTON__EDITABLE:
+				return editable != EDITABLE_EDEFAULT;
+			case ExtensionModelPackage.YBUTTON__TAB_INDEX:
+				return tabIndex != TAB_INDEX_EDEFAULT;
+			case ExtensionModelPackage.YBUTTON__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YBUTTON__CLICK_LISTENERS:
+				return clickListeners != null && !clickListeners.isEmpty();
+			case ExtensionModelPackage.YBUTTON__LAST_CLICK_TIME:
+				return lastClickTime != LAST_CLICK_TIME_EDEFAULT;
+			case ExtensionModelPackage.YBUTTON__IMAGE:
+				return IMAGE_EDEFAULT == null ? image != null : !IMAGE_EDEFAULT.equals(image);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YEditable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YBUTTON__INITIAL_EDITABLE: return CoreModelPackage.YEDITABLE__INITIAL_EDITABLE;
+				case ExtensionModelPackage.YBUTTON__EDITABLE: return CoreModelPackage.YEDITABLE__EDITABLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YFocusable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YBUTTON__TAB_INDEX: return CoreModelPackage.YFOCUSABLE__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YEditable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YEDITABLE__INITIAL_EDITABLE: return ExtensionModelPackage.YBUTTON__INITIAL_EDITABLE;
+				case CoreModelPackage.YEDITABLE__EDITABLE: return ExtensionModelPackage.YBUTTON__EDITABLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == YFocusable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YFOCUSABLE__TAB_INDEX: return ExtensionModelPackage.YBUTTON__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (initialEditable: ");
+		result.append(initialEditable);
+		result.append(", editable: ");
+		result.append(editable);
+		result.append(", tabIndex: ");
+		result.append(tabIndex);
+		result.append(", clickListeners: ");
+		result.append(clickListeners);
+		result.append(", lastClickTime: ");
+		result.append(lastClickTime);
+		result.append(", image: ");
+		result.append(image);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		String oldLabel = null;
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			oldLabel = ds.getLabel();
+			ds.setLabel(label);
+		}
+		
+		// TODO add this to all YEmbeddables where a notification is required
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__LABEL, oldLabel, label));
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		String oldI18nKey = null;
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			oldI18nKey = ds.getLabelI18nKey();
+			ds.setLabelI18nKey(i18nKey);
+		}
+		
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CoreModelPackage.YEMBEDDABLE__LABEL_I1_8N_KEY, oldI18nKey, i18nKey));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YButton#createEditableEndpoint()
+	 */
+	@Override
+	public YValueBindingEndpoint createEditableEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YEDITABLE__EDITABLE);
+		return endpoint;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YButton#createEnabledEndpoint()
+	 */
+	@Override
+	public YValueBindingEndpoint createEnabledEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) CoreModelPackage.Literals.YENABLE__ENABLED);
+		return endpoint;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YButton#createClickEndpoint()
+	 */
+	public YECViewModelValueBindingEndpoint createClickEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) ExtensionModelPackage.Literals.YBUTTON__LAST_CLICK_TIME);
+		return endpoint;
+	}
+
+} // YButtonImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YCheckBoxImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YCheckBoxImpl.java
new file mode 100644
index 0000000..6e4a21e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YCheckBoxImpl.java
@@ -0,0 +1,600 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Check Box</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCheckBoxImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCheckBoxImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCheckBoxImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCheckBoxImpl#isValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YCheckBoxImpl extends YInputImpl implements YCheckBox {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YCheckBoxDatatype datatype;
+
+	/**
+	 * The default value of the '{@link #isValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VALUE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YCheckBoxImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YCHECK_BOX;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCHECK_BOX__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCHECK_BOX__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YCheckBoxDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YCheckBoxDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCHECK_BOX__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y check box datatype
+	 * @generated
+	 */
+	public YCheckBoxDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YCheckBoxDatatype newDatatype) {
+		YCheckBoxDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCHECK_BOX__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #isValue() <em>Value</em>}
+	 *            ' attribute
+	 * @generated
+	 */
+	public void setValue(boolean newValue) {
+		boolean oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCHECK_BOX__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YCHECK_BOX__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YCHECK_BOX__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YCHECK_BOX__VALUE:
+				return isValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YCHECK_BOX__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YCHECK_BOX__DATATYPE:
+				setDatatype((YCheckBoxDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YCHECK_BOX__VALUE:
+				setValue((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YCHECK_BOX__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YCHECK_BOX__DATATYPE:
+				setDatatype((YCheckBoxDatatype)null);
+				return;
+			case ExtensionModelPackage.YCHECK_BOX__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YCHECK_BOX__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YCHECK_BOX__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YCHECK_BOX__VALUE:
+				return value != VALUE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YCHECK_BOX__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YUiCheckBoxImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YColumnImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YColumnImpl.java
new file mode 100644
index 0000000..39d03ad
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YColumnImpl.java
@@ -0,0 +1,1200 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YConverter;
+import org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YColumn;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YColumn</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getIcon <em>Icon</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#isVisible <em>Visible</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getOrphanDatadescriptions <em>Orphan Datadescriptions</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#isOrderable <em>Orderable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#isCollapsed <em>Collapsed</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#isCollapsible <em>Collapsible</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getAlignment <em>Alignment</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getExpandRatio <em>Expand Ratio</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getConverter <em>Converter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YColumnImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YColumnImpl extends MinimalEObjectImpl.Container implements
+		YColumn {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ICON_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected String icon = ICON_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isVisible() <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VISIBLE_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isVisible() <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean visible = VISIBLE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getOrphanDatadescriptions()
+	 * <em>Orphan Datadescriptions</em>}' containment reference list. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getOrphanDatadescriptions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YDatadescription> orphanDatadescriptions;
+
+	/**
+	 * The default value of the '{@link #isOrderable() <em>Orderable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isOrderable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ORDERABLE_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isOrderable() <em>Orderable</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isOrderable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean orderable = ORDERABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCollapsed() <em>Collapsed</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isCollapsed()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean COLLAPSED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCollapsed() <em>Collapsed</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isCollapsed()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean collapsed = COLLAPSED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCollapsible() <em>Collapsible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isCollapsible()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean COLLAPSIBLE_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isCollapsible() <em>Collapsible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isCollapsible()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean collapsible = COLLAPSIBLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YFlatAlignment ALIGNMENT_EDEFAULT = YFlatAlignment.LEFT;
+
+	/**
+	 * The cached value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected YFlatAlignment alignment = ALIGNMENT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExpandRatio() <em>Expand Ratio</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getExpandRatio()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float EXPAND_RATIO_EDEFAULT = -1.0F;
+
+	/**
+	 * The cached value of the '{@link #getExpandRatio() <em>Expand Ratio</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getExpandRatio()
+	 * @generated
+	 * @ordered
+	 */
+	protected float expandRatio = EXPAND_RATIO_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getConverter() <em>Converter</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConverter()
+	 * @generated
+	 * @ordered
+	 */
+	protected YConverter converter;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YColumnImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YCOLUMN;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getId() <em>Id</em>}' attribute
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newId
+	 *            the new cached value of the '{@link #getId() <em>Id</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getName() <em>Name</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newName
+	 *            the new cached value of the '{@link #getName() <em>Name</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTags() <em>Tags</em>}'
+	 *         attribute list
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtensionModelPackage.YCOLUMN__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getProperties()
+	 *         <em>Properties</em>}' map
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtensionModelPackage.YCOLUMN__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getIcon() <em>Icon</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getIcon() {
+		return icon;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newIcon
+	 *            the new cached value of the '{@link #getIcon() <em>Icon</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setIcon(String newIcon) {
+		String oldIcon = icon;
+		icon = newIcon;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__ICON, oldIcon, icon));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isVisible() <em>Visible</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isVisible() {
+		return visible;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newVisible
+	 *            the new cached value of the '{@link #isVisible()
+	 *            <em>Visible</em>}' attribute
+	 * @generated
+	 */
+	public void setVisible(boolean newVisible) {
+		boolean oldVisible = visible;
+		visible = newVisible;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__VISIBLE, oldVisible, visible));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCOLUMN__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getOrphanDatadescriptions()
+	 *         <em>Orphan Datadescriptions</em>}' containment reference list
+	 * @generated
+	 */
+	public EList<YDatadescription> getOrphanDatadescriptions() {
+		if (orphanDatadescriptions == null) {
+			orphanDatadescriptions = new EObjectContainmentEList.Resolving<YDatadescription>(YDatadescription.class, this, ExtensionModelPackage.YCOLUMN__ORPHAN_DATADESCRIPTIONS);
+		}
+		return orphanDatadescriptions;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isOrderable()
+	 *         <em>Orderable</em>}' attribute
+	 * @generated
+	 */
+	public boolean isOrderable() {
+		return orderable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newOrderable
+	 *            the new cached value of the '{@link #isOrderable()
+	 *            <em>Orderable</em>}' attribute
+	 * @generated
+	 */
+	public void setOrderable(boolean newOrderable) {
+		boolean oldOrderable = orderable;
+		orderable = newOrderable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__ORDERABLE, oldOrderable, orderable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isCollapsed()
+	 *         <em>Collapsed</em>}' attribute
+	 * @generated
+	 */
+	public boolean isCollapsed() {
+		return collapsed;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollapsed
+	 *            the new cached value of the '{@link #isCollapsed()
+	 *            <em>Collapsed</em>}' attribute
+	 * @generated
+	 */
+	public void setCollapsed(boolean newCollapsed) {
+		boolean oldCollapsed = collapsed;
+		collapsed = newCollapsed;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__COLLAPSED, oldCollapsed, collapsed));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isCollapsible()
+	 *         <em>Collapsible</em>}' attribute
+	 * @generated
+	 */
+	public boolean isCollapsible() {
+		return collapsible;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollapsible
+	 *            the new cached value of the '{@link #isCollapsible()
+	 *            <em>Collapsible</em>}' attribute
+	 * @generated
+	 */
+	public void setCollapsible(boolean newCollapsible) {
+		boolean oldCollapsible = collapsible;
+		collapsible = newCollapsible;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__COLLAPSIBLE, oldCollapsible, collapsible));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getAlignment()
+	 *         <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public YFlatAlignment getAlignment() {
+		return alignment;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newAlignment
+	 *            the new cached value of the '{@link #getAlignment()
+	 *            <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public void setAlignment(YFlatAlignment newAlignment) {
+		YFlatAlignment oldAlignment = alignment;
+		alignment = newAlignment == null ? ALIGNMENT_EDEFAULT : newAlignment;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__ALIGNMENT, oldAlignment, alignment));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getExpandRatio()
+	 *         <em>Expand Ratio</em>}' attribute
+	 * @generated
+	 */
+	public float getExpandRatio() {
+		return expandRatio;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newExpandRatio
+	 *            the new cached value of the '{@link #getExpandRatio()
+	 *            <em>Expand Ratio</em>}' attribute
+	 * @generated
+	 */
+	public void setExpandRatio(float newExpandRatio) {
+		float oldExpandRatio = expandRatio;
+		expandRatio = newExpandRatio;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__EXPAND_RATIO, oldExpandRatio, expandRatio));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getPropertyPath()
+	 *         <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newPropertyPath
+	 *            the new cached value of the '{@link #getPropertyPath()
+	 *            <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getConverter()
+	 *         <em>Converter</em>}' containment reference
+	 * @generated
+	 */
+	public YConverter getConverter() {
+		if (converter != null && converter.eIsProxy()) {
+			InternalEObject oldConverter = (InternalEObject)converter;
+			converter = (YConverter)eResolveProxy(oldConverter);
+			if (converter != oldConverter) {
+				InternalEObject newConverter = (InternalEObject)converter;
+				NotificationChain msgs = oldConverter.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YCOLUMN__CONVERTER, null, null);
+				if (newConverter.eInternalContainer() == null) {
+					msgs = newConverter.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YCOLUMN__CONVERTER, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCOLUMN__CONVERTER, oldConverter, converter));
+			}
+		}
+		return converter;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y converter
+	 * @generated
+	 */
+	public YConverter basicGetConverter() {
+		return converter;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newConverter
+	 *            the new converter
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetConverter(YConverter newConverter, NotificationChain msgs) {
+		YConverter oldConverter = converter;
+		converter = newConverter;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__CONVERTER, oldConverter, newConverter);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newConverter
+	 *            the new cached value of the '{@link #getConverter()
+	 *            <em>Converter</em>}' containment reference
+	 * @generated
+	 */
+	public void setConverter(YConverter newConverter) {
+		if (newConverter != converter) {
+			NotificationChain msgs = null;
+			if (converter != null)
+				msgs = ((InternalEObject)converter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YCOLUMN__CONVERTER, null, msgs);
+			if (newConverter != null)
+				msgs = ((InternalEObject)newConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YCOLUMN__CONVERTER, null, msgs);
+			msgs = basicSetConverter(newConverter, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__CONVERTER, newConverter, newConverter));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOLUMN__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOLUMN__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case ExtensionModelPackage.YCOLUMN__ORPHAN_DATADESCRIPTIONS:
+				return ((InternalEList<?>)getOrphanDatadescriptions()).basicRemove(otherEnd, msgs);
+			case ExtensionModelPackage.YCOLUMN__CONVERTER:
+				return basicSetConverter(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOLUMN__TAGS:
+				return getTags();
+			case ExtensionModelPackage.YCOLUMN__ID:
+				return getId();
+			case ExtensionModelPackage.YCOLUMN__NAME:
+				return getName();
+			case ExtensionModelPackage.YCOLUMN__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtensionModelPackage.YCOLUMN__ICON:
+				return getIcon();
+			case ExtensionModelPackage.YCOLUMN__VISIBLE:
+				return isVisible();
+			case ExtensionModelPackage.YCOLUMN__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YCOLUMN__ORPHAN_DATADESCRIPTIONS:
+				return getOrphanDatadescriptions();
+			case ExtensionModelPackage.YCOLUMN__ORDERABLE:
+				return isOrderable();
+			case ExtensionModelPackage.YCOLUMN__COLLAPSED:
+				return isCollapsed();
+			case ExtensionModelPackage.YCOLUMN__COLLAPSIBLE:
+				return isCollapsible();
+			case ExtensionModelPackage.YCOLUMN__ALIGNMENT:
+				return getAlignment();
+			case ExtensionModelPackage.YCOLUMN__EXPAND_RATIO:
+				return getExpandRatio();
+			case ExtensionModelPackage.YCOLUMN__PROPERTY_PATH:
+				return getPropertyPath();
+			case ExtensionModelPackage.YCOLUMN__CONVERTER:
+				if (resolve) return getConverter();
+				return basicGetConverter();
+			case ExtensionModelPackage.YCOLUMN__TYPE:
+				return getType();
+			case ExtensionModelPackage.YCOLUMN__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOLUMN__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__ID:
+				setId((String)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__NAME:
+				setName((String)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__ICON:
+				setIcon((String)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__VISIBLE:
+				setVisible((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__ORPHAN_DATADESCRIPTIONS:
+				getOrphanDatadescriptions().clear();
+				getOrphanDatadescriptions().addAll((Collection<? extends YDatadescription>)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__ORDERABLE:
+				setOrderable((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__COLLAPSED:
+				setCollapsed((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__COLLAPSIBLE:
+				setCollapsible((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__ALIGNMENT:
+				setAlignment((YFlatAlignment)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__EXPAND_RATIO:
+				setExpandRatio((Float)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__CONVERTER:
+				setConverter((YConverter)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YCOLUMN__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOLUMN__TAGS:
+				getTags().clear();
+				return;
+			case ExtensionModelPackage.YCOLUMN__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtensionModelPackage.YCOLUMN__ICON:
+				setIcon(ICON_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__VISIBLE:
+				setVisible(VISIBLE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YCOLUMN__ORPHAN_DATADESCRIPTIONS:
+				getOrphanDatadescriptions().clear();
+				return;
+			case ExtensionModelPackage.YCOLUMN__ORDERABLE:
+				setOrderable(ORDERABLE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__COLLAPSED:
+				setCollapsed(COLLAPSED_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__COLLAPSIBLE:
+				setCollapsible(COLLAPSIBLE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__ALIGNMENT:
+				setAlignment(ALIGNMENT_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__EXPAND_RATIO:
+				setExpandRatio(EXPAND_RATIO_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOLUMN__CONVERTER:
+				setConverter((YConverter)null);
+				return;
+			case ExtensionModelPackage.YCOLUMN__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YCOLUMN__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOLUMN__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtensionModelPackage.YCOLUMN__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtensionModelPackage.YCOLUMN__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtensionModelPackage.YCOLUMN__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtensionModelPackage.YCOLUMN__ICON:
+				return ICON_EDEFAULT == null ? icon != null : !ICON_EDEFAULT.equals(icon);
+			case ExtensionModelPackage.YCOLUMN__VISIBLE:
+				return visible != VISIBLE_EDEFAULT;
+			case ExtensionModelPackage.YCOLUMN__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YCOLUMN__ORPHAN_DATADESCRIPTIONS:
+				return orphanDatadescriptions != null && !orphanDatadescriptions.isEmpty();
+			case ExtensionModelPackage.YCOLUMN__ORDERABLE:
+				return orderable != ORDERABLE_EDEFAULT;
+			case ExtensionModelPackage.YCOLUMN__COLLAPSED:
+				return collapsed != COLLAPSED_EDEFAULT;
+			case ExtensionModelPackage.YCOLUMN__COLLAPSIBLE:
+				return collapsible != COLLAPSIBLE_EDEFAULT;
+			case ExtensionModelPackage.YCOLUMN__ALIGNMENT:
+				return alignment != ALIGNMENT_EDEFAULT;
+			case ExtensionModelPackage.YCOLUMN__EXPAND_RATIO:
+				return expandRatio != EXPAND_RATIO_EDEFAULT;
+			case ExtensionModelPackage.YCOLUMN__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+			case ExtensionModelPackage.YCOLUMN__CONVERTER:
+				return converter != null;
+			case ExtensionModelPackage.YCOLUMN__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YCOLUMN__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", icon: ");
+		result.append(icon);
+		result.append(", visible: ");
+		result.append(visible);
+		result.append(", orderable: ");
+		result.append(orderable);
+		result.append(", collapsed: ");
+		result.append(collapsed);
+		result.append(", collapsible: ");
+		result.append(collapsible);
+		result.append(", alignment: ");
+		result.append(alignment);
+		result.append(", expandRatio: ");
+		result.append(expandRatio);
+		result.append(", propertyPath: ");
+		result.append(propertyPath);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+
+	/**
+	 * Creates the datadescription.
+	 *
+	 * @param label
+	 *            the label
+	 * @return the y datadescription
+	 */
+	protected YDatadescription createDatadescription(String label) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabel(label);
+
+		getOrphanDatadescriptions().add(dsc);
+
+		return dsc;
+	}
+
+	/**
+	 * Creates the datadescription for i18n.
+	 *
+	 * @param i18nKey
+	 *            the i18n key
+	 * @return the y datadescription
+	 */
+	protected YDatadescription createDatadescriptionForI18n(String i18nKey) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabelI18nKey(i18nKey);
+
+		getOrphanDatadescriptions().add(dsc);
+
+		return dsc;
+	}
+
+} // YColumnImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YComboBoxImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YComboBoxImpl.java
new file mode 100644
index 0000000..4fb5a5d
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YComboBoxImpl.java
@@ -0,0 +1,1295 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Combo Box</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#isUseBeanService <em>Use Bean Service</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getCaptionProperty <em>Caption Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getImageProperty <em>Image Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getDescriptionProperty <em>Description Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YComboBoxImpl#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YComboBoxImpl extends YInputImpl implements YComboBox {
+	/**
+	 * The cached value of the '{@link #getCollectionBindingEndpoint() <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableCollectionEndpoint collectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getSelectionBindingEndpoint() <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableSelectionEndpoint selectionBindingEndpoint;
+
+	/**
+	 * The default value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USE_BEAN_SERVICE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean useBeanService = USE_BEAN_SERVICE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YComboBoxDatatype datatype;
+
+	/**
+	 * The default value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object SELECTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object selection = SELECTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCollection() <em>Collection</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCollection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> collection;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCaptionProperty() <em>Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCaptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CAPTION_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCaptionProperty() <em>Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCaptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String captionProperty = CAPTION_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getImageProperty() <em>Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImageProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IMAGE_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getImageProperty() <em>Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImageProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String imageProperty = IMAGE_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescriptionProperty() <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescriptionProperty() <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String descriptionProperty = DESCRIPTION_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YComboBoxImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YCOMBO_BOX;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollectionBindingEndpoint()
+	 *         <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint getCollectionBindingEndpoint() {
+		if (collectionBindingEndpoint != null && collectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldCollectionBindingEndpoint = (InternalEObject)collectionBindingEndpoint;
+			collectionBindingEndpoint = (YEmbeddableCollectionEndpoint)eResolveProxy(oldCollectionBindingEndpoint);
+			if (collectionBindingEndpoint != oldCollectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, collectionBindingEndpoint));
+			}
+		}
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint basicGetCollectionBindingEndpoint() {
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new collection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableCollectionEndpoint oldCollectionBindingEndpoint = collectionBindingEndpoint;
+		collectionBindingEndpoint = newCollectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, newCollectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getCollectionBindingEndpoint()
+	 *            <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setCollectionBindingEndpoint(
+			YEmbeddableCollectionEndpoint newCollectionBindingEndpoint) {
+		if (newCollectionBindingEndpoint != collectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (collectionBindingEndpoint != null)
+				msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			if (newCollectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newCollectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			msgs = basicSetCollectionBindingEndpoint(newCollectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT, newCollectionBindingEndpoint, newCollectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionBindingEndpoint()
+	 *         <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint getSelectionBindingEndpoint() {
+		if (selectionBindingEndpoint != null && selectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldSelectionBindingEndpoint = (InternalEObject)selectionBindingEndpoint;
+			selectionBindingEndpoint = (YEmbeddableSelectionEndpoint)eResolveProxy(oldSelectionBindingEndpoint);
+			if (selectionBindingEndpoint != oldSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, selectionBindingEndpoint));
+			}
+		}
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint basicGetSelectionBindingEndpoint() {
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableSelectionEndpoint oldSelectionBindingEndpoint = selectionBindingEndpoint;
+		selectionBindingEndpoint = newSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, newSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getSelectionBindingEndpoint()
+	 *            <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint) {
+		if (newSelectionBindingEndpoint != selectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (selectionBindingEndpoint != null)
+				msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			if (newSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			msgs = basicSetSelectionBindingEndpoint(newSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT, newSelectionBindingEndpoint, newSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isUseBeanService()
+	 *         <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public boolean isUseBeanService() {
+		return useBeanService;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newUseBeanService
+	 *            the new cached value of the '{@link #isUseBeanService()
+	 *            <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public void setUseBeanService(boolean newUseBeanService) {
+		boolean oldUseBeanService = useBeanService;
+		useBeanService = newUseBeanService;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__USE_BEAN_SERVICE, oldUseBeanService, useBeanService));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCOMBO_BOX__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YComboBoxDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YComboBoxDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCOMBO_BOX__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box datatype
+	 * @generated
+	 */
+	public YComboBoxDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YComboBoxDatatype newDatatype) {
+		YComboBoxDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelection()
+	 *         <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public Object getSelection() {
+		return selection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelection
+	 *            the new cached value of the '{@link #getSelection()
+	 *            <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public void setSelection(Object newSelection) {
+		Object oldSelection = selection;
+		selection = newSelection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__SELECTION, oldSelection, selection));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollection()
+	 *         <em>Collection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getCollection() {
+		if (collection == null) {
+			collection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YCOMBO_BOX__COLLECTION);
+		}
+		return collection;
+	}
+
+/**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->.
+ *
+ * @return the cached value of the '{@link #getType() <em>Type</em>}' attribute
+ * @generated
+ */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCaptionProperty()
+	 *         <em>Caption Property</em>}' attribute
+	 * @generated
+	 */
+	public String getCaptionProperty() {
+		return captionProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCaptionProperty
+	 *            the new cached value of the '{@link #getCaptionProperty()
+	 *            <em>Caption Property</em>}' attribute
+	 * @generated
+	 */
+	public void setCaptionProperty(String newCaptionProperty) {
+		String oldCaptionProperty = captionProperty;
+		captionProperty = newCaptionProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__CAPTION_PROPERTY, oldCaptionProperty, captionProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getImageProperty()
+	 *         <em>Image Property</em>}' attribute
+	 * @generated
+	 */
+	public String getImageProperty() {
+		return imageProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newImageProperty
+	 *            the new cached value of the '{@link #getImageProperty()
+	 *            <em>Image Property</em>}' attribute
+	 * @generated
+	 */
+	public void setImageProperty(String newImageProperty) {
+		String oldImageProperty = imageProperty;
+		imageProperty = newImageProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__IMAGE_PROPERTY, oldImageProperty, imageProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDescriptionProperty()
+	 *         <em>Description Property</em>}' attribute
+	 * @generated
+	 */
+	public String getDescriptionProperty() {
+		return descriptionProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDescriptionProperty
+	 *            the new cached value of the '{@link #getDescriptionProperty()
+	 *            <em>Description Property</em>}' attribute
+	 * @generated
+	 */
+	public void setDescriptionProperty(String newDescriptionProperty) {
+		String oldDescriptionProperty = descriptionProperty;
+		descriptionProperty = newDescriptionProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION_PROPERTY, oldDescriptionProperty, descriptionProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDescription()
+	 *         <em>Description</em>}' attribute
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDescription
+	 *            the new cached value of the '{@link #getDescription()
+	 *            <em>Description</em>}' attribute
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION, oldDescription, description));
+	}
+
+	//	/**
+//	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+//	 * 
+//	 * @generated NOT
+//	 */
+//	@SuppressWarnings("rawtypes")
+//	public EList<Object> getCollection() {
+//		if (collection == null) {
+//			collection = new NotifyingListImpl() {
+//				@Override
+//				protected boolean isNotificationRequired() {
+//					return true;
+//				}
+//
+//				@Override
+//				public Object getNotifier() {
+//					return YComboBoxImpl.this;
+//				}
+//
+//				@Override
+//				public Object getFeature() {
+//					return ExtensionModelPackage.Literals.YCOMBO_BOX__COLLECTION;
+//				}
+//
+//				public int getFeatureID() {
+//					return ExtensionModelPackage.YCOMBO_BOX__COLLECTION;
+//				}
+//			};
+//		}
+//		return collection;
+//	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of selection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpoint() {
+		YEmbeddableSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * Creates a new instance of collection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpoint() {
+		YEmbeddableCollectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableCollectionEndpoint();
+		ep.setElement(this);
+		return ep;
+
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				if (collectionBindingEndpoint != null)
+					msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+				return basicSetCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				if (selectionBindingEndpoint != null)
+					msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+				return basicSetSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				return basicSetCollectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				return basicSetSelectionBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				if (resolve) return getCollectionBindingEndpoint();
+				return basicGetCollectionBindingEndpoint();
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getSelectionBindingEndpoint();
+				return basicGetSelectionBindingEndpoint();
+			case ExtensionModelPackage.YCOMBO_BOX__USE_BEAN_SERVICE:
+				return isUseBeanService();
+			case ExtensionModelPackage.YCOMBO_BOX__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YCOMBO_BOX__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION:
+				return getSelection();
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION:
+				return getCollection();
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE:
+				return getType();
+			case ExtensionModelPackage.YCOMBO_BOX__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case ExtensionModelPackage.YCOMBO_BOX__CAPTION_PROPERTY:
+				return getCaptionProperty();
+			case ExtensionModelPackage.YCOMBO_BOX__IMAGE_PROPERTY:
+				return getImageProperty();
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION_PROPERTY:
+				return getDescriptionProperty();
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION:
+				return getDescription();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__USE_BEAN_SERVICE:
+				setUseBeanService((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__DATATYPE:
+				setDatatype((YComboBoxDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION:
+				setSelection(newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION:
+				getCollection().clear();
+				getCollection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__CAPTION_PROPERTY:
+				setCaptionProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__IMAGE_PROPERTY:
+				setImageProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION_PROPERTY:
+				setDescriptionProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__USE_BEAN_SERVICE:
+				setUseBeanService(USE_BEAN_SERVICE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__DATATYPE:
+				setDatatype((YComboBoxDatatype)null);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION:
+				setSelection(SELECTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION:
+				getCollection().clear();
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__CAPTION_PROPERTY:
+				setCaptionProperty(CAPTION_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__IMAGE_PROPERTY:
+				setImageProperty(IMAGE_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION_PROPERTY:
+				setDescriptionProperty(DESCRIPTION_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				return collectionBindingEndpoint != null;
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				return selectionBindingEndpoint != null;
+			case ExtensionModelPackage.YCOMBO_BOX__USE_BEAN_SERVICE:
+				return useBeanService != USE_BEAN_SERVICE_EDEFAULT;
+			case ExtensionModelPackage.YCOMBO_BOX__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YCOMBO_BOX__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YCOMBO_BOX__SELECTION:
+				return SELECTION_EDEFAULT == null ? selection != null : !SELECTION_EDEFAULT.equals(selection);
+			case ExtensionModelPackage.YCOMBO_BOX__COLLECTION:
+				return collection != null && !collection.isEmpty();
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YCOMBO_BOX__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YCOMBO_BOX__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case ExtensionModelPackage.YCOMBO_BOX__CAPTION_PROPERTY:
+				return CAPTION_PROPERTY_EDEFAULT == null ? captionProperty != null : !CAPTION_PROPERTY_EDEFAULT.equals(captionProperty);
+			case ExtensionModelPackage.YCOMBO_BOX__IMAGE_PROPERTY:
+				return IMAGE_PROPERTY_EDEFAULT == null ? imageProperty != null : !IMAGE_PROPERTY_EDEFAULT.equals(imageProperty);
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION_PROPERTY:
+				return DESCRIPTION_PROPERTY_EDEFAULT == null ? descriptionProperty != null : !DESCRIPTION_PROPERTY_EDEFAULT.equals(descriptionProperty);
+			case ExtensionModelPackage.YCOMBO_BOX__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT: return CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YCOMBO_BOX__USE_BEAN_SERVICE: return ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YCOMBO_BOX__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YCOMBO_BOX__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (baseFeatureID) {
+				case ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE: return ExtensionModelPackage.YCOMBO_BOX__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (useBeanService: ");
+		result.append(useBeanService);
+		result.append(", selection: ");
+		result.append(selection);
+		result.append(", collection: ");
+		result.append(collection);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", captionProperty: ");
+		result.append(captionProperty);
+		result.append(", imageProperty: ");
+		result.append(imageProperty);
+		result.append(", descriptionProperty: ");
+		result.append(descriptionProperty);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YUiComboBoxImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YCssLayoutCellStyleImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YCssLayoutCellStyleImpl.java
new file mode 100644
index 0000000..18e37ac
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YCssLayoutCellStyleImpl.java
@@ -0,0 +1,261 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YCss Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutCellStyleImpl#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutCellStyleImpl#getAlignment <em>Alignment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YCssLayoutCellStyleImpl extends MinimalEObjectImpl.Container implements YCssLayoutCellStyle {
+	/**
+	 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTarget()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable target;
+	/**
+	 * The default value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YAlignment ALIGNMENT_EDEFAULT = YAlignment.UNDEFINED;
+	/**
+	 * The cached value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected YAlignment alignment = ALIGNMENT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YCssLayoutCellStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YCSS_LAYOUT_CELL_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTarget() <em>Target</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YEmbeddable getTarget() {
+		if (target != null && target.eIsProxy()) {
+			InternalEObject oldTarget = (InternalEObject)target;
+			target = (YEmbeddable)eResolveProxy(oldTarget);
+			if (target != oldTarget) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+			}
+		}
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetTarget() {
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTarget
+	 *            the new cached value of the '{@link #getTarget()
+	 *            <em>Target</em>}' reference
+	 * @generated
+	 */
+	public void setTarget(YEmbeddable newTarget) {
+		YEmbeddable oldTarget = target;
+		target = newTarget;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getAlignment()
+	 *         <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public YAlignment getAlignment() {
+		return alignment;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newAlignment
+	 *            the new cached value of the '{@link #getAlignment()
+	 *            <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public void setAlignment(YAlignment newAlignment) {
+		YAlignment oldAlignment = alignment;
+		alignment = newAlignment == null ? ALIGNMENT_EDEFAULT : newAlignment;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__ALIGNMENT, oldAlignment, alignment));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__TARGET:
+				if (resolve) return getTarget();
+				return basicGetTarget();
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return getAlignment();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment((YAlignment)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment(ALIGNMENT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__TARGET:
+				return target != null;
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return alignment != ALIGNMENT_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (alignment: ");
+		result.append(alignment);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YCssLayoutCellStyleImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YCssLayoutImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YCssLayoutImpl.java
new file mode 100644
index 0000000..02cb1d9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YCssLayoutImpl.java
@@ -0,0 +1,366 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YCss Layout</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutImpl#isSpacing <em>Spacing</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutImpl#isMargin <em>Margin</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YCssLayoutImpl#getCellStyles <em>Cell Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YCssLayoutImpl extends YLayoutImpl implements YCssLayout {
+	/**
+	 * The default value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SPACING_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean spacing = SPACING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARGIN_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean margin = MARGIN_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCellStyles() <em>Cell Styles</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCellStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YCssLayoutCellStyle> cellStyles;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YCssLayoutImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YCSS_LAYOUT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSpacing() {
+		return spacing;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSpacing(boolean newSpacing) {
+		boolean oldSpacing = spacing;
+		spacing = newSpacing;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCSS_LAYOUT__SPACING, oldSpacing, spacing));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMargin() {
+		return margin;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMargin(boolean newMargin) {
+		boolean oldMargin = margin;
+		margin = newMargin;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YCSS_LAYOUT__MARGIN, oldMargin, margin));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YCssLayoutCellStyle> getCellStyles() {
+		if (cellStyles == null) {
+			cellStyles = new EObjectContainmentEList.Resolving<YCssLayoutCellStyle>(YCssLayoutCellStyle.class, this, ExtensionModelPackage.YCSS_LAYOUT__CELL_STYLES);
+		}
+		return cellStyles;
+	}
+
+	public void applyAlignment(YEmbeddable child, YAlignment alignment) {
+		getCellStyle(child).setAlignment(alignment);
+	}
+
+	public YCssLayoutCellStyle getCellStyle(YEmbeddable element) {
+		for (YCssLayoutCellStyle style : getCellStyles()) {
+			if (element == style.getTarget()) {
+				return style;
+			}
+		}
+		
+		return addCellStyle(element);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCSS_LAYOUT__CELL_STYLES:
+				return ((InternalEList<?>)getCellStyles()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCSS_LAYOUT__SPACING:
+				return isSpacing();
+			case ExtensionModelPackage.YCSS_LAYOUT__MARGIN:
+				return isMargin();
+			case ExtensionModelPackage.YCSS_LAYOUT__CELL_STYLES:
+				return getCellStyles();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCSS_LAYOUT__SPACING:
+				setSpacing((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YCSS_LAYOUT__MARGIN:
+				setMargin((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YCSS_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				getCellStyles().addAll((Collection<? extends YCssLayoutCellStyle>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCSS_LAYOUT__SPACING:
+				setSpacing(SPACING_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCSS_LAYOUT__MARGIN:
+				setMargin(MARGIN_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YCSS_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YCSS_LAYOUT__SPACING:
+				return spacing != SPACING_EDEFAULT;
+			case ExtensionModelPackage.YCSS_LAYOUT__MARGIN:
+				return margin != MARGIN_EDEFAULT;
+			case ExtensionModelPackage.YCSS_LAYOUT__CELL_STYLES:
+				return cellStyles != null && !cellStyles.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YCSS_LAYOUT__SPACING: return CoreModelPackage.YSPACINGABLE__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YCSS_LAYOUT__MARGIN: return CoreModelPackage.YMARGINABLE__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSPACINGABLE__SPACING: return ExtensionModelPackage.YCSS_LAYOUT__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMARGINABLE__MARGIN: return ExtensionModelPackage.YCSS_LAYOUT__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (spacing: ");
+		result.append(spacing);
+		result.append(", margin: ");
+		result.append(margin);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public YCssLayoutCellStyle addCellStyle(YEmbeddable element) {
+		YCssLayoutCellStyle yStyle = ExtensionModelFactory.eINSTANCE.createYCssLayoutCellStyle();
+		yStyle.setTarget(element);
+		getCellStyles().add(yStyle);
+		return yStyle;
+	}
+	
+	
+} // YUiCssLayoutImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YDateTimeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YDateTimeImpl.java
new file mode 100644
index 0000000..92c4b65
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YDateTimeImpl.java
@@ -0,0 +1,671 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Date;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.custom.ChangeAdapter;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YDate Time</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDateTimeImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDateTimeImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDateTimeImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDateTimeImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+@SuppressWarnings("restriction")
+public class YDateTimeImpl extends YInputImpl implements YDateTime {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDateTimeDatatype datatype;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Date VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected Date value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YDateTimeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YDATE_TIME;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YDateTimeDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YDateTimeDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YDATE_TIME__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y date time datatype
+	 * @generated
+	 */
+	public YDateTimeDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YDateTimeDatatype newDatatype) {
+		YDateTimeDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDATE_TIME__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YDATE_TIME__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDATE_TIME__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Date getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(Date newValue) {
+		Date oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDATE_TIME__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * Returns a new instance of the change adapter config. Has to be overridden
+	 * by subclasses.
+	 *
+	 * @return the change adapter. config
+	 * @generated NOT
+	 */
+	protected ChangeAdapter.Config createNewChangeAdapterConfig() {
+		return new ChangeAdapter.Config(
+				ExtensionModelPackage.Literals.YDATE_TIME__VALUE,
+				Notification.SET);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YDATE_TIME__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YDATE_TIME__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YDATE_TIME__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YDATE_TIME__DATATYPE:
+				setDatatype((YDateTimeDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YDATE_TIME__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YDATE_TIME__VALUE:
+				setValue((Date)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YDATE_TIME__DATATYPE:
+				setDatatype((YDateTimeDatatype)null);
+				return;
+			case ExtensionModelPackage.YDATE_TIME__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YDATE_TIME__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YDATE_TIME__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YDATE_TIME__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YDATE_TIME__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YDATE_TIME__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#setDateFormat(org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeFormat)
+	 */
+	@Override
+	public void setDateFormat(YDateTimeFormat format) {
+		YDateTimeDatatype dt = getDatatype();
+		if (dt == null) {
+			dt = ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype();
+			setDatatype(dt);
+			getOrphanDatatypes().add(dt);
+		}
+		dt.setFormat(format);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getDateFormat()
+	 */
+	@Override
+	public YDateTimeFormat getDateFormat() {
+		YDateTimeDatatype dt = getDatatype();
+		return dt != null ? dt.getFormat() : null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#setResolution(org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeResolution)
+	 */
+	@Override
+	public void setResolution(YDateTimeResolution resolution) {
+		YDateTimeDatatype dt = getDatatype();
+		if (dt == null) {
+			dt = ExtDatatypesFactory.eINSTANCE.createYDateTimeDatatype();
+			setDatatype(dt);
+			getOrphanDatatypes().add(dt);
+		}
+		dt.setResolution(resolution);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime#getResolution()
+	 */
+	@Override
+	public YDateTimeResolution getResolution() {
+		YDateTimeDatatype dt = getDatatype();
+		return dt != null ? dt.getResolution() : null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YDateTimeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YDecimalFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YDecimalFieldImpl.java
new file mode 100644
index 0000000..b5dca2a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YDecimalFieldImpl.java
@@ -0,0 +1,597 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Decimal Field</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDecimalFieldImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDecimalFieldImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDecimalFieldImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YDecimalFieldImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YDecimalFieldImpl extends YInputImpl implements YDecimalField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDecimalDatatype datatype;
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double VALUE_EDEFAULT = 0.0;
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YDecimalFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YDECIMAL_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YDecimalDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YDecimalDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YDECIMAL_FIELD__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y decimal datatype
+	 * @generated
+	 */
+	public YDecimalDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YDecimalDatatype newDatatype) {
+		YDecimalDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDECIMAL_FIELD__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YDECIMAL_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDECIMAL_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public double getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(double newValue) {
+		double oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YDECIMAL_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YDECIMAL_FIELD__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YDECIMAL_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YDECIMAL_FIELD__DATATYPE:
+				setDatatype((YDecimalDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YDECIMAL_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE:
+				setValue((Double)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YDECIMAL_FIELD__DATATYPE:
+				setDatatype((YDecimalDatatype)null);
+				return;
+			case ExtensionModelPackage.YDECIMAL_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YDECIMAL_FIELD__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YDECIMAL_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YDECIMAL_FIELD__VALUE:
+				return value != VALUE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YDECIMAL_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YUiDecimalFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YEnumComboBoxImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YEnumComboBoxImpl.java
new file mode 100644
index 0000000..8b6f5d8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YEnumComboBoxImpl.java
@@ -0,0 +1,908 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YEnum Combo Box</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumComboBoxImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YEnumComboBoxImpl extends YInputImpl implements YEnumComboBox {
+	/**
+	 * The cached value of the '{@link #getCollectionBindingEndpoint() <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableCollectionEndpoint collectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getSelectionBindingEndpoint() <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableSelectionEndpoint selectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YComboBoxDatatype datatype;
+
+	/**
+	 * The default value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object SELECTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object selection = SELECTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YEnumComboBoxImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YENUM_COMBO_BOX;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollectionBindingEndpoint()
+	 *         <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint getCollectionBindingEndpoint() {
+		if (collectionBindingEndpoint != null && collectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldCollectionBindingEndpoint = (InternalEObject)collectionBindingEndpoint;
+			collectionBindingEndpoint = (YEmbeddableCollectionEndpoint)eResolveProxy(oldCollectionBindingEndpoint);
+			if (collectionBindingEndpoint != oldCollectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, collectionBindingEndpoint));
+			}
+		}
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint basicGetCollectionBindingEndpoint() {
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new collection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableCollectionEndpoint oldCollectionBindingEndpoint = collectionBindingEndpoint;
+		collectionBindingEndpoint = newCollectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, newCollectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getCollectionBindingEndpoint()
+	 *            <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint) {
+		if (newCollectionBindingEndpoint != collectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (collectionBindingEndpoint != null)
+				msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			if (newCollectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newCollectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			msgs = basicSetCollectionBindingEndpoint(newCollectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT, newCollectionBindingEndpoint, newCollectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionBindingEndpoint()
+	 *         <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint getSelectionBindingEndpoint() {
+		if (selectionBindingEndpoint != null && selectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldSelectionBindingEndpoint = (InternalEObject)selectionBindingEndpoint;
+			selectionBindingEndpoint = (YEmbeddableSelectionEndpoint)eResolveProxy(oldSelectionBindingEndpoint);
+			if (selectionBindingEndpoint != oldSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, selectionBindingEndpoint));
+			}
+		}
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint basicGetSelectionBindingEndpoint() {
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSelectionBindingEndpoint(YEmbeddableSelectionEndpoint newSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableSelectionEndpoint oldSelectionBindingEndpoint = selectionBindingEndpoint;
+		selectionBindingEndpoint = newSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, newSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getSelectionBindingEndpoint()
+	 *            <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setSelectionBindingEndpoint(YEmbeddableSelectionEndpoint newSelectionBindingEndpoint) {
+		if (newSelectionBindingEndpoint != selectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (selectionBindingEndpoint != null)
+				msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			if (newSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			msgs = basicSetSelectionBindingEndpoint(newSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT, newSelectionBindingEndpoint, newSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_COMBO_BOX__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YComboBoxDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YComboBoxDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_COMBO_BOX__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y combo box datatype
+	 * @generated
+	 */
+	public YComboBoxDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YComboBoxDatatype newDatatype) {
+		YComboBoxDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelection()
+	 *         <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public Object getSelection() {
+		return selection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelection
+	 *            the new cached value of the '{@link #getSelection()
+	 *            <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public void setSelection(Object newSelection) {
+		Object oldSelection = selection;
+		selection = newSelection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION, oldSelection, selection));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpoint() {
+		YEmbeddableSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				if (collectionBindingEndpoint != null)
+					msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+				return basicSetCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				if (selectionBindingEndpoint != null)
+					msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+				return basicSetSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				return basicSetCollectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				return basicSetSelectionBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				if (resolve) return getCollectionBindingEndpoint();
+				return basicGetCollectionBindingEndpoint();
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getSelectionBindingEndpoint();
+				return basicGetSelectionBindingEndpoint();
+			case ExtensionModelPackage.YENUM_COMBO_BOX__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YENUM_COMBO_BOX__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION:
+				return getSelection();
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE:
+				return getType();
+			case ExtensionModelPackage.YENUM_COMBO_BOX__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__DATATYPE:
+				setDatatype((YComboBoxDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION:
+				setSelection(newValue);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__DATATYPE:
+				setDatatype((YComboBoxDatatype)null);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION:
+				setSelection(SELECTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT:
+				return collectionBindingEndpoint != null;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT:
+				return selectionBindingEndpoint != null;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION:
+				return SELECTION_EDEFAULT == null ? selection != null : !SELECTION_EDEFAULT.equals(selection);
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YENUM_COMBO_BOX__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YENUM_COMBO_BOX__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT: return CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YENUM_COMBO_BOX__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YENUM_COMBO_BOX__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (selection: ");
+		result.append(selection);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} //YEnumComboBoxImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YEnumListImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YEnumListImpl.java
new file mode 100644
index 0000000..e512664
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YEnumListImpl.java
@@ -0,0 +1,1112 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YEnum List</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumListImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YEnumListImpl extends YInputImpl implements YEnumList {
+	/**
+	 * The cached value of the '{@link #getCollectionBindingEndpoint() <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableCollectionEndpoint collectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getSelectionBindingEndpoint() <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableSelectionEndpoint selectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelectionBindingEndpoint() <em>Multi Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMultiSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableMultiSelectionEndpoint multiSelectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YListDataType datatype;
+
+	/**
+	 * The default value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSelectionType SELECTION_TYPE_EDEFAULT = YSelectionType.SINGLE;
+
+	/**
+	 * The cached value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSelectionType selectionType = SELECTION_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object SELECTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object selection = SELECTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelection() <em>Multi Selection</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMultiSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> multiSelection;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YEnumListImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YENUM_LIST;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollectionBindingEndpoint()
+	 *         <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint getCollectionBindingEndpoint() {
+		if (collectionBindingEndpoint != null && collectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldCollectionBindingEndpoint = (InternalEObject)collectionBindingEndpoint;
+			collectionBindingEndpoint = (YEmbeddableCollectionEndpoint)eResolveProxy(oldCollectionBindingEndpoint);
+			if (collectionBindingEndpoint != oldCollectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, collectionBindingEndpoint));
+			}
+		}
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint basicGetCollectionBindingEndpoint() {
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new collection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableCollectionEndpoint oldCollectionBindingEndpoint = collectionBindingEndpoint;
+		collectionBindingEndpoint = newCollectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, newCollectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getCollectionBindingEndpoint()
+	 *            <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint) {
+		if (newCollectionBindingEndpoint != collectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (collectionBindingEndpoint != null)
+				msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			if (newCollectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newCollectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			msgs = basicSetCollectionBindingEndpoint(newCollectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT, newCollectionBindingEndpoint, newCollectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionBindingEndpoint()
+	 *         <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint getSelectionBindingEndpoint() {
+		if (selectionBindingEndpoint != null && selectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldSelectionBindingEndpoint = (InternalEObject)selectionBindingEndpoint;
+			selectionBindingEndpoint = (YEmbeddableSelectionEndpoint)eResolveProxy(oldSelectionBindingEndpoint);
+			if (selectionBindingEndpoint != oldSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, selectionBindingEndpoint));
+			}
+		}
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint basicGetSelectionBindingEndpoint() {
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSelectionBindingEndpoint(YEmbeddableSelectionEndpoint newSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableSelectionEndpoint oldSelectionBindingEndpoint = selectionBindingEndpoint;
+		selectionBindingEndpoint = newSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, newSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getSelectionBindingEndpoint()
+	 *            <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setSelectionBindingEndpoint(YEmbeddableSelectionEndpoint newSelectionBindingEndpoint) {
+		if (newSelectionBindingEndpoint != selectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (selectionBindingEndpoint != null)
+				msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			if (newSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			msgs = basicSetSelectionBindingEndpoint(newSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT, newSelectionBindingEndpoint, newSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '
+	 *         {@link #getMultiSelectionBindingEndpoint()
+	 *         <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint getMultiSelectionBindingEndpoint() {
+		if (multiSelectionBindingEndpoint != null && multiSelectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldMultiSelectionBindingEndpoint = (InternalEObject)multiSelectionBindingEndpoint;
+			multiSelectionBindingEndpoint = (YEmbeddableMultiSelectionEndpoint)eResolveProxy(oldMultiSelectionBindingEndpoint);
+			if (multiSelectionBindingEndpoint != oldMultiSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, multiSelectionBindingEndpoint));
+			}
+		}
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint basicGetMultiSelectionBindingEndpoint() {
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new multi selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableMultiSelectionEndpoint oldMultiSelectionBindingEndpoint = multiSelectionBindingEndpoint;
+		multiSelectionBindingEndpoint = newMultiSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getMultiSelectionBindingEndpoint()
+	 *            <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint) {
+		if (newMultiSelectionBindingEndpoint != multiSelectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (multiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			if (newMultiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newMultiSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			msgs = basicSetMultiSelectionBindingEndpoint(newMultiSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT, newMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_LIST__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YListDataType getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YListDataType)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_LIST__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list data type
+	 * @generated
+	 */
+	public YListDataType basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YListDataType newDatatype) {
+		YListDataType oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionType()
+	 *         <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public YSelectionType getSelectionType() {
+		return selectionType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionType
+	 *            the new cached value of the '{@link #getSelectionType()
+	 *            <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public void setSelectionType(YSelectionType newSelectionType) {
+		YSelectionType oldSelectionType = selectionType;
+		selectionType = newSelectionType == null ? SELECTION_TYPE_EDEFAULT : newSelectionType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__SELECTION_TYPE, oldSelectionType, selectionType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelection()
+	 *         <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public Object getSelection() {
+		return selection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelection
+	 *            the new cached value of the '{@link #getSelection()
+	 *            <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public void setSelection(Object newSelection) {
+		Object oldSelection = selection;
+		selection = newSelection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__SELECTION, oldSelection, selection));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMultiSelection()
+	 *         <em>Multi Selection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getMultiSelection() {
+		if (multiSelection == null) {
+			multiSelection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION);
+		}
+		return multiSelection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_LIST__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT:
+				if (collectionBindingEndpoint != null)
+					msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+				return basicSetCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT:
+				if (selectionBindingEndpoint != null)
+					msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+				return basicSetSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (multiSelectionBindingEndpoint != null)
+					msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+				return basicSetMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT:
+				return basicSetCollectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT:
+				return basicSetSelectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				return basicSetMultiSelectionBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT:
+				if (resolve) return getCollectionBindingEndpoint();
+				return basicGetCollectionBindingEndpoint();
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getSelectionBindingEndpoint();
+				return basicGetSelectionBindingEndpoint();
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getMultiSelectionBindingEndpoint();
+				return basicGetMultiSelectionBindingEndpoint();
+			case ExtensionModelPackage.YENUM_LIST__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YENUM_LIST__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_TYPE:
+				return getSelectionType();
+			case ExtensionModelPackage.YENUM_LIST__SELECTION:
+				return getSelection();
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION:
+				return getMultiSelection();
+			case ExtensionModelPackage.YENUM_LIST__TYPE:
+				return getType();
+			case ExtensionModelPackage.YENUM_LIST__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YENUM_LIST__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__DATATYPE:
+				setDatatype((YListDataType)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_TYPE:
+				setSelectionType((YSelectionType)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__SELECTION:
+				setSelection(newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION:
+				getMultiSelection().clear();
+				getMultiSelection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__DATATYPE:
+				setDatatype((YListDataType)null);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_TYPE:
+				setSelectionType(SELECTION_TYPE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__SELECTION:
+				setSelection(SELECTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION:
+				getMultiSelection().clear();
+				return;
+			case ExtensionModelPackage.YENUM_LIST__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YENUM_LIST__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT:
+				return collectionBindingEndpoint != null;
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT:
+				return selectionBindingEndpoint != null;
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				return multiSelectionBindingEndpoint != null;
+			case ExtensionModelPackage.YENUM_LIST__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YENUM_LIST__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YENUM_LIST__SELECTION_TYPE:
+				return selectionType != SELECTION_TYPE_EDEFAULT;
+			case ExtensionModelPackage.YENUM_LIST__SELECTION:
+				return SELECTION_EDEFAULT == null ? selection != null : !SELECTION_EDEFAULT.equals(selection);
+			case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION:
+				return multiSelection != null && !multiSelection.isEmpty();
+			case ExtensionModelPackage.YENUM_LIST__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YENUM_LIST__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YENUM_LIST__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT: return CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YENUM_LIST__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YENUM_LIST__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YENUM_LIST__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (selectionType: ");
+		result.append(selectionType);
+		result.append(", selection: ");
+		result.append(selection);
+		result.append(", multiSelection: ");
+		result.append(multiSelection);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} //YEnumListImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YEnumOptionsGroupImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YEnumOptionsGroupImpl.java
new file mode 100644
index 0000000..886e262
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YEnumOptionsGroupImpl.java
@@ -0,0 +1,1150 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YEnum Options Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YEnumOptionsGroupImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YEnumOptionsGroupImpl extends YInputImpl implements YEnumOptionsGroup {
+	/**
+	 * The cached value of the '{@link #getCollectionBindingEndpoint() <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableCollectionEndpoint collectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getSelectionBindingEndpoint() <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableSelectionEndpoint selectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelectionBindingEndpoint() <em>Multi Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMultiSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableMultiSelectionEndpoint multiSelectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YOptionsGroupDataType datatype;
+
+	/**
+	 * The default value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSelectionType SELECTION_TYPE_EDEFAULT = YSelectionType.SINGLE;
+
+	/**
+	 * The cached value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSelectionType selectionType = SELECTION_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object SELECTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object selection = SELECTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelection() <em>Multi Selection</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMultiSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> multiSelection;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YEnumOptionsGroupImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YENUM_OPTIONS_GROUP;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollectionBindingEndpoint()
+	 *         <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint getCollectionBindingEndpoint() {
+		if (collectionBindingEndpoint != null && collectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldCollectionBindingEndpoint = (InternalEObject)collectionBindingEndpoint;
+			collectionBindingEndpoint = (YEmbeddableCollectionEndpoint)eResolveProxy(oldCollectionBindingEndpoint);
+			if (collectionBindingEndpoint != oldCollectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, collectionBindingEndpoint));
+			}
+		}
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint basicGetCollectionBindingEndpoint() {
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new collection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableCollectionEndpoint oldCollectionBindingEndpoint = collectionBindingEndpoint;
+		collectionBindingEndpoint = newCollectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, newCollectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getCollectionBindingEndpoint()
+	 *            <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint) {
+		if (newCollectionBindingEndpoint != collectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (collectionBindingEndpoint != null)
+				msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			if (newCollectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newCollectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			msgs = basicSetCollectionBindingEndpoint(newCollectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT, newCollectionBindingEndpoint, newCollectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionBindingEndpoint()
+	 *         <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint getSelectionBindingEndpoint() {
+		if (selectionBindingEndpoint != null && selectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldSelectionBindingEndpoint = (InternalEObject)selectionBindingEndpoint;
+			selectionBindingEndpoint = (YEmbeddableSelectionEndpoint)eResolveProxy(oldSelectionBindingEndpoint);
+			if (selectionBindingEndpoint != oldSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, selectionBindingEndpoint));
+			}
+		}
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint basicGetSelectionBindingEndpoint() {
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSelectionBindingEndpoint(YEmbeddableSelectionEndpoint newSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableSelectionEndpoint oldSelectionBindingEndpoint = selectionBindingEndpoint;
+		selectionBindingEndpoint = newSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, newSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getSelectionBindingEndpoint()
+	 *            <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setSelectionBindingEndpoint(YEmbeddableSelectionEndpoint newSelectionBindingEndpoint) {
+		if (newSelectionBindingEndpoint != selectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (selectionBindingEndpoint != null)
+				msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			if (newSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			msgs = basicSetSelectionBindingEndpoint(newSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT, newSelectionBindingEndpoint, newSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '
+	 *         {@link #getMultiSelectionBindingEndpoint()
+	 *         <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint getMultiSelectionBindingEndpoint() {
+		if (multiSelectionBindingEndpoint != null && multiSelectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldMultiSelectionBindingEndpoint = (InternalEObject)multiSelectionBindingEndpoint;
+			multiSelectionBindingEndpoint = (YEmbeddableMultiSelectionEndpoint)eResolveProxy(oldMultiSelectionBindingEndpoint);
+			if (multiSelectionBindingEndpoint != oldMultiSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, multiSelectionBindingEndpoint));
+			}
+		}
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint basicGetMultiSelectionBindingEndpoint() {
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new multi selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableMultiSelectionEndpoint oldMultiSelectionBindingEndpoint = multiSelectionBindingEndpoint;
+		multiSelectionBindingEndpoint = newMultiSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getMultiSelectionBindingEndpoint()
+	 *            <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint) {
+		if (newMultiSelectionBindingEndpoint != multiSelectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (multiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			if (newMultiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newMultiSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			msgs = basicSetMultiSelectionBindingEndpoint(newMultiSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT, newMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YOptionsGroupDataType getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YOptionsGroupDataType)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group data type
+	 * @generated
+	 */
+	public YOptionsGroupDataType basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YOptionsGroupDataType newDatatype) {
+		YOptionsGroupDataType oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionType()
+	 *         <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public YSelectionType getSelectionType() {
+		return selectionType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionType
+	 *            the new cached value of the '{@link #getSelectionType()
+	 *            <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public void setSelectionType(YSelectionType newSelectionType) {
+		YSelectionType oldSelectionType = selectionType;
+		selectionType = newSelectionType == null ? SELECTION_TYPE_EDEFAULT : newSelectionType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_TYPE, oldSelectionType, selectionType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelection()
+	 *         <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public Object getSelection() {
+		return selection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelection
+	 *            the new cached value of the '{@link #getSelection()
+	 *            <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public void setSelection(Object newSelection) {
+		Object oldSelection = selection;
+		selection = newSelection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION, oldSelection, selection));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMultiSelection()
+	 *         <em>Multi Selection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getMultiSelection() {
+		if (multiSelection == null) {
+			multiSelection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION);
+		}
+		return multiSelection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpoint() {
+		YEmbeddableMultiSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableMultiSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpoint() {
+		YEmbeddableSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				if (collectionBindingEndpoint != null)
+					msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+				return basicSetCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				if (selectionBindingEndpoint != null)
+					msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+				return basicSetSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (multiSelectionBindingEndpoint != null)
+					msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+				return basicSetMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				return basicSetCollectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				return basicSetSelectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				return basicSetMultiSelectionBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				if (resolve) return getCollectionBindingEndpoint();
+				return basicGetCollectionBindingEndpoint();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getSelectionBindingEndpoint();
+				return basicGetSelectionBindingEndpoint();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getMultiSelectionBindingEndpoint();
+				return basicGetMultiSelectionBindingEndpoint();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_TYPE:
+				return getSelectionType();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION:
+				return getSelection();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION:
+				return getMultiSelection();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE:
+				return getType();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATATYPE:
+				setDatatype((YOptionsGroupDataType)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_TYPE:
+				setSelectionType((YSelectionType)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION:
+				setSelection(newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION:
+				getMultiSelection().clear();
+				getMultiSelection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATATYPE:
+				setDatatype((YOptionsGroupDataType)null);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_TYPE:
+				setSelectionType(SELECTION_TYPE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION:
+				setSelection(SELECTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION:
+				getMultiSelection().clear();
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				return collectionBindingEndpoint != null;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				return selectionBindingEndpoint != null;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				return multiSelectionBindingEndpoint != null;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_TYPE:
+				return selectionType != SELECTION_TYPE_EDEFAULT;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION:
+				return SELECTION_EDEFAULT == null ? selection != null : !SELECTION_EDEFAULT.equals(selection);
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION:
+				return multiSelection != null && !multiSelection.isEmpty();
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT: return CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YENUM_OPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YENUM_OPTIONS_GROUP__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YENUM_OPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (selectionType: ");
+		result.append(selectionType);
+		result.append(", selection: ");
+		result.append(selection);
+		result.append(", multiSelection: ");
+		result.append(multiSelection);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} //YEnumOptionsGroupImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YFilterImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YFilterImpl.java
new file mode 100644
index 0000000..b0c826b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YFilterImpl.java
@@ -0,0 +1,437 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFilter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YFilter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFilterImpl#getFilterValue <em>Filter Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YFilterImpl extends MinimalEObjectImpl.Container implements YFilter {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getFilterValue() <em>Filter Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilterValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object FILTER_VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFilterValue() <em>Filter Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilterValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object filterValue = FILTER_VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YFilterImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YFILTER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YFILTER__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YFILTER__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtensionModelPackage.YFILTER__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtensionModelPackage.YFILTER__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YFILTER__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getFilterValue() {
+		return filterValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFilterValue(Object newFilterValue) {
+		Object oldFilterValue = filterValue;
+		filterValue = newFilterValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YFILTER__FILTER_VALUE, oldFilterValue, filterValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFILTER__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFILTER__TAGS:
+				return getTags();
+			case ExtensionModelPackage.YFILTER__ID:
+				return getId();
+			case ExtensionModelPackage.YFILTER__NAME:
+				return getName();
+			case ExtensionModelPackage.YFILTER__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtensionModelPackage.YFILTER__PROPERTY_PATH:
+				return getPropertyPath();
+			case ExtensionModelPackage.YFILTER__FILTER_VALUE:
+				return getFilterValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFILTER__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtensionModelPackage.YFILTER__ID:
+				setId((String)newValue);
+				return;
+			case ExtensionModelPackage.YFILTER__NAME:
+				setName((String)newValue);
+				return;
+			case ExtensionModelPackage.YFILTER__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtensionModelPackage.YFILTER__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+			case ExtensionModelPackage.YFILTER__FILTER_VALUE:
+				setFilterValue(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFILTER__TAGS:
+				getTags().clear();
+				return;
+			case ExtensionModelPackage.YFILTER__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YFILTER__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YFILTER__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtensionModelPackage.YFILTER__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YFILTER__FILTER_VALUE:
+				setFilterValue(FILTER_VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFILTER__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtensionModelPackage.YFILTER__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtensionModelPackage.YFILTER__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtensionModelPackage.YFILTER__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtensionModelPackage.YFILTER__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+			case ExtensionModelPackage.YFILTER__FILTER_VALUE:
+				return FILTER_VALUE_EDEFAULT == null ? filterValue != null : !FILTER_VALUE_EDEFAULT.equals(filterValue);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", propertyPath: ");
+		result.append(propertyPath);
+		result.append(", filterValue: ");
+		result.append(filterValue);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YFilterImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YFormLayoutCellStyleImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YFormLayoutCellStyleImpl.java
new file mode 100644
index 0000000..dd391f3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YFormLayoutCellStyleImpl.java
@@ -0,0 +1,262 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YForm Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutCellStyleImpl#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutCellStyleImpl#getAlignment <em>Alignment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YFormLayoutCellStyleImpl extends MinimalEObjectImpl.Container implements YFormLayoutCellStyle {
+	/**
+	 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTarget()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable target;
+
+	/**
+	 * The default value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YAlignment ALIGNMENT_EDEFAULT = YAlignment.UNDEFINED;
+
+	/**
+	 * The cached value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected YAlignment alignment = ALIGNMENT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YFormLayoutCellStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YFORM_LAYOUT_CELL_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTarget() <em>Target</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YEmbeddable getTarget() {
+		if (target != null && target.eIsProxy()) {
+			InternalEObject oldTarget = (InternalEObject)target;
+			target = (YEmbeddable)eResolveProxy(oldTarget);
+			if (target != oldTarget) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+			}
+		}
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetTarget() {
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTarget
+	 *            the new cached value of the '{@link #getTarget()
+	 *            <em>Target</em>}' reference
+	 * @generated
+	 */
+	public void setTarget(YEmbeddable newTarget) {
+		YEmbeddable oldTarget = target;
+		target = newTarget;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getAlignment()
+	 *         <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public YAlignment getAlignment() {
+		return alignment;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newAlignment
+	 *            the new cached value of the '{@link #getAlignment()
+	 *            <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public void setAlignment(YAlignment newAlignment) {
+		YAlignment oldAlignment = alignment;
+		alignment = newAlignment == null ? ALIGNMENT_EDEFAULT : newAlignment;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__ALIGNMENT, oldAlignment, alignment));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__TARGET:
+				if (resolve) return getTarget();
+				return basicGetTarget();
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return getAlignment();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment((YAlignment)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment(ALIGNMENT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__TARGET:
+				return target != null;
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return alignment != ALIGNMENT_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (alignment: ");
+		result.append(alignment);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YFormLayoutCellStyleImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YFormLayoutImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YFormLayoutImpl.java
new file mode 100644
index 0000000..6ccbb67
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YFormLayoutImpl.java
@@ -0,0 +1,407 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YForm Layout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutImpl#isSpacing <em>Spacing</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutImpl#isMargin <em>Margin</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YFormLayoutImpl#getCellStyles <em>Cell Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YFormLayoutImpl extends YLayoutImpl implements YFormLayout {
+	/**
+	 * The default value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SPACING_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean spacing = SPACING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARGIN_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean margin = MARGIN_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCellStyles() <em>Cell Styles</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCellStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YFormLayoutCellStyle> cellStyles;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YFormLayoutImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YFORM_LAYOUT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isSpacing() <em>Spacing</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isSpacing() {
+		return spacing;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSpacing
+	 *            the new cached value of the '{@link #isSpacing()
+	 *            <em>Spacing</em>}' attribute
+	 * @generated
+	 */
+	public void setSpacing(boolean newSpacing) {
+		boolean oldSpacing = spacing;
+		spacing = newSpacing;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YFORM_LAYOUT__SPACING, oldSpacing, spacing));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isMargin() <em>Margin</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isMargin() {
+		return margin;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMargin
+	 *            the new cached value of the '{@link #isMargin()
+	 *            <em>Margin</em>}' attribute
+	 * @generated
+	 */
+	public void setMargin(boolean newMargin) {
+		boolean oldMargin = margin;
+		margin = newMargin;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YFORM_LAYOUT__MARGIN, oldMargin, margin));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCellStyles()
+	 *         <em>Cell Styles</em>}' containment reference list
+	 * @generated
+	 */
+	public EList<YFormLayoutCellStyle> getCellStyles() {
+		if (cellStyles == null) {
+			cellStyles = new EObjectContainmentEList.Resolving<YFormLayoutCellStyle>(YFormLayoutCellStyle.class, this, ExtensionModelPackage.YFORM_LAYOUT__CELL_STYLES);
+		}
+		return cellStyles;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer#applyAlignment(org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable, org.eclipse.osbp.ecview.core.common.model.core.YAlignment)
+	 */
+	public void applyAlignment(YEmbeddable child, YAlignment alignment) {
+		getCellStyle(child).setAlignment(alignment);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout#getCellStyle(org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable)
+	 */
+	public YFormLayoutCellStyle getCellStyle(YEmbeddable element) {
+		for (YFormLayoutCellStyle style : getCellStyles()) {
+			if (element == style.getTarget()) {
+				return style;
+			}
+		}
+
+		YFormLayoutCellStyle yStyle = ExtensionModelFactory.eINSTANCE
+				.createYFormLayoutCellStyle();
+		yStyle.setTarget(element);
+		getCellStyles().add(yStyle);
+		return yStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFORM_LAYOUT__CELL_STYLES:
+				return ((InternalEList<?>)getCellStyles()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFORM_LAYOUT__SPACING:
+				return isSpacing();
+			case ExtensionModelPackage.YFORM_LAYOUT__MARGIN:
+				return isMargin();
+			case ExtensionModelPackage.YFORM_LAYOUT__CELL_STYLES:
+				return getCellStyles();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFORM_LAYOUT__SPACING:
+				setSpacing((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YFORM_LAYOUT__MARGIN:
+				setMargin((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YFORM_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				getCellStyles().addAll((Collection<? extends YFormLayoutCellStyle>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFORM_LAYOUT__SPACING:
+				setSpacing(SPACING_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YFORM_LAYOUT__MARGIN:
+				setMargin(MARGIN_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YFORM_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YFORM_LAYOUT__SPACING:
+				return spacing != SPACING_EDEFAULT;
+			case ExtensionModelPackage.YFORM_LAYOUT__MARGIN:
+				return margin != MARGIN_EDEFAULT;
+			case ExtensionModelPackage.YFORM_LAYOUT__CELL_STYLES:
+				return cellStyles != null && !cellStyles.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YFORM_LAYOUT__SPACING: return CoreModelPackage.YSPACINGABLE__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YFORM_LAYOUT__MARGIN: return CoreModelPackage.YMARGINABLE__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSPACINGABLE__SPACING: return ExtensionModelPackage.YFORM_LAYOUT__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMARGINABLE__MARGIN: return ExtensionModelPackage.YFORM_LAYOUT__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (spacing: ");
+		result.append(spacing);
+		result.append(", margin: ");
+		result.append(margin);
+		result.append(')');
+		return result.toString();
+	}
+
+} // YFormLayoutImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YGridLayoutCellStyleImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YGridLayoutCellStyleImpl.java
new file mode 100644
index 0000000..1ae7eb3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YGridLayoutCellStyleImpl.java
@@ -0,0 +1,407 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Grid Layout Cell Style</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutCellStyleImpl#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutCellStyleImpl#getAlignment <em>Alignment</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutCellStyleImpl#getSpanInfo <em>Span Info</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YGridLayoutCellStyleImpl extends MinimalEObjectImpl.Container implements
+		YGridLayoutCellStyle {
+	/**
+	 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTarget()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable target;
+
+	/**
+	 * The default value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YAlignment ALIGNMENT_EDEFAULT = YAlignment.UNDEFINED;
+
+	/**
+	 * The cached value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected YAlignment alignment = ALIGNMENT_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getSpanInfo() <em>Span Info</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSpanInfo()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSpanInfo spanInfo;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YGridLayoutCellStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YGRID_LAYOUT_CELL_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTarget() <em>Target</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YEmbeddable getTarget() {
+		if (target != null && target.eIsProxy()) {
+			InternalEObject oldTarget = (InternalEObject)target;
+			target = (YEmbeddable)eResolveProxy(oldTarget);
+			if (target != oldTarget) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+			}
+		}
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetTarget() {
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTarget
+	 *            the new cached value of the '{@link #getTarget()
+	 *            <em>Target</em>}' reference
+	 * @generated
+	 */
+	public void setTarget(YEmbeddable newTarget) {
+		YEmbeddable oldTarget = target;
+		target = newTarget;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getAlignment()
+	 *         <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public YAlignment getAlignment() {
+		return alignment;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newAlignment
+	 *            the new cached value of the '{@link #getAlignment()
+	 *            <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public void setAlignment(YAlignment newAlignment) {
+		YAlignment oldAlignment = alignment;
+		alignment = newAlignment == null ? ALIGNMENT_EDEFAULT : newAlignment;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__ALIGNMENT, oldAlignment, alignment));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSpanInfo()
+	 *         <em>Span Info</em>}' containment reference
+	 * @generated
+	 */
+	public YSpanInfo getSpanInfo() {
+		if (spanInfo != null && spanInfo.eIsProxy()) {
+			InternalEObject oldSpanInfo = (InternalEObject)spanInfo;
+			spanInfo = (YSpanInfo)eResolveProxy(oldSpanInfo);
+			if (spanInfo != oldSpanInfo) {
+				InternalEObject newSpanInfo = (InternalEObject)spanInfo;
+				NotificationChain msgs = oldSpanInfo.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO, null, null);
+				if (newSpanInfo.eInternalContainer() == null) {
+					msgs = newSpanInfo.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO, oldSpanInfo, spanInfo));
+			}
+		}
+		return spanInfo;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y span info
+	 * @generated
+	 */
+	public YSpanInfo basicGetSpanInfo() {
+		return spanInfo;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSpanInfo
+	 *            the new span info
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSpanInfo(YSpanInfo newSpanInfo,
+			NotificationChain msgs) {
+		YSpanInfo oldSpanInfo = spanInfo;
+		spanInfo = newSpanInfo;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO, oldSpanInfo, newSpanInfo);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSpanInfo
+	 *            the new cached value of the '{@link #getSpanInfo()
+	 *            <em>Span Info</em>}' containment reference
+	 * @generated
+	 */
+	public void setSpanInfo(YSpanInfo newSpanInfo) {
+		if (newSpanInfo != spanInfo) {
+			NotificationChain msgs = null;
+			if (spanInfo != null)
+				msgs = ((InternalEObject)spanInfo).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO, null, msgs);
+			if (newSpanInfo != null)
+				msgs = ((InternalEObject)newSpanInfo).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO, null, msgs);
+			msgs = basicSetSpanInfo(newSpanInfo, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO, newSpanInfo, newSpanInfo));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO:
+				return basicSetSpanInfo(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__TARGET:
+				if (resolve) return getTarget();
+				return basicGetTarget();
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return getAlignment();
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO:
+				if (resolve) return getSpanInfo();
+				return basicGetSpanInfo();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment((YAlignment)newValue);
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO:
+				setSpanInfo((YSpanInfo)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment(ALIGNMENT_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO:
+				setSpanInfo((YSpanInfo)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__TARGET:
+				return target != null;
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return alignment != ALIGNMENT_EDEFAULT;
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE__SPAN_INFO:
+				return spanInfo != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (alignment: ");
+		result.append(alignment);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Creates and attaches an instance of {@link YSpanInfo}.
+	 *
+	 * @param col1
+	 *            From column
+	 * @param row1
+	 *            From row
+	 * @param col2
+	 *            To column
+	 * @param row2
+	 *            To row
+	 * @return the y span info
+	 */
+	public YSpanInfo addSpanInfo(int col1, int row1, int col2, int row2) {
+		YSpanInfo yInfo = ExtensionModelFactory.eINSTANCE.createYSpanInfo();
+		setSpanInfo(yInfo);
+
+		yInfo.setColumnFrom(col1);
+		yInfo.setRowFrom(row1);
+		yInfo.setColumnTo(col2);
+		yInfo.setRowTo(row2);
+
+		return yInfo;
+	}
+
+} // YUiGridLayoutCellStyleImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YGridLayoutImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YGridLayoutImpl.java
new file mode 100644
index 0000000..587d445
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YGridLayoutImpl.java
@@ -0,0 +1,475 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Grid Layout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutImpl#isSpacing <em>Spacing</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutImpl#isMargin <em>Margin</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutImpl#getCellStyles <em>Cell Styles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YGridLayoutImpl#getColumns <em>Columns</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YGridLayoutImpl extends YLayoutImpl implements YGridLayout {
+	/**
+	 * The default value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SPACING_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean spacing = SPACING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARGIN_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean margin = MARGIN_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCellStyles() <em>Cell Styles</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCellStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YGridLayoutCellStyle> cellStyles;
+
+	/**
+	 * The default value of the '{@link #getColumns() <em>Columns</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getColumns()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int COLUMNS_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getColumns() <em>Columns</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getColumns()
+	 * @generated
+	 * @ordered
+	 */
+	protected int columns = COLUMNS_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YGridLayoutImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YGRID_LAYOUT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCellStyles()
+	 *         <em>Cell Styles</em>}' containment reference list
+	 * @generated
+	 */
+	public EList<YGridLayoutCellStyle> getCellStyles() {
+		if (cellStyles == null) {
+			cellStyles = new EObjectContainmentEList.Resolving<YGridLayoutCellStyle>(YGridLayoutCellStyle.class, this, ExtensionModelPackage.YGRID_LAYOUT__CELL_STYLES);
+		}
+		return cellStyles;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isSpacing() <em>Spacing</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isSpacing() {
+		return spacing;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSpacing
+	 *            the new cached value of the '{@link #isSpacing()
+	 *            <em>Spacing</em>}' attribute
+	 * @generated
+	 */
+	public void setSpacing(boolean newSpacing) {
+		boolean oldSpacing = spacing;
+		spacing = newSpacing;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YGRID_LAYOUT__SPACING, oldSpacing, spacing));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isMargin() <em>Margin</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isMargin() {
+		return margin;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMargin
+	 *            the new cached value of the '{@link #isMargin()
+	 *            <em>Margin</em>}' attribute
+	 * @generated
+	 */
+	public void setMargin(boolean newMargin) {
+		boolean oldMargin = margin;
+		margin = newMargin;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YGRID_LAYOUT__MARGIN, oldMargin, margin));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getColumns() <em>Columns</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public int getColumns() {
+		return columns;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newColumns
+	 *            the new cached value of the '{@link #getColumns()
+	 *            <em>Columns</em>}' attribute
+	 * @generated
+	 */
+	public void setColumns(int newColumns) {
+		int oldColumns = columns;
+		columns = newColumns;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YGRID_LAYOUT__COLUMNS, oldColumns, columns));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT__CELL_STYLES:
+				return ((InternalEList<?>)getCellStyles()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT__SPACING:
+				return isSpacing();
+			case ExtensionModelPackage.YGRID_LAYOUT__MARGIN:
+				return isMargin();
+			case ExtensionModelPackage.YGRID_LAYOUT__CELL_STYLES:
+				return getCellStyles();
+			case ExtensionModelPackage.YGRID_LAYOUT__COLUMNS:
+				return getColumns();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT__SPACING:
+				setSpacing((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT__MARGIN:
+				setMargin((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				getCellStyles().addAll((Collection<? extends YGridLayoutCellStyle>)newValue);
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT__COLUMNS:
+				setColumns((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT__SPACING:
+				setSpacing(SPACING_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT__MARGIN:
+				setMargin(MARGIN_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				return;
+			case ExtensionModelPackage.YGRID_LAYOUT__COLUMNS:
+				setColumns(COLUMNS_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YGRID_LAYOUT__SPACING:
+				return spacing != SPACING_EDEFAULT;
+			case ExtensionModelPackage.YGRID_LAYOUT__MARGIN:
+				return margin != MARGIN_EDEFAULT;
+			case ExtensionModelPackage.YGRID_LAYOUT__CELL_STYLES:
+				return cellStyles != null && !cellStyles.isEmpty();
+			case ExtensionModelPackage.YGRID_LAYOUT__COLUMNS:
+				return columns != COLUMNS_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YGRID_LAYOUT__SPACING: return CoreModelPackage.YSPACINGABLE__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YGRID_LAYOUT__MARGIN: return CoreModelPackage.YMARGINABLE__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSPACINGABLE__SPACING: return ExtensionModelPackage.YGRID_LAYOUT__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMARGINABLE__MARGIN: return ExtensionModelPackage.YGRID_LAYOUT__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (spacing: ");
+		result.append(spacing);
+		result.append(", margin: ");
+		result.append(margin);
+		result.append(", columns: ");
+		result.append(columns);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Creates an instance of {@link YGridLayoutCellStyle} and adds it to the
+	 * layout.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the y grid layout cell style
+	 */
+	public YGridLayoutCellStyle addGridLayoutCellStyle(YEmbeddable element) {
+		YGridLayoutCellStyle yStyle = ExtensionModelFactory.eINSTANCE
+				.createYGridLayoutCellStyle();
+		yStyle.setTarget(element);
+		getCellStyles().add(yStyle);
+		return yStyle;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer#applyAlignment(org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable, org.eclipse.osbp.ecview.core.common.model.core.YAlignment)
+	 */
+	public void applyAlignment(YEmbeddable child, YAlignment alignment) {
+		getCellStyle(child).setAlignment(alignment);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout#getCellStyle(org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable)
+	 */
+	public YGridLayoutCellStyle getCellStyle(YEmbeddable element) {
+		for (YGridLayoutCellStyle style : getCellStyles()) {
+			if (element == style.getTarget()) {
+				return style;
+			}
+		}
+		return addGridLayoutCellStyle(element);
+	}
+
+} // YUiGridLayoutImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YHorizontalLayoutCellStyleImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YHorizontalLayoutCellStyleImpl.java
new file mode 100644
index 0000000..4775b93
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YHorizontalLayoutCellStyleImpl.java
@@ -0,0 +1,262 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YUi Horizontal Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutCellStyleImpl#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutCellStyleImpl#getAlignment <em>Alignment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YHorizontalLayoutCellStyleImpl extends MinimalEObjectImpl.Container implements YHorizontalLayoutCellStyle {
+	/**
+	 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTarget()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable target;
+
+	/**
+	 * The default value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YAlignment ALIGNMENT_EDEFAULT = YAlignment.UNDEFINED;
+
+	/**
+	 * The cached value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected YAlignment alignment = ALIGNMENT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YHorizontalLayoutCellStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YHORIZONTAL_LAYOUT_CELL_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTarget() <em>Target</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YEmbeddable getTarget() {
+		if (target != null && target.eIsProxy()) {
+			InternalEObject oldTarget = (InternalEObject)target;
+			target = (YEmbeddable)eResolveProxy(oldTarget);
+			if (target != oldTarget) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+			}
+		}
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetTarget() {
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTarget
+	 *            the new cached value of the '{@link #getTarget()
+	 *            <em>Target</em>}' reference
+	 * @generated
+	 */
+	public void setTarget(YEmbeddable newTarget) {
+		YEmbeddable oldTarget = target;
+		target = newTarget;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getAlignment()
+	 *         <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public YAlignment getAlignment() {
+		return alignment;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newAlignment
+	 *            the new cached value of the '{@link #getAlignment()
+	 *            <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public void setAlignment(YAlignment newAlignment) {
+		YAlignment oldAlignment = alignment;
+		alignment = newAlignment == null ? ALIGNMENT_EDEFAULT : newAlignment;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT, oldAlignment, alignment));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET:
+				if (resolve) return getTarget();
+				return basicGetTarget();
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return getAlignment();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment((YAlignment)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment(ALIGNMENT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__TARGET:
+				return target != null;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return alignment != ALIGNMENT_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (alignment: ");
+		result.append(alignment);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YUiHorizontalLayoutCellStyleImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YHorizontalLayoutImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YHorizontalLayoutImpl.java
new file mode 100644
index 0000000..d75f2bb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YHorizontalLayoutImpl.java
@@ -0,0 +1,348 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+
+
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Horizontal Layout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutImpl#isSpacing <em>Spacing</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutImpl#isMargin <em>Margin</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YHorizontalLayoutImpl#getCellStyles <em>Cell Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YHorizontalLayoutImpl extends YLayoutImpl implements
+		YHorizontalLayout {
+	/**
+	 * The default value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SPACING_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean spacing = SPACING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARGIN_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean margin = MARGIN_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCellStyles() <em>Cell Styles</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCellStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YHorizontalLayoutCellStyle> cellStyles;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YHorizontalLayoutImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YHORIZONTAL_LAYOUT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSpacing() {
+		return spacing;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSpacing(boolean newSpacing) {
+		boolean oldSpacing = spacing;
+		spacing = newSpacing;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YHORIZONTAL_LAYOUT__SPACING, oldSpacing, spacing));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMargin() {
+		return margin;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMargin(boolean newMargin) {
+		boolean oldMargin = margin;
+		margin = newMargin;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YHORIZONTAL_LAYOUT__MARGIN, oldMargin, margin));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YHorizontalLayoutCellStyle> getCellStyles() {
+		if (cellStyles == null) {
+			cellStyles = new EObjectContainmentEList.Resolving<YHorizontalLayoutCellStyle>(YHorizontalLayoutCellStyle.class, this, ExtensionModelPackage.YHORIZONTAL_LAYOUT__CELL_STYLES);
+		}
+		return cellStyles;
+	}
+
+	public YHorizontalLayoutCellStyle getCellStyle(YEmbeddable element) {
+		for (YHorizontalLayoutCellStyle style : getCellStyles()) {
+			if (element == style.getTarget()) {
+				return style;
+			}
+		}
+		return addCellStyle(element);
+	}
+
+	public void applyAlignment(YEmbeddable child, YAlignment alignment) {
+		getCellStyle(child).setAlignment(alignment);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__CELL_STYLES:
+				return ((InternalEList<?>)getCellStyles()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__SPACING:
+				return isSpacing();
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__MARGIN:
+				return isMargin();
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__CELL_STYLES:
+				return getCellStyles();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__SPACING:
+				setSpacing((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__MARGIN:
+				setMargin((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				getCellStyles().addAll((Collection<? extends YHorizontalLayoutCellStyle>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__SPACING:
+				setSpacing(SPACING_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__MARGIN:
+				setMargin(MARGIN_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__SPACING:
+				return spacing != SPACING_EDEFAULT;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__MARGIN:
+				return margin != MARGIN_EDEFAULT;
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT__CELL_STYLES:
+				return cellStyles != null && !cellStyles.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YHORIZONTAL_LAYOUT__SPACING: return CoreModelPackage.YSPACINGABLE__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YHORIZONTAL_LAYOUT__MARGIN: return CoreModelPackage.YMARGINABLE__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSPACINGABLE__SPACING: return ExtensionModelPackage.YHORIZONTAL_LAYOUT__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMARGINABLE__MARGIN: return ExtensionModelPackage.YHORIZONTAL_LAYOUT__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (spacing: ");
+		result.append(spacing);
+		result.append(", margin: ");
+		result.append(margin);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public YHorizontalLayoutCellStyle addCellStyle(YEmbeddable element) {
+		YHorizontalLayoutCellStyle yStyle = ExtensionModelFactory.eINSTANCE.createYHorizontalLayoutCellStyle();
+		yStyle.setTarget(element);
+		getCellStyles().add(yStyle);
+		return yStyle;
+	}
+	
+	
+} // YUiHorizontalLayoutImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YImageImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YImageImpl.java
new file mode 100644
index 0000000..c9e5547
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YImageImpl.java
@@ -0,0 +1,468 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YImage;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YImage</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YImageImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YImageImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YImageImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YImageImpl extends YFieldImpl implements YImage {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YImageImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YIMAGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YIMAGE__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YIMAGE__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YIMAGE__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YIMAGE__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YIMAGE__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YIMAGE__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YIMAGE__VALUE:
+				setValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YIMAGE__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YIMAGE__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YIMAGE__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YIMAGE__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YIMAGE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YImageImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YInputImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YInputImpl.java
new file mode 100644
index 0000000..59e523a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YInputImpl.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YInput;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YUi Input</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class YInputImpl extends YFieldImpl implements YInput {
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YInputImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YINPUT;
+	}
+
+} //YUiInputImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YLabelImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YLabelImpl.java
new file mode 100644
index 0000000..43b9868
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YLabelImpl.java
@@ -0,0 +1,538 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YLabel;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Label</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YLabelImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YLabelImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YLabelImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YLabelImpl extends YFieldImpl implements YLabel {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YLabelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YLABEL;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YLABEL__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLABEL__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLABEL__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YLABEL__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YLABEL__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YLABEL__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YLABEL__VALUE:
+				setValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YLABEL__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YLABEL__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YLABEL__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YLABEL__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YLABEL__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YUiLabelImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YListImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YListImpl.java
new file mode 100644
index 0000000..077f571
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YListImpl.java
@@ -0,0 +1,1500 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi List</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#isUseBeanService <em>Use Bean Service</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getCaptionProperty <em>Caption Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getImageProperty <em>Image Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getDescriptionProperty <em>Description Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YListImpl#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YListImpl extends YInputImpl implements YList {
+	/**
+	 * The cached value of the '{@link #getCollectionBindingEndpoint() <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableCollectionEndpoint collectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getSelectionBindingEndpoint() <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableSelectionEndpoint selectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelectionBindingEndpoint() <em>Multi Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMultiSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableMultiSelectionEndpoint multiSelectionBindingEndpoint;
+
+	/**
+	 * The default value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USE_BEAN_SERVICE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean useBeanService = USE_BEAN_SERVICE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YListDataType datatype;
+
+	/**
+	 * The default value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSelectionType SELECTION_TYPE_EDEFAULT = YSelectionType.SINGLE;
+
+	/**
+	 * The cached value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSelectionType selectionType = SELECTION_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object SELECTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object selection = SELECTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelection() <em>Multi Selection</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMultiSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> multiSelection;
+
+	/**
+	 * The cached value of the '{@link #getCollection() <em>Collection</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCollection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> collection;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCaptionProperty() <em>Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCaptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CAPTION_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCaptionProperty() <em>Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCaptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String captionProperty = CAPTION_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getImageProperty() <em>Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImageProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IMAGE_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getImageProperty() <em>Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImageProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String imageProperty = IMAGE_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescriptionProperty() <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescriptionProperty() <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String descriptionProperty = DESCRIPTION_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YListImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YLIST;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollectionBindingEndpoint()
+	 *         <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint getCollectionBindingEndpoint() {
+		if (collectionBindingEndpoint != null && collectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldCollectionBindingEndpoint = (InternalEObject)collectionBindingEndpoint;
+			collectionBindingEndpoint = (YEmbeddableCollectionEndpoint)eResolveProxy(oldCollectionBindingEndpoint);
+			if (collectionBindingEndpoint != oldCollectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, collectionBindingEndpoint));
+			}
+		}
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint basicGetCollectionBindingEndpoint() {
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new collection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableCollectionEndpoint oldCollectionBindingEndpoint = collectionBindingEndpoint;
+		collectionBindingEndpoint = newCollectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, newCollectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getCollectionBindingEndpoint()
+	 *            <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setCollectionBindingEndpoint(
+			YEmbeddableCollectionEndpoint newCollectionBindingEndpoint) {
+		if (newCollectionBindingEndpoint != collectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (collectionBindingEndpoint != null)
+				msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			if (newCollectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newCollectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			msgs = basicSetCollectionBindingEndpoint(newCollectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT, newCollectionBindingEndpoint, newCollectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionBindingEndpoint()
+	 *         <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint getSelectionBindingEndpoint() {
+		if (selectionBindingEndpoint != null && selectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldSelectionBindingEndpoint = (InternalEObject)selectionBindingEndpoint;
+			selectionBindingEndpoint = (YEmbeddableSelectionEndpoint)eResolveProxy(oldSelectionBindingEndpoint);
+			if (selectionBindingEndpoint != oldSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, selectionBindingEndpoint));
+			}
+		}
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint basicGetSelectionBindingEndpoint() {
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableSelectionEndpoint oldSelectionBindingEndpoint = selectionBindingEndpoint;
+		selectionBindingEndpoint = newSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, newSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getSelectionBindingEndpoint()
+	 *            <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint) {
+		if (newSelectionBindingEndpoint != selectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (selectionBindingEndpoint != null)
+				msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			if (newSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			msgs = basicSetSelectionBindingEndpoint(newSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT, newSelectionBindingEndpoint, newSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '
+	 *         {@link #getMultiSelectionBindingEndpoint()
+	 *         <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint getMultiSelectionBindingEndpoint() {
+		if (multiSelectionBindingEndpoint != null && multiSelectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldMultiSelectionBindingEndpoint = (InternalEObject)multiSelectionBindingEndpoint;
+			multiSelectionBindingEndpoint = (YEmbeddableMultiSelectionEndpoint)eResolveProxy(oldMultiSelectionBindingEndpoint);
+			if (multiSelectionBindingEndpoint != oldMultiSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, multiSelectionBindingEndpoint));
+			}
+		}
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint basicGetMultiSelectionBindingEndpoint() {
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new multi selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableMultiSelectionEndpoint oldMultiSelectionBindingEndpoint = multiSelectionBindingEndpoint;
+		multiSelectionBindingEndpoint = newMultiSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getMultiSelectionBindingEndpoint()
+	 *            <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint) {
+		if (newMultiSelectionBindingEndpoint != multiSelectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (multiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			if (newMultiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newMultiSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			msgs = basicSetMultiSelectionBindingEndpoint(newMultiSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT, newMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isUseBeanService()
+	 *         <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public boolean isUseBeanService() {
+		return useBeanService;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newUseBeanService
+	 *            the new cached value of the '{@link #isUseBeanService()
+	 *            <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public void setUseBeanService(boolean newUseBeanService) {
+		boolean oldUseBeanService = useBeanService;
+		useBeanService = newUseBeanService;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__USE_BEAN_SERVICE, oldUseBeanService, useBeanService));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YLIST__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YListDataType getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YListDataType)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YLIST__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y list data type
+	 * @generated
+	 */
+	public YListDataType basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YListDataType newDatatype) {
+		YListDataType oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionType()
+	 *         <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public YSelectionType getSelectionType() {
+		return selectionType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionType
+	 *            the new cached value of the '{@link #getSelectionType()
+	 *            <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public void setSelectionType(YSelectionType newSelectionType) {
+		YSelectionType oldSelectionType = selectionType;
+		selectionType = newSelectionType == null ? SELECTION_TYPE_EDEFAULT : newSelectionType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__SELECTION_TYPE, oldSelectionType, selectionType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelection()
+	 *         <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public Object getSelection() {
+		return selection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelection
+	 *            the new cached value of the '{@link #getSelection()
+	 *            <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public void setSelection(Object newSelection) {
+		Object oldSelection = selection;
+		selection = newSelection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__SELECTION, oldSelection, selection));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMultiSelection()
+	 *         <em>Multi Selection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getMultiSelection() {
+		if (multiSelection == null) {
+			multiSelection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YLIST__MULTI_SELECTION);
+		}
+		return multiSelection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollection()
+	 *         <em>Collection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getCollection() {
+		if (collection == null) {
+			collection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YLIST__COLLECTION);
+		}
+		return collection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCaptionProperty()
+	 *         <em>Caption Property</em>}' attribute
+	 * @generated
+	 */
+	public String getCaptionProperty() {
+		return captionProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCaptionProperty
+	 *            the new cached value of the '{@link #getCaptionProperty()
+	 *            <em>Caption Property</em>}' attribute
+	 * @generated
+	 */
+	public void setCaptionProperty(String newCaptionProperty) {
+		String oldCaptionProperty = captionProperty;
+		captionProperty = newCaptionProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__CAPTION_PROPERTY, oldCaptionProperty, captionProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getImageProperty()
+	 *         <em>Image Property</em>}' attribute
+	 * @generated
+	 */
+	public String getImageProperty() {
+		return imageProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newImageProperty
+	 *            the new cached value of the '{@link #getImageProperty()
+	 *            <em>Image Property</em>}' attribute
+	 * @generated
+	 */
+	public void setImageProperty(String newImageProperty) {
+		String oldImageProperty = imageProperty;
+		imageProperty = newImageProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__IMAGE_PROPERTY, oldImageProperty, imageProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDescriptionProperty()
+	 *         <em>Description Property</em>}' attribute
+	 * @generated
+	 */
+	public String getDescriptionProperty() {
+		return descriptionProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDescriptionProperty
+	 *            the new cached value of the '{@link #getDescriptionProperty()
+	 *            <em>Description Property</em>}' attribute
+	 * @generated
+	 */
+	public void setDescriptionProperty(String newDescriptionProperty) {
+		String oldDescriptionProperty = descriptionProperty;
+		descriptionProperty = newDescriptionProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__DESCRIPTION_PROPERTY, oldDescriptionProperty, descriptionProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDescription()
+	 *         <em>Description</em>}' attribute
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDescription
+	 *            the new cached value of the '{@link #getDescription()
+	 *            <em>Description</em>}' attribute
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YLIST__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of selection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpoint() {
+		YEmbeddableSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpoint() {
+		YEmbeddableMultiSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableMultiSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * Creates a new instance of collection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpoint() {
+		YEmbeddableCollectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableCollectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT:
+				if (collectionBindingEndpoint != null)
+					msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+				return basicSetCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT:
+				if (selectionBindingEndpoint != null)
+					msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+				return basicSetSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (multiSelectionBindingEndpoint != null)
+					msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+				return basicSetMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT:
+				return basicSetCollectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT:
+				return basicSetSelectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				return basicSetMultiSelectionBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT:
+				if (resolve) return getCollectionBindingEndpoint();
+				return basicGetCollectionBindingEndpoint();
+			case ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getSelectionBindingEndpoint();
+				return basicGetSelectionBindingEndpoint();
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getMultiSelectionBindingEndpoint();
+				return basicGetMultiSelectionBindingEndpoint();
+			case ExtensionModelPackage.YLIST__USE_BEAN_SERVICE:
+				return isUseBeanService();
+			case ExtensionModelPackage.YLIST__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YLIST__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YLIST__SELECTION_TYPE:
+				return getSelectionType();
+			case ExtensionModelPackage.YLIST__SELECTION:
+				return getSelection();
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION:
+				return getMultiSelection();
+			case ExtensionModelPackage.YLIST__COLLECTION:
+				return getCollection();
+			case ExtensionModelPackage.YLIST__TYPE:
+				return getType();
+			case ExtensionModelPackage.YLIST__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YLIST__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case ExtensionModelPackage.YLIST__CAPTION_PROPERTY:
+				return getCaptionProperty();
+			case ExtensionModelPackage.YLIST__IMAGE_PROPERTY:
+				return getImageProperty();
+			case ExtensionModelPackage.YLIST__DESCRIPTION_PROPERTY:
+				return getDescriptionProperty();
+			case ExtensionModelPackage.YLIST__DESCRIPTION:
+				return getDescription();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__USE_BEAN_SERVICE:
+				setUseBeanService((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__DATATYPE:
+				setDatatype((YListDataType)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__SELECTION_TYPE:
+				setSelectionType((YSelectionType)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__SELECTION:
+				setSelection(newValue);
+				return;
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION:
+				getMultiSelection().clear();
+				getMultiSelection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__COLLECTION:
+				getCollection().clear();
+				getCollection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__CAPTION_PROPERTY:
+				setCaptionProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__IMAGE_PROPERTY:
+				setImageProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__DESCRIPTION_PROPERTY:
+				setDescriptionProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YLIST__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YLIST__USE_BEAN_SERVICE:
+				setUseBeanService(USE_BEAN_SERVICE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YLIST__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YLIST__DATATYPE:
+				setDatatype((YListDataType)null);
+				return;
+			case ExtensionModelPackage.YLIST__SELECTION_TYPE:
+				setSelectionType(SELECTION_TYPE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YLIST__SELECTION:
+				setSelection(SELECTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION:
+				getMultiSelection().clear();
+				return;
+			case ExtensionModelPackage.YLIST__COLLECTION:
+				getCollection().clear();
+				return;
+			case ExtensionModelPackage.YLIST__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YLIST__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YLIST__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YLIST__CAPTION_PROPERTY:
+				setCaptionProperty(CAPTION_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YLIST__IMAGE_PROPERTY:
+				setImageProperty(IMAGE_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YLIST__DESCRIPTION_PROPERTY:
+				setDescriptionProperty(DESCRIPTION_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YLIST__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT:
+				return collectionBindingEndpoint != null;
+			case ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT:
+				return selectionBindingEndpoint != null;
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT:
+				return multiSelectionBindingEndpoint != null;
+			case ExtensionModelPackage.YLIST__USE_BEAN_SERVICE:
+				return useBeanService != USE_BEAN_SERVICE_EDEFAULT;
+			case ExtensionModelPackage.YLIST__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YLIST__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YLIST__SELECTION_TYPE:
+				return selectionType != SELECTION_TYPE_EDEFAULT;
+			case ExtensionModelPackage.YLIST__SELECTION:
+				return SELECTION_EDEFAULT == null ? selection != null : !SELECTION_EDEFAULT.equals(selection);
+			case ExtensionModelPackage.YLIST__MULTI_SELECTION:
+				return multiSelection != null && !multiSelection.isEmpty();
+			case ExtensionModelPackage.YLIST__COLLECTION:
+				return collection != null && !collection.isEmpty();
+			case ExtensionModelPackage.YLIST__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YLIST__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YLIST__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case ExtensionModelPackage.YLIST__CAPTION_PROPERTY:
+				return CAPTION_PROPERTY_EDEFAULT == null ? captionProperty != null : !CAPTION_PROPERTY_EDEFAULT.equals(captionProperty);
+			case ExtensionModelPackage.YLIST__IMAGE_PROPERTY:
+				return IMAGE_PROPERTY_EDEFAULT == null ? imageProperty != null : !IMAGE_PROPERTY_EDEFAULT.equals(imageProperty);
+			case ExtensionModelPackage.YLIST__DESCRIPTION_PROPERTY:
+				return DESCRIPTION_PROPERTY_EDEFAULT == null ? descriptionProperty != null : !DESCRIPTION_PROPERTY_EDEFAULT.equals(descriptionProperty);
+			case ExtensionModelPackage.YLIST__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT: return CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YLIST__USE_BEAN_SERVICE: return ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YLIST__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YLIST__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YLIST__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (baseFeatureID) {
+				case ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE: return ExtensionModelPackage.YLIST__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (useBeanService: ");
+		result.append(useBeanService);
+		result.append(", selectionType: ");
+		result.append(selectionType);
+		result.append(", selection: ");
+		result.append(selection);
+		result.append(", multiSelection: ");
+		result.append(multiSelection);
+		result.append(", collection: ");
+		result.append(collection);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", captionProperty: ");
+		result.append(captionProperty);
+		result.append(", imageProperty: ");
+		result.append(imageProperty);
+		result.append(", descriptionProperty: ");
+		result.append(descriptionProperty);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YUiListImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YMasterDetailImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YMasterDetailImpl.java
new file mode 100644
index 0000000..b51139c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YMasterDetailImpl.java
@@ -0,0 +1,1125 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YMasterDetailDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YMaster Detail</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getMasterElement <em>Master Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getDetailElement <em>Detail Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YMasterDetailImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YMasterDetailImpl extends YInputImpl implements YMasterDetail {
+	/**
+	 * The cached value of the '{@link #getCollectionBindingEndpoint() <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableCollectionEndpoint collectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getSelectionBindingEndpoint() <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableSelectionEndpoint selectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YMasterDetailDatatype datatype;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object SELECTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object selection = SELECTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCollection() <em>Collection</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> collection;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMasterElement() <em>Master Element</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMasterElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable masterElement;
+
+	/**
+	 * The cached value of the '{@link #getDetailElement() <em>Detail Element</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDetailElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable detailElement;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YMasterDetailImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YMASTER_DETAIL;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollectionBindingEndpoint()
+	 *         <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint getCollectionBindingEndpoint() {
+		if (collectionBindingEndpoint != null && collectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldCollectionBindingEndpoint = (InternalEObject)collectionBindingEndpoint;
+			collectionBindingEndpoint = (YEmbeddableCollectionEndpoint)eResolveProxy(oldCollectionBindingEndpoint);
+			if (collectionBindingEndpoint != oldCollectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, collectionBindingEndpoint));
+			}
+		}
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint basicGetCollectionBindingEndpoint() {
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new collection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableCollectionEndpoint oldCollectionBindingEndpoint = collectionBindingEndpoint;
+		collectionBindingEndpoint = newCollectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, newCollectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getCollectionBindingEndpoint()
+	 *            <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint) {
+		if (newCollectionBindingEndpoint != collectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (collectionBindingEndpoint != null)
+				msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			if (newCollectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newCollectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			msgs = basicSetCollectionBindingEndpoint(newCollectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT, newCollectionBindingEndpoint, newCollectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionBindingEndpoint()
+	 *         <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint getSelectionBindingEndpoint() {
+		if (selectionBindingEndpoint != null && selectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldSelectionBindingEndpoint = (InternalEObject)selectionBindingEndpoint;
+			selectionBindingEndpoint = (YEmbeddableSelectionEndpoint)eResolveProxy(oldSelectionBindingEndpoint);
+			if (selectionBindingEndpoint != oldSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, selectionBindingEndpoint));
+			}
+		}
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint basicGetSelectionBindingEndpoint() {
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSelectionBindingEndpoint(YEmbeddableSelectionEndpoint newSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableSelectionEndpoint oldSelectionBindingEndpoint = selectionBindingEndpoint;
+		selectionBindingEndpoint = newSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, newSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getSelectionBindingEndpoint()
+	 *            <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setSelectionBindingEndpoint(YEmbeddableSelectionEndpoint newSelectionBindingEndpoint) {
+		if (newSelectionBindingEndpoint != selectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (selectionBindingEndpoint != null)
+				msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			if (newSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			msgs = basicSetSelectionBindingEndpoint(newSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT, newSelectionBindingEndpoint, newSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YMasterDetailDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YMasterDetailDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YMASTER_DETAIL__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y master detail datatype
+	 * @generated
+	 */
+	public YMasterDetailDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YMasterDetailDatatype newDatatype) {
+		YMasterDetailDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YMASTER_DETAIL__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelection()
+	 *         <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public Object getSelection() {
+		return selection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelection
+	 *            the new cached value of the '{@link #getSelection()
+	 *            <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public void setSelection(Object newSelection) {
+		Object oldSelection = selection;
+		selection = newSelection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__SELECTION, oldSelection, selection));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollection()
+	 *         <em>Collection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getCollection() {
+		if (collection == null) {
+			collection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YMASTER_DETAIL__COLLECTION);
+		}
+		return collection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMasterElement()
+	 *         <em>Master Element</em>}' containment reference
+	 * @generated
+	 */
+	public YEmbeddable getMasterElement() {
+		if (masterElement != null && masterElement.eIsProxy()) {
+			InternalEObject oldMasterElement = (InternalEObject)masterElement;
+			masterElement = (YEmbeddable)eResolveProxy(oldMasterElement);
+			if (masterElement != oldMasterElement) {
+				InternalEObject newMasterElement = (InternalEObject)masterElement;
+				NotificationChain msgs = oldMasterElement.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT, null, null);
+				if (newMasterElement.eInternalContainer() == null) {
+					msgs = newMasterElement.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT, oldMasterElement, masterElement));
+			}
+		}
+		return masterElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetMasterElement() {
+		return masterElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMasterElement
+	 *            the new master element
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetMasterElement(YEmbeddable newMasterElement, NotificationChain msgs) {
+		YEmbeddable oldMasterElement = masterElement;
+		masterElement = newMasterElement;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT, oldMasterElement, newMasterElement);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMasterElement
+	 *            the new cached value of the '{@link #getMasterElement()
+	 *            <em>Master Element</em>}' containment reference
+	 * @generated
+	 */
+	public void setMasterElement(YEmbeddable newMasterElement) {
+		if (newMasterElement != masterElement) {
+			NotificationChain msgs = null;
+			if (masterElement != null)
+				msgs = ((InternalEObject)masterElement).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT, null, msgs);
+			if (newMasterElement != null)
+				msgs = ((InternalEObject)newMasterElement).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT, null, msgs);
+			msgs = basicSetMasterElement(newMasterElement, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT, newMasterElement, newMasterElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDetailElement()
+	 *         <em>Detail Element</em>}' containment reference
+	 * @generated
+	 */
+	public YEmbeddable getDetailElement() {
+		if (detailElement != null && detailElement.eIsProxy()) {
+			InternalEObject oldDetailElement = (InternalEObject)detailElement;
+			detailElement = (YEmbeddable)eResolveProxy(oldDetailElement);
+			if (detailElement != oldDetailElement) {
+				InternalEObject newDetailElement = (InternalEObject)detailElement;
+				NotificationChain msgs = oldDetailElement.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT, null, null);
+				if (newDetailElement.eInternalContainer() == null) {
+					msgs = newDetailElement.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT, oldDetailElement, detailElement));
+			}
+		}
+		return detailElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetDetailElement() {
+		return detailElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDetailElement
+	 *            the new detail element
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetDetailElement(YEmbeddable newDetailElement, NotificationChain msgs) {
+		YEmbeddable oldDetailElement = detailElement;
+		detailElement = newDetailElement;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT, oldDetailElement, newDetailElement);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDetailElement
+	 *            the new cached value of the '{@link #getDetailElement()
+	 *            <em>Detail Element</em>}' containment reference
+	 * @generated
+	 */
+	public void setDetailElement(YEmbeddable newDetailElement) {
+		if (newDetailElement != detailElement) {
+			NotificationChain msgs = null;
+			if (detailElement != null)
+				msgs = ((InternalEObject)detailElement).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT, null, msgs);
+			if (newDetailElement != null)
+				msgs = ((InternalEObject)newDetailElement).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT, null, msgs);
+			msgs = basicSetDetailElement(newDetailElement, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT, newDetailElement, newDetailElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YMASTER_DETAIL__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+	
+	/**
+	 * Creates a new instance of selection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpoint() {
+		YEmbeddableSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+	
+	/**
+	 * Creates a new instance of collection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpoint() {
+		YEmbeddableCollectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableCollectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT:
+				if (collectionBindingEndpoint != null)
+					msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+				return basicSetCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT:
+				if (selectionBindingEndpoint != null)
+					msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+				return basicSetSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT:
+				return basicSetCollectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT:
+				return basicSetSelectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT:
+				return basicSetMasterElement(null, msgs);
+			case ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT:
+				return basicSetDetailElement(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT:
+				if (resolve) return getCollectionBindingEndpoint();
+				return basicGetCollectionBindingEndpoint();
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getSelectionBindingEndpoint();
+				return basicGetSelectionBindingEndpoint();
+			case ExtensionModelPackage.YMASTER_DETAIL__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YMASTER_DETAIL__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION:
+				return getSelection();
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION:
+				return getCollection();
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE:
+				return getType();
+			case ExtensionModelPackage.YMASTER_DETAIL__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT:
+				if (resolve) return getMasterElement();
+				return basicGetMasterElement();
+			case ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT:
+				if (resolve) return getDetailElement();
+				return basicGetDetailElement();
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__DATATYPE:
+				setDatatype((YMasterDetailDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION:
+				setSelection(newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION:
+				getCollection().clear();
+				getCollection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT:
+				setMasterElement((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT:
+				setDetailElement((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__DATATYPE:
+				setDatatype((YMasterDetailDatatype)null);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION:
+				setSelection(SELECTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION:
+				getCollection().clear();
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT:
+				setMasterElement((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT:
+				setDetailElement((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT:
+				return collectionBindingEndpoint != null;
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT:
+				return selectionBindingEndpoint != null;
+			case ExtensionModelPackage.YMASTER_DETAIL__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YMASTER_DETAIL__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YMASTER_DETAIL__SELECTION:
+				return SELECTION_EDEFAULT == null ? selection != null : !SELECTION_EDEFAULT.equals(selection);
+			case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION:
+				return collection != null && !collection.isEmpty();
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YMASTER_DETAIL__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YMASTER_DETAIL__MASTER_ELEMENT:
+				return masterElement != null;
+			case ExtensionModelPackage.YMASTER_DETAIL__DETAIL_ELEMENT:
+				return detailElement != null;
+			case ExtensionModelPackage.YMASTER_DETAIL__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT: return CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YMASTER_DETAIL__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YMASTER_DETAIL__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (selection: ");
+		result.append(selection);
+		result.append(", collection: ");
+		result.append(collection);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} //YMasterDetailImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YNumericFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YNumericFieldImpl.java
new file mode 100644
index 0000000..32d0274
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YNumericFieldImpl.java
@@ -0,0 +1,632 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Numeric Field</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericFieldImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericFieldImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericFieldImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericFieldImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YNumericFieldImpl extends YInputImpl implements YNumericField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YNumericDatatype datatype;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final long VALUE_EDEFAULT = 0L;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected long value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YNumericFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YNUMERIC_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YNumericDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YNumericDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YNUMERIC_FIELD__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y numeric datatype
+	 * @generated
+	 */
+	public YNumericDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YNumericDatatype newDatatype) {
+		YNumericDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_FIELD__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YNUMERIC_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public long getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(long newValue) {
+		long oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YNUMERIC_FIELD__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YNUMERIC_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	public void eSetGen(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YNUMERIC_FIELD__DATATYPE:
+				setDatatype((YNumericDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YNUMERIC_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE:
+				setValue((Long)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated NOT
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT:
+			setValueBindingEndpoint((YEmbeddableValueEndpoint) newValue);
+			return;
+		case ExtensionModelPackage.YNUMERIC_FIELD__DATATYPE:
+			setDatatype((YNumericDatatype) newValue);
+			return;
+		case ExtensionModelPackage.YNUMERIC_FIELD__DATADESCRIPTION:
+			setDatadescription((YDatadescription) newValue);
+			return;
+		case ExtensionModelPackage.YNUMERIC_FIELD__VALUE:
+			setValue(((Number) newValue).longValue());
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YNUMERIC_FIELD__DATATYPE:
+				setDatatype((YNumericDatatype)null);
+				return;
+			case ExtensionModelPackage.YNUMERIC_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YNUMERIC_FIELD__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YNUMERIC_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YNUMERIC_FIELD__VALUE:
+				return value != VALUE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YNUMERIC_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YUiNumericFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YNumericSearchFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YNumericSearchFieldImpl.java
new file mode 100644
index 0000000..a3acdea
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YNumericSearchFieldImpl.java
@@ -0,0 +1,770 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YNumeric Search Field</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl#getWildcard <em>Wildcard</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YNumericSearchFieldImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YNumericSearchFieldImpl extends YInputImpl implements YNumericSearchField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getWildcard() <em>Wildcard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWildcard()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSearchWildcards WILDCARD_EDEFAULT = YSearchWildcards.GT;
+
+	/**
+	 * The cached value of the '{@link #getWildcard() <em>Wildcard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWildcard()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSearchWildcards wildcard = WILDCARD_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class type;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YNumericSearchFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YNUMERIC_SEARCH_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getWildcard() <em>Wildcard</em>}
+	 *         ' attribute
+	 * @generated
+	 */
+	public YSearchWildcards getWildcard() {
+		return wildcard;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newWildcard
+	 *            the new cached value of the '{@link #getWildcard()
+	 *            <em>Wildcard</em>}' attribute
+	 * @generated
+	 */
+	public void setWildcard(YSearchWildcards newWildcard) {
+		YSearchWildcards oldWildcard = wildcard;
+		wildcard = newWildcard == null ? WILDCARD_EDEFAULT : newWildcard;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__WILDCARD, oldWildcard, wildcard));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getPropertyPath()
+	 *         <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newPropertyPath
+	 *            the new cached value of the '{@link #getPropertyPath()
+	 *            <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class newType) {
+		Class oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE:
+				return getValue();
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__WILDCARD:
+				return getWildcard();
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__PROPERTY_PATH:
+				return getPropertyPath();
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE:
+				return getType();
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE:
+				setValue((String)newValue);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__WILDCARD:
+				setWildcard((YSearchWildcards)newValue);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE:
+				setType((Class)newValue);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__WILDCARD:
+				setWildcard(WILDCARD_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE:
+				setType((Class)null);
+				return;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__WILDCARD:
+				return wildcard != WILDCARD_EDEFAULT;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YNUMERIC_SEARCH_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(", wildcard: ");
+		result.append(wildcard);
+		result.append(", propertyPath: ");
+		result.append(propertyPath);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#createDatadescription(java.lang.String)
+	 */
+	protected YDatadescription createDatadescription(String label) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabel(label);
+		return dsc;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#createDatadescriptionForI18n(java.lang.String)
+	 */
+	protected YDatadescription createDatadescriptionForI18n(String i18nKey) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabelI18nKey(i18nKey);
+		return dsc;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} //YNumericSearchFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YOptionsGroupImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YOptionsGroupImpl.java
new file mode 100644
index 0000000..d05ebdc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YOptionsGroupImpl.java
@@ -0,0 +1,1502 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YOptions Group</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#isUseBeanService <em>Use Bean Service</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getCaptionProperty <em>Caption Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getImageProperty <em>Image Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getDescriptionProperty <em>Description Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YOptionsGroupImpl#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YOptionsGroupImpl extends YInputImpl implements YOptionsGroup {
+	/**
+	 * The cached value of the '{@link #getCollectionBindingEndpoint() <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableCollectionEndpoint collectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getSelectionBindingEndpoint() <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableSelectionEndpoint selectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelectionBindingEndpoint()
+	 * <em>Multi Selection Binding Endpoint</em>}' reference. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getMultiSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableMultiSelectionEndpoint multiSelectionBindingEndpoint;
+
+	/**
+	 * The default value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USE_BEAN_SERVICE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean useBeanService = USE_BEAN_SERVICE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YOptionsGroupDataType datatype;
+
+	/**
+	 * The default value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSelectionType SELECTION_TYPE_EDEFAULT = YSelectionType.SINGLE;
+
+	/**
+	 * The cached value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSelectionType selectionType = SELECTION_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object SELECTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object selection = SELECTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelection() <em>Multi Selection</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getMultiSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> multiSelection;
+
+	/**
+	 * The cached value of the '{@link #getCollection() <em>Collection</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCollection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> collection;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCaptionProperty() <em>Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCaptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CAPTION_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCaptionProperty() <em>Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCaptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String captionProperty = CAPTION_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getImageProperty() <em>Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImageProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IMAGE_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getImageProperty() <em>Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImageProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String imageProperty = IMAGE_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescriptionProperty() <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescriptionProperty() <em>Description Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String descriptionProperty = DESCRIPTION_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YOptionsGroupImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YOPTIONS_GROUP;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollectionBindingEndpoint()
+	 *         <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint getCollectionBindingEndpoint() {
+		if (collectionBindingEndpoint != null && collectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldCollectionBindingEndpoint = (InternalEObject)collectionBindingEndpoint;
+			collectionBindingEndpoint = (YEmbeddableCollectionEndpoint)eResolveProxy(oldCollectionBindingEndpoint);
+			if (collectionBindingEndpoint != oldCollectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, collectionBindingEndpoint));
+			}
+		}
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint basicGetCollectionBindingEndpoint() {
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new collection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableCollectionEndpoint oldCollectionBindingEndpoint = collectionBindingEndpoint;
+		collectionBindingEndpoint = newCollectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, newCollectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getCollectionBindingEndpoint()
+	 *            <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setCollectionBindingEndpoint(
+			YEmbeddableCollectionEndpoint newCollectionBindingEndpoint) {
+		if (newCollectionBindingEndpoint != collectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (collectionBindingEndpoint != null)
+				msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			if (newCollectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newCollectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			msgs = basicSetCollectionBindingEndpoint(newCollectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT, newCollectionBindingEndpoint, newCollectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionBindingEndpoint()
+	 *         <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint getSelectionBindingEndpoint() {
+		if (selectionBindingEndpoint != null && selectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldSelectionBindingEndpoint = (InternalEObject)selectionBindingEndpoint;
+			selectionBindingEndpoint = (YEmbeddableSelectionEndpoint)eResolveProxy(oldSelectionBindingEndpoint);
+			if (selectionBindingEndpoint != oldSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, selectionBindingEndpoint));
+			}
+		}
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint basicGetSelectionBindingEndpoint() {
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableSelectionEndpoint oldSelectionBindingEndpoint = selectionBindingEndpoint;
+		selectionBindingEndpoint = newSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, newSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getSelectionBindingEndpoint()
+	 *            <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint) {
+		if (newSelectionBindingEndpoint != selectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (selectionBindingEndpoint != null)
+				msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			if (newSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			msgs = basicSetSelectionBindingEndpoint(newSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT, newSelectionBindingEndpoint, newSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '
+	 *         {@link #getMultiSelectionBindingEndpoint()
+	 *         <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint getMultiSelectionBindingEndpoint() {
+		if (multiSelectionBindingEndpoint != null && multiSelectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldMultiSelectionBindingEndpoint = (InternalEObject)multiSelectionBindingEndpoint;
+			multiSelectionBindingEndpoint = (YEmbeddableMultiSelectionEndpoint)eResolveProxy(oldMultiSelectionBindingEndpoint);
+			if (multiSelectionBindingEndpoint != oldMultiSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, multiSelectionBindingEndpoint));
+			}
+		}
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint basicGetMultiSelectionBindingEndpoint() {
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new multi selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableMultiSelectionEndpoint oldMultiSelectionBindingEndpoint = multiSelectionBindingEndpoint;
+		multiSelectionBindingEndpoint = newMultiSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getMultiSelectionBindingEndpoint()
+	 *            <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setMultiSelectionBindingEndpoint(
+			YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint) {
+		if (newMultiSelectionBindingEndpoint != multiSelectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (multiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			if (newMultiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newMultiSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			msgs = basicSetMultiSelectionBindingEndpoint(newMultiSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT, newMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isUseBeanService()
+	 *         <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public boolean isUseBeanService() {
+		return useBeanService;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newUseBeanService
+	 *            the new cached value of the '{@link #isUseBeanService()
+	 *            <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public void setUseBeanService(boolean newUseBeanService) {
+		boolean oldUseBeanService = useBeanService;
+		useBeanService = newUseBeanService;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__USE_BEAN_SERVICE, oldUseBeanService, useBeanService));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YOPTIONS_GROUP__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YOptionsGroupDataType getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YOptionsGroupDataType)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YOPTIONS_GROUP__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y options group data type
+	 * @generated
+	 */
+	public YOptionsGroupDataType basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YOptionsGroupDataType newDatatype) {
+		YOptionsGroupDataType oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionType()
+	 *         <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public YSelectionType getSelectionType() {
+		return selectionType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionType
+	 *            the new cached value of the '{@link #getSelectionType()
+	 *            <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public void setSelectionType(YSelectionType newSelectionType) {
+		YSelectionType oldSelectionType = selectionType;
+		selectionType = newSelectionType == null ? SELECTION_TYPE_EDEFAULT : newSelectionType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_TYPE, oldSelectionType, selectionType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelection()
+	 *         <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public Object getSelection() {
+		return selection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelection
+	 *            the new cached value of the '{@link #getSelection()
+	 *            <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public void setSelection(Object newSelection) {
+		Object oldSelection = selection;
+		selection = newSelection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__SELECTION, oldSelection, selection));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMultiSelection()
+	 *         <em>Multi Selection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getMultiSelection() {
+		if (multiSelection == null) {
+			multiSelection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION);
+		}
+		return multiSelection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollection()
+	 *         <em>Collection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getCollection() {
+		if (collection == null) {
+			collection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION);
+		}
+		return collection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCaptionProperty()
+	 *         <em>Caption Property</em>}' attribute
+	 * @generated
+	 */
+	public String getCaptionProperty() {
+		return captionProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCaptionProperty
+	 *            the new cached value of the '{@link #getCaptionProperty()
+	 *            <em>Caption Property</em>}' attribute
+	 * @generated
+	 */
+	public void setCaptionProperty(String newCaptionProperty) {
+		String oldCaptionProperty = captionProperty;
+		captionProperty = newCaptionProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__CAPTION_PROPERTY, oldCaptionProperty, captionProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getImageProperty()
+	 *         <em>Image Property</em>}' attribute
+	 * @generated
+	 */
+	public String getImageProperty() {
+		return imageProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newImageProperty
+	 *            the new cached value of the '{@link #getImageProperty()
+	 *            <em>Image Property</em>}' attribute
+	 * @generated
+	 */
+	public void setImageProperty(String newImageProperty) {
+		String oldImageProperty = imageProperty;
+		imageProperty = newImageProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__IMAGE_PROPERTY, oldImageProperty, imageProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDescriptionProperty()
+	 *         <em>Description Property</em>}' attribute
+	 * @generated
+	 */
+	public String getDescriptionProperty() {
+		return descriptionProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDescriptionProperty
+	 *            the new cached value of the '{@link #getDescriptionProperty()
+	 *            <em>Description Property</em>}' attribute
+	 * @generated
+	 */
+	public void setDescriptionProperty(String newDescriptionProperty) {
+		String oldDescriptionProperty = descriptionProperty;
+		descriptionProperty = newDescriptionProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION_PROPERTY, oldDescriptionProperty, descriptionProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDescription()
+	 *         <em>Description</em>}' attribute
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDescription
+	 *            the new cached value of the '{@link #getDescription()
+	 *            <em>Description</em>}' attribute
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of selection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpoint() {
+		YEmbeddableSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpoint() {
+		YEmbeddableMultiSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableMultiSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * Creates a new instance of collection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpoint() {
+		YEmbeddableCollectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableCollectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				if (collectionBindingEndpoint != null)
+					msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+				return basicSetCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				if (selectionBindingEndpoint != null)
+					msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+				return basicSetSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (multiSelectionBindingEndpoint != null)
+					msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+				return basicSetMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				return basicSetCollectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				return basicSetSelectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				return basicSetMultiSelectionBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				if (resolve) return getCollectionBindingEndpoint();
+				return basicGetCollectionBindingEndpoint();
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getSelectionBindingEndpoint();
+				return basicGetSelectionBindingEndpoint();
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getMultiSelectionBindingEndpoint();
+				return basicGetMultiSelectionBindingEndpoint();
+			case ExtensionModelPackage.YOPTIONS_GROUP__USE_BEAN_SERVICE:
+				return isUseBeanService();
+			case ExtensionModelPackage.YOPTIONS_GROUP__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YOPTIONS_GROUP__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_TYPE:
+				return getSelectionType();
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION:
+				return getSelection();
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION:
+				return getMultiSelection();
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION:
+				return getCollection();
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE:
+				return getType();
+			case ExtensionModelPackage.YOPTIONS_GROUP__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case ExtensionModelPackage.YOPTIONS_GROUP__CAPTION_PROPERTY:
+				return getCaptionProperty();
+			case ExtensionModelPackage.YOPTIONS_GROUP__IMAGE_PROPERTY:
+				return getImageProperty();
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION_PROPERTY:
+				return getDescriptionProperty();
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION:
+				return getDescription();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__USE_BEAN_SERVICE:
+				setUseBeanService((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DATATYPE:
+				setDatatype((YOptionsGroupDataType)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_TYPE:
+				setSelectionType((YSelectionType)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION:
+				setSelection(newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION:
+				getMultiSelection().clear();
+				getMultiSelection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION:
+				getCollection().clear();
+				getCollection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__CAPTION_PROPERTY:
+				setCaptionProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__IMAGE_PROPERTY:
+				setImageProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION_PROPERTY:
+				setDescriptionProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__USE_BEAN_SERVICE:
+				setUseBeanService(USE_BEAN_SERVICE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DATATYPE:
+				setDatatype((YOptionsGroupDataType)null);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_TYPE:
+				setSelectionType(SELECTION_TYPE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION:
+				setSelection(SELECTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION:
+				getMultiSelection().clear();
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION:
+				getCollection().clear();
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__CAPTION_PROPERTY:
+				setCaptionProperty(CAPTION_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__IMAGE_PROPERTY:
+				setImageProperty(IMAGE_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION_PROPERTY:
+				setDescriptionProperty(DESCRIPTION_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT:
+				return collectionBindingEndpoint != null;
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT:
+				return selectionBindingEndpoint != null;
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT:
+				return multiSelectionBindingEndpoint != null;
+			case ExtensionModelPackage.YOPTIONS_GROUP__USE_BEAN_SERVICE:
+				return useBeanService != USE_BEAN_SERVICE_EDEFAULT;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YOPTIONS_GROUP__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_TYPE:
+				return selectionType != SELECTION_TYPE_EDEFAULT;
+			case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION:
+				return SELECTION_EDEFAULT == null ? selection != null : !SELECTION_EDEFAULT.equals(selection);
+			case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION:
+				return multiSelection != null && !multiSelection.isEmpty();
+			case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION:
+				return collection != null && !collection.isEmpty();
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YOPTIONS_GROUP__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YOPTIONS_GROUP__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case ExtensionModelPackage.YOPTIONS_GROUP__CAPTION_PROPERTY:
+				return CAPTION_PROPERTY_EDEFAULT == null ? captionProperty != null : !CAPTION_PROPERTY_EDEFAULT.equals(captionProperty);
+			case ExtensionModelPackage.YOPTIONS_GROUP__IMAGE_PROPERTY:
+				return IMAGE_PROPERTY_EDEFAULT == null ? imageProperty != null : !IMAGE_PROPERTY_EDEFAULT.equals(imageProperty);
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION_PROPERTY:
+				return DESCRIPTION_PROPERTY_EDEFAULT == null ? descriptionProperty != null : !DESCRIPTION_PROPERTY_EDEFAULT.equals(descriptionProperty);
+			case ExtensionModelPackage.YOPTIONS_GROUP__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT: return CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YOPTIONS_GROUP__USE_BEAN_SERVICE: return ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YOPTIONS_GROUP__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YOPTIONS_GROUP__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YOPTIONS_GROUP__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (baseFeatureID) {
+				case ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE: return ExtensionModelPackage.YOPTIONS_GROUP__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (useBeanService: ");
+		result.append(useBeanService);
+		result.append(", selectionType: ");
+		result.append(selectionType);
+		result.append(", selection: ");
+		result.append(selection);
+		result.append(", multiSelection: ");
+		result.append(multiSelection);
+		result.append(", collection: ");
+		result.append(collection);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", captionProperty: ");
+		result.append(captionProperty);
+		result.append(", imageProperty: ");
+		result.append(imageProperty);
+		result.append(", descriptionProperty: ");
+		result.append(descriptionProperty);
+		result.append(", description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YOptionsGroupImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YPanelImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YPanelImpl.java
new file mode 100644
index 0000000..2a29b20
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YPanelImpl.java
@@ -0,0 +1,485 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPanel;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YPanel</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPanelImpl#getTabIndex <em>Tab Index</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPanelImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPanelImpl#getFirstContent <em>First Content</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPanelImpl#getSecondContent <em>Second Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YPanelImpl extends YLayoutImpl implements YPanel {
+	/**
+	 * The default value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int TAB_INDEX_EDEFAULT = -1;
+
+	/**
+	 * The cached value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected int tabIndex = TAB_INDEX_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getFirstContent() <em>First Content</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getFirstContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable firstContent;
+
+	/**
+	 * The cached value of the '{@link #getSecondContent() <em>Second Content</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSecondContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable secondContent;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YPanelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YPANEL;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTabIndex()
+	 *         <em>Tab Index</em>}' attribute
+	 * @generated
+	 */
+	public int getTabIndex() {
+		return tabIndex;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTabIndex
+	 *            the new cached value of the '{@link #getTabIndex()
+	 *            <em>Tab Index</em>}' attribute
+	 * @generated
+	 */
+	public void setTabIndex(int newTabIndex) {
+		int oldTabIndex = tabIndex;
+		tabIndex = newTabIndex;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPANEL__TAB_INDEX, oldTabIndex, tabIndex));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YPANEL__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPANEL__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getFirstContent()
+	 *         <em>First Content</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddable getFirstContent() {
+		if (firstContent != null && firstContent.eIsProxy()) {
+			InternalEObject oldFirstContent = (InternalEObject)firstContent;
+			firstContent = (YEmbeddable)eResolveProxy(oldFirstContent);
+			if (firstContent != oldFirstContent) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YPANEL__FIRST_CONTENT, oldFirstContent, firstContent));
+			}
+		}
+		return firstContent;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetFirstContent() {
+		return firstContent;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newFirstContent
+	 *            the new cached value of the '{@link #getFirstContent()
+	 *            <em>First Content</em>}' reference
+	 * @generated
+	 */
+	public void setFirstContent(YEmbeddable newFirstContent) {
+		YEmbeddable oldFirstContent = firstContent;
+		firstContent = newFirstContent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPANEL__FIRST_CONTENT, oldFirstContent, firstContent));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSecondContent()
+	 *         <em>Second Content</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddable getSecondContent() {
+		if (secondContent != null && secondContent.eIsProxy()) {
+			InternalEObject oldSecondContent = (InternalEObject)secondContent;
+			secondContent = (YEmbeddable)eResolveProxy(oldSecondContent);
+			if (secondContent != oldSecondContent) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YPANEL__SECOND_CONTENT, oldSecondContent, secondContent));
+			}
+		}
+		return secondContent;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetSecondContent() {
+		return secondContent;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSecondContent
+	 *            the new cached value of the '{@link #getSecondContent()
+	 *            <em>Second Content</em>}' reference
+	 * @generated
+	 */
+	public void setSecondContent(YEmbeddable newSecondContent) {
+		YEmbeddable oldSecondContent = secondContent;
+		secondContent = newSecondContent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPANEL__SECOND_CONTENT, oldSecondContent, secondContent));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the cell style
+	 * @generated
+	 */
+	public YHorizontalLayoutCellStyle getCellStyle(YEmbeddable element) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPANEL__TAB_INDEX:
+				return getTabIndex();
+			case ExtensionModelPackage.YPANEL__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YPANEL__FIRST_CONTENT:
+				if (resolve) return getFirstContent();
+				return basicGetFirstContent();
+			case ExtensionModelPackage.YPANEL__SECOND_CONTENT:
+				if (resolve) return getSecondContent();
+				return basicGetSecondContent();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPANEL__TAB_INDEX:
+				setTabIndex((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YPANEL__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YPANEL__FIRST_CONTENT:
+				setFirstContent((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YPANEL__SECOND_CONTENT:
+				setSecondContent((YEmbeddable)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPANEL__TAB_INDEX:
+				setTabIndex(TAB_INDEX_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YPANEL__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YPANEL__FIRST_CONTENT:
+				setFirstContent((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YPANEL__SECOND_CONTENT:
+				setSecondContent((YEmbeddable)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPANEL__TAB_INDEX:
+				return tabIndex != TAB_INDEX_EDEFAULT;
+			case ExtensionModelPackage.YPANEL__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YPANEL__FIRST_CONTENT:
+				return firstContent != null;
+			case ExtensionModelPackage.YPANEL__SECOND_CONTENT:
+				return secondContent != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YFocusable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YPANEL__TAB_INDEX: return CoreModelPackage.YFOCUSABLE__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YFocusable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YFOCUSABLE__TAB_INDEX: return ExtensionModelPackage.YPANEL__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tabIndex: ");
+		result.append(tabIndex);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	@Override
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	@Override
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+
+} // YPanelImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YPasswordFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YPasswordFieldImpl.java
new file mode 100644
index 0000000..74b781b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YPasswordFieldImpl.java
@@ -0,0 +1,463 @@
+/**
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YPassword Field</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPasswordFieldImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPasswordFieldImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YPasswordFieldImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YPasswordFieldImpl extends YInputImpl implements YPasswordField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YPasswordFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YPASSWORD_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YPASSWORD_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPASSWORD_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPASSWORD_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YPASSWORD_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YPASSWORD_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE:
+				setValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YPASSWORD_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YPASSWORD_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YPASSWORD_FIELD__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YPASSWORD_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+	
+} //YPasswordFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YProgressBarImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YProgressBarImpl.java
new file mode 100644
index 0000000..9a08fe8
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YProgressBarImpl.java
@@ -0,0 +1,604 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YProgress Bar</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YProgressBarImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YProgressBarImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YProgressBarImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YProgressBarImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YProgressBarImpl extends YInputImpl implements YProgressBar {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YProgressBarDatatype datatype;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float VALUE_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected float value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YProgressBarImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YPROGRESS_BAR;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YProgressBarDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YProgressBarDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YPROGRESS_BAR__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y progress bar datatype
+	 * @generated
+	 */
+	public YProgressBarDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YProgressBarDatatype newDatatype) {
+		YProgressBarDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPROGRESS_BAR__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YPROGRESS_BAR__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPROGRESS_BAR__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public float getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(float newValue) {
+		float oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YPROGRESS_BAR__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YPROGRESS_BAR__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YPROGRESS_BAR__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YPROGRESS_BAR__DATATYPE:
+				setDatatype((YProgressBarDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YPROGRESS_BAR__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE:
+				setValue((Float)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YPROGRESS_BAR__DATATYPE:
+				setDatatype((YProgressBarDatatype)null);
+				return;
+			case ExtensionModelPackage.YPROGRESS_BAR__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YPROGRESS_BAR__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YPROGRESS_BAR__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YPROGRESS_BAR__VALUE:
+				return value != VALUE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YPROGRESS_BAR__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} //YProgressBarImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YReferenceSearchFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YReferenceSearchFieldImpl.java
new file mode 100644
index 0000000..ce5c9a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YReferenceSearchFieldImpl.java
@@ -0,0 +1,776 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YReference Search Field</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl#getWildcard <em>Wildcard</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YReferenceSearchFieldImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YReferenceSearchFieldImpl extends YInputImpl implements YReferenceSearchField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object value = VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getWildcard() <em>Wildcard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWildcard()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSearchWildcards WILDCARD_EDEFAULT = YSearchWildcards.GT;
+
+	/**
+	 * The cached value of the '{@link #getWildcard() <em>Wildcard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWildcard()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSearchWildcards wildcard = WILDCARD_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YReferenceSearchFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YREFERENCE_SEARCH_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Object getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(Object newValue) {
+		Object oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getWildcard() <em>Wildcard</em>}
+	 *         ' attribute
+	 * @generated
+	 */
+	public YSearchWildcards getWildcard() {
+		return wildcard;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newWildcard
+	 *            the new cached value of the '{@link #getWildcard()
+	 *            <em>Wildcard</em>}' attribute
+	 * @generated
+	 */
+	public void setWildcard(YSearchWildcards newWildcard) {
+		YSearchWildcards oldWildcard = wildcard;
+		wildcard = newWildcard == null ? WILDCARD_EDEFAULT : newWildcard;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__WILDCARD, oldWildcard, wildcard));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getPropertyPath()
+	 *         <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newPropertyPath
+	 *            the new cached value of the '{@link #getPropertyPath()
+	 *            <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE:
+				return getValue();
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__WILDCARD:
+				return getWildcard();
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__PROPERTY_PATH:
+				return getPropertyPath();
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE:
+				return getType();
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE:
+				setValue(newValue);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__WILDCARD:
+				setWildcard((YSearchWildcards)newValue);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__WILDCARD:
+				setWildcard(WILDCARD_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__WILDCARD:
+				return wildcard != WILDCARD_EDEFAULT;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YREFERENCE_SEARCH_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(", wildcard: ");
+		result.append(wildcard);
+		result.append(", propertyPath: ");
+		result.append(propertyPath);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} //YReferenceSearchFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YRemoveFromTableCommandImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YRemoveFromTableCommandImpl.java
new file mode 100644
index 0000000..6d7aaf3
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YRemoveFromTableCommandImpl.java
@@ -0,0 +1,546 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YRemove From Table Command</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl#getTable <em>Table</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YRemoveFromTableCommandImpl#getTrigger <em>Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YRemoveFromTableCommandImpl extends MinimalEObjectImpl.Container
+		implements YRemoveFromTableCommand {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The cached value of the '{@link #getTable() <em>Table</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected YTable table;
+
+	/**
+	 * The default value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object TRIGGER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object trigger = TRIGGER_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YRemoveFromTableCommandImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YREMOVE_FROM_TABLE_COMMAND;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getId() <em>Id</em>}' attribute
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newId
+	 *            the new cached value of the '{@link #getId() <em>Id</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getName() <em>Name</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newName
+	 *            the new cached value of the '{@link #getName() <em>Name</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTags() <em>Tags</em>}'
+	 *         attribute list
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getProperties()
+	 *         <em>Properties</em>}' map
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTable() <em>Table</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YTable getTable() {
+		if (table != null && table.eIsProxy()) {
+			InternalEObject oldTable = (InternalEObject)table;
+			table = (YTable)eResolveProxy(oldTable);
+			if (table != oldTable) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TABLE, oldTable, table));
+			}
+		}
+		return table;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table
+	 * @generated
+	 */
+	public YTable basicGetTable() {
+		return table;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTable
+	 *            the new cached value of the '{@link #getTable()
+	 *            <em>Table</em>}' reference
+	 * @generated
+	 */
+	public void setTable(YTable newTable) {
+		YTable oldTable = table;
+		table = newTable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TABLE, oldTable, table));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTrigger() <em>Trigger</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Object getTrigger() {
+		return trigger;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTrigger
+	 *            the new cached value of the '{@link #getTrigger()
+	 *            <em>Trigger</em>}' attribute
+	 * @generated
+	 */
+	public void setTrigger(Object newTrigger) {
+		Object oldTrigger = trigger;
+		trigger = newTrigger;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TRIGGER, oldTrigger, trigger));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view gen
+	 * @generated
+	 */
+	public YView getViewGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommand#getView()
+	 */
+	public YView getView() {
+		return findViewGeneric(eContainer());
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * Find view generic.
+	 *
+	 * @param container
+	 *            the container
+	 * @return the y view
+	 */
+	protected YView findViewGeneric(EObject container) {
+		if (container == null) {
+			return null;
+		}
+		if (container instanceof YView) {
+			return (YView) container;
+		} else if (container instanceof YLayout) {
+			return ((YLayout) container).getView();
+		} else {
+			EObject parent = container.eContainer();
+			return findViewGeneric(parent);
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TAGS:
+				return getTags();
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__ID:
+				return getId();
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__NAME:
+				return getName();
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TABLE:
+				if (resolve) return getTable();
+				return basicGetTable();
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TRIGGER:
+				return getTrigger();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__ID:
+				setId((String)newValue);
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__NAME:
+				setName((String)newValue);
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TABLE:
+				setTable((YTable)newValue);
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TRIGGER:
+				setTrigger(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TAGS:
+				getTags().clear();
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TABLE:
+				setTable((YTable)null);
+				return;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TRIGGER:
+				setTrigger(TRIGGER_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TABLE:
+				return table != null;
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND__TRIGGER:
+				return TRIGGER_EDEFAULT == null ? trigger != null : !TRIGGER_EDEFAULT.equals(trigger);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", trigger: ");
+		result.append(trigger);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Creates the trigger endpoint gen.
+	 *
+	 * @return the YEC view model value binding endpoint
+	 */
+	public YECViewModelValueBindingEndpoint createTriggerEndpointGen() {
+		throw new UnsupportedOperationException();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand#createTriggerEndpoint()
+	 */
+	@Override
+	public YECViewModelValueBindingEndpoint createTriggerEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) ExtensionModelPackage.Literals.YREMOVE_FROM_TABLE_COMMAND__TRIGGER);
+		return endpoint;
+	}
+
+} // YRemoveFromTableCommandImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSearchPanelImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSearchPanelImpl.java
new file mode 100644
index 0000000..dd69687
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSearchPanelImpl.java
@@ -0,0 +1,532 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YSearch Panel</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl#isSpacing <em>Spacing</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl#isMargin <em>Margin</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl#getApplyFilter <em>Apply Filter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSearchPanelImpl#getFilter <em>Filter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YSearchPanelImpl extends YLayoutImpl implements YSearchPanel {
+	/**
+	 * The default value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SPACING_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean spacing = SPACING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARGIN_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean margin = MARGIN_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getApplyFilter() <em>Apply Filter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getApplyFilter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object APPLY_FILTER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getApplyFilter() <em>Apply Filter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getApplyFilter()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object applyFilter = APPLY_FILTER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getFilter() <em>Filter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object FILTER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFilter() <em>Filter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilter()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object filter = FILTER_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSearchPanelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YSEARCH_PANEL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSpacing() {
+		return spacing;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSpacing(boolean newSpacing) {
+		boolean oldSpacing = spacing;
+		spacing = newSpacing;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSEARCH_PANEL__SPACING, oldSpacing, spacing));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMargin() {
+		return margin;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMargin(boolean newMargin) {
+		boolean oldMargin = margin;
+		margin = newMargin;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSEARCH_PANEL__MARGIN, oldMargin, margin));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSEARCH_PANEL__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSEARCH_PANEL__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSEARCH_PANEL__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getApplyFilter() {
+		return applyFilter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setApplyFilter(Object newApplyFilter) {
+		Object oldApplyFilter = applyFilter;
+		applyFilter = newApplyFilter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSEARCH_PANEL__APPLY_FILTER, oldApplyFilter, applyFilter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getFilter() {
+		return filter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFilter(Object newFilter) {
+		Object oldFilter = filter;
+		filter = newFilter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSEARCH_PANEL__FILTER, oldFilter, filter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSEARCH_PANEL__SPACING:
+				return isSpacing();
+			case ExtensionModelPackage.YSEARCH_PANEL__MARGIN:
+				return isMargin();
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE:
+				return getType();
+			case ExtensionModelPackage.YSEARCH_PANEL__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case ExtensionModelPackage.YSEARCH_PANEL__APPLY_FILTER:
+				return getApplyFilter();
+			case ExtensionModelPackage.YSEARCH_PANEL__FILTER:
+				return getFilter();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSEARCH_PANEL__SPACING:
+				setSpacing((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__MARGIN:
+				setMargin((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__APPLY_FILTER:
+				setApplyFilter(newValue);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__FILTER:
+				setFilter(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSEARCH_PANEL__SPACING:
+				setSpacing(SPACING_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__MARGIN:
+				setMargin(MARGIN_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__APPLY_FILTER:
+				setApplyFilter(APPLY_FILTER_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSEARCH_PANEL__FILTER:
+				setFilter(FILTER_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSEARCH_PANEL__SPACING:
+				return spacing != SPACING_EDEFAULT;
+			case ExtensionModelPackage.YSEARCH_PANEL__MARGIN:
+				return margin != MARGIN_EDEFAULT;
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YSEARCH_PANEL__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YSEARCH_PANEL__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case ExtensionModelPackage.YSEARCH_PANEL__APPLY_FILTER:
+				return APPLY_FILTER_EDEFAULT == null ? applyFilter != null : !APPLY_FILTER_EDEFAULT.equals(applyFilter);
+			case ExtensionModelPackage.YSEARCH_PANEL__FILTER:
+				return FILTER_EDEFAULT == null ? filter != null : !FILTER_EDEFAULT.equals(filter);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YSEARCH_PANEL__SPACING: return CoreModelPackage.YSPACINGABLE__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YSEARCH_PANEL__MARGIN: return CoreModelPackage.YMARGINABLE__MARGIN;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSPACINGABLE__SPACING: return ExtensionModelPackage.YSEARCH_PANEL__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMARGINABLE__MARGIN: return ExtensionModelPackage.YSEARCH_PANEL__MARGIN;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (spacing: ");
+		result.append(spacing);
+		result.append(", margin: ");
+		result.append(margin);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", applyFilter: ");
+		result.append(applyFilter);
+		result.append(", filter: ");
+		result.append(filter);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YSearchPanelImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSetNewBeanInstanceCommandImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSetNewBeanInstanceCommandImpl.java
new file mode 100644
index 0000000..8f6e768
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSetNewBeanInstanceCommandImpl.java
@@ -0,0 +1,753 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.binding.YValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YSet New Bean Instance Command</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl#getTrigger <em>Trigger</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSetNewBeanInstanceCommandImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YSetNewBeanInstanceCommandImpl extends MinimalEObjectImpl.Container implements YSetNewBeanInstanceCommand {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The cached value of the '{@link #getTarget() <em>Target</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTarget()
+	 * @generated
+	 * @ordered
+	 */
+	protected YValueBindingEndpoint target;
+
+	/**
+	 * The default value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object TRIGGER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTrigger() <em>Trigger</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrigger()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object trigger = TRIGGER_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YSetNewBeanInstanceCommandImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getId() <em>Id</em>}' attribute
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newId
+	 *            the new cached value of the '{@link #getId() <em>Id</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getName() <em>Name</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newName
+	 *            the new cached value of the '{@link #getName() <em>Name</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTags() <em>Tags</em>}'
+	 *         attribute list
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getProperties()
+	 *         <em>Properties</em>}' map
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTarget() <em>Target</em>}'
+	 *         containment reference
+	 * @generated
+	 */
+	public YValueBindingEndpoint getTarget() {
+		if (target != null && target.eIsProxy()) {
+			InternalEObject oldTarget = (InternalEObject)target;
+			target = (YValueBindingEndpoint)eResolveProxy(oldTarget);
+			if (target != oldTarget) {
+				InternalEObject newTarget = (InternalEObject)target;
+				NotificationChain msgs = oldTarget.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET, null, null);
+				if (newTarget.eInternalContainer() == null) {
+					msgs = newTarget.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET, oldTarget, target));
+			}
+		}
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y value binding endpoint
+	 * @generated
+	 */
+	public YValueBindingEndpoint basicGetTarget() {
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTarget
+	 *            the new target
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetTarget(YValueBindingEndpoint newTarget, NotificationChain msgs) {
+		YValueBindingEndpoint oldTarget = target;
+		target = newTarget;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET, oldTarget, newTarget);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTarget
+	 *            the new cached value of the '{@link #getTarget()
+	 *            <em>Target</em>}' containment reference
+	 * @generated
+	 */
+	public void setTarget(YValueBindingEndpoint newTarget) {
+		if (newTarget != target) {
+			NotificationChain msgs = null;
+			if (target != null)
+				msgs = ((InternalEObject)target).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET, null, msgs);
+			if (newTarget != null)
+				msgs = ((InternalEObject)newTarget).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET, null, msgs);
+			msgs = basicSetTarget(newTarget, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET, newTarget, newTarget));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTrigger() <em>Trigger</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Object getTrigger() {
+		return trigger;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTrigger
+	 *            the new cached value of the '{@link #getTrigger()
+	 *            <em>Trigger</em>}' attribute
+	 * @generated
+	 */
+	public void setTrigger(Object newTrigger) {
+		Object oldTrigger = trigger;
+		trigger = newTrigger;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER, oldTrigger, trigger));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TAGS:
+				return getTags();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__ID:
+				return getId();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__NAME:
+				return getName();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET:
+				if (resolve) return getTarget();
+				return basicGetTarget();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER:
+				return getTrigger();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE:
+				return getType();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__ID:
+				setId((String)newValue);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__NAME:
+				setName((String)newValue);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET:
+				setTarget((YValueBindingEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER:
+				setTrigger(newValue);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TAGS:
+				getTags().clear();
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET:
+				setTarget((YValueBindingEndpoint)null);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER:
+				setTrigger(TRIGGER_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET:
+				return target != null;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER:
+				return TRIGGER_EDEFAULT == null ? trigger != null : !TRIGGER_EDEFAULT.equals(trigger);
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", trigger: ");
+		result.append(trigger);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view gen
+	 * @generated
+	 */
+	public YView getViewGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommand#getView()
+	 */
+	public YView getView() {
+		return findViewGeneric(eContainer());
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND__TARGET:
+				return basicSetTarget(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * Find view generic.
+	 *
+	 * @param container
+	 *            the container
+	 * @return the y view
+	 */
+	protected YView findViewGeneric(EObject container) {
+		if (container == null) {
+			return null;
+		}
+		if (container instanceof YView) {
+			return (YView) container;
+		} else if (container instanceof YLayout) {
+			return ((YLayout) container).getView();
+		} else {
+			EObject parent = container.eContainer();
+			return findViewGeneric(parent);
+		}
+	}
+	
+	/**
+	 * Creates the trigger endpoint gen.
+	 *
+	 * @return the YEC view model value binding endpoint
+	 */
+	public YECViewModelValueBindingEndpoint createTriggerEndpointGen() {
+		throw new UnsupportedOperationException();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand#createTriggerEndpoint()
+	 */
+	@Override
+	public YECViewModelValueBindingEndpoint createTriggerEndpoint() {
+		YECViewModelValueBindingEndpoint endpoint = BindingFactory.eINSTANCE
+				.createYECViewModelValueBindingEndpoint();
+		endpoint.setElement(this);
+		endpoint.getFeatures()
+				.add((EStructuralFeature) ExtensionModelPackage.Literals.YSET_NEW_BEAN_INSTANCE_COMMAND__TRIGGER);
+		return endpoint;
+	}
+
+} //YSetNewBeanInstanceCommandImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSliderImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSliderImpl.java
new file mode 100644
index 0000000..3cea93c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSliderImpl.java
@@ -0,0 +1,768 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YOrientation;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSlider;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YSlider</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl#getMaxValue <em>Max Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl#getMinValue <em>Min Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl#getResolution <em>Resolution</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSliderImpl#getOrientation <em>Orientation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YSliderImpl extends YInputImpl implements YSlider {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double value = VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaxValue() <em>Max Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getMaxValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MAX_VALUE_EDEFAULT = 100.0;
+
+	/**
+	 * The cached value of the '{@link #getMaxValue() <em>Max Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getMaxValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double maxValue = MAX_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMinValue() <em>Min Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getMinValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MIN_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getMinValue() <em>Min Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getMinValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double minValue = MIN_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getResolution() <em>Resolution</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getResolution()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int RESOLUTION_EDEFAULT = 10;
+
+	/**
+	 * The cached value of the '{@link #getResolution() <em>Resolution</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getResolution()
+	 * @generated
+	 * @ordered
+	 */
+	protected int resolution = RESOLUTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getOrientation() <em>Orientation</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getOrientation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YOrientation ORIENTATION_EDEFAULT = YOrientation.HORIZONTAL;
+
+	/**
+	 * The cached value of the '{@link #getOrientation() <em>Orientation</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getOrientation()
+	 * @generated
+	 * @ordered
+	 */
+	protected YOrientation orientation = ORIENTATION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YSliderImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YSLIDER;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YSLIDER__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSLIDER__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public double getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(double newValue) {
+		double oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSLIDER__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMaxValue()
+	 *         <em>Max Value</em>}' attribute
+	 * @generated
+	 */
+	public double getMaxValue() {
+		return maxValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMaxValue
+	 *            the new cached value of the '{@link #getMaxValue()
+	 *            <em>Max Value</em>}' attribute
+	 * @generated
+	 */
+	public void setMaxValue(double newMaxValue) {
+		double oldMaxValue = maxValue;
+		maxValue = newMaxValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSLIDER__MAX_VALUE, oldMaxValue, maxValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMinValue()
+	 *         <em>Min Value</em>}' attribute
+	 * @generated
+	 */
+	public double getMinValue() {
+		return minValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMinValue
+	 *            the new cached value of the '{@link #getMinValue()
+	 *            <em>Min Value</em>}' attribute
+	 * @generated
+	 */
+	public void setMinValue(double newMinValue) {
+		double oldMinValue = minValue;
+		minValue = newMinValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSLIDER__MIN_VALUE, oldMinValue, minValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getResolution()
+	 *         <em>Resolution</em>}' attribute
+	 * @generated
+	 */
+	public int getResolution() {
+		return resolution;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newResolution
+	 *            the new cached value of the '{@link #getResolution()
+	 *            <em>Resolution</em>}' attribute
+	 * @generated
+	 */
+	public void setResolution(int newResolution) {
+		int oldResolution = resolution;
+		resolution = newResolution;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSLIDER__RESOLUTION, oldResolution, resolution));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getOrientation()
+	 *         <em>Orientation</em>}' attribute
+	 * @generated
+	 */
+	public YOrientation getOrientation() {
+		return orientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newOrientation
+	 *            the new cached value of the '{@link #getOrientation()
+	 *            <em>Orientation</em>}' attribute
+	 * @generated
+	 */
+	public void setOrientation(YOrientation newOrientation) {
+		YOrientation oldOrientation = orientation;
+		orientation = newOrientation == null ? ORIENTATION_EDEFAULT : newOrientation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSLIDER__ORIENTATION, oldOrientation, orientation));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YSLIDER__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YSLIDER__VALUE:
+				return getValue();
+			case ExtensionModelPackage.YSLIDER__MAX_VALUE:
+				return getMaxValue();
+			case ExtensionModelPackage.YSLIDER__MIN_VALUE:
+				return getMinValue();
+			case ExtensionModelPackage.YSLIDER__RESOLUTION:
+				return getResolution();
+			case ExtensionModelPackage.YSLIDER__ORIENTATION:
+				return getOrientation();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YSLIDER__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YSLIDER__VALUE:
+				setValue((Double)newValue);
+				return;
+			case ExtensionModelPackage.YSLIDER__MAX_VALUE:
+				setMaxValue((Double)newValue);
+				return;
+			case ExtensionModelPackage.YSLIDER__MIN_VALUE:
+				setMinValue((Double)newValue);
+				return;
+			case ExtensionModelPackage.YSLIDER__RESOLUTION:
+				setResolution((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YSLIDER__ORIENTATION:
+				setOrientation((YOrientation)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YSLIDER__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YSLIDER__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSLIDER__MAX_VALUE:
+				setMaxValue(MAX_VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSLIDER__MIN_VALUE:
+				setMinValue(MIN_VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSLIDER__RESOLUTION:
+				setResolution(RESOLUTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSLIDER__ORIENTATION:
+				setOrientation(ORIENTATION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YSLIDER__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YSLIDER__VALUE:
+				return value != VALUE_EDEFAULT;
+			case ExtensionModelPackage.YSLIDER__MAX_VALUE:
+				return maxValue != MAX_VALUE_EDEFAULT;
+			case ExtensionModelPackage.YSLIDER__MIN_VALUE:
+				return minValue != MIN_VALUE_EDEFAULT;
+			case ExtensionModelPackage.YSLIDER__RESOLUTION:
+				return resolution != RESOLUTION_EDEFAULT;
+			case ExtensionModelPackage.YSLIDER__ORIENTATION:
+				return orientation != ORIENTATION_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YSLIDER__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(", maxValue: ");
+		result.append(maxValue);
+		result.append(", minValue: ");
+		result.append(minValue);
+		result.append(", resolution: ");
+		result.append(resolution);
+		result.append(", orientation: ");
+		result.append(orientation);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YSliderImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSortColumnImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSortColumnImpl.java
new file mode 100644
index 0000000..865449e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSortColumnImpl.java
@@ -0,0 +1,524 @@
+/**
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YSort Column</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl#getPropertyPath <em>Property Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSortColumnImpl#isAsc <em>Asc</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YSortColumnImpl extends MinimalEObjectImpl.Container implements YSortColumn {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAsc() <em>Asc</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAsc()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ASC_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isAsc() <em>Asc</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAsc()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean asc = ASC_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSortColumnImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YSORT_COLUMN;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtensionModelPackage.YSORT_COLUMN__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSORT_COLUMN__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSORT_COLUMN__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtensionModelPackage.YSORT_COLUMN__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSORT_COLUMN__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSORT_COLUMN__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSORT_COLUMN__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isAsc() {
+		return asc;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAsc(boolean newAsc) {
+		boolean oldAsc = asc;
+		asc = newAsc;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSORT_COLUMN__ASC, oldAsc, asc));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSORT_COLUMN__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSORT_COLUMN__TAGS:
+				return getTags();
+			case ExtensionModelPackage.YSORT_COLUMN__ID:
+				return getId();
+			case ExtensionModelPackage.YSORT_COLUMN__NAME:
+				return getName();
+			case ExtensionModelPackage.YSORT_COLUMN__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtensionModelPackage.YSORT_COLUMN__PROPERTY_PATH:
+				return getPropertyPath();
+			case ExtensionModelPackage.YSORT_COLUMN__TYPE:
+				return getType();
+			case ExtensionModelPackage.YSORT_COLUMN__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case ExtensionModelPackage.YSORT_COLUMN__ASC:
+				return isAsc();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSORT_COLUMN__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__ID:
+				setId((String)newValue);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__NAME:
+				setName((String)newValue);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__ASC:
+				setAsc((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSORT_COLUMN__TAGS:
+				getTags().clear();
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSORT_COLUMN__ASC:
+				setAsc(ASC_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSORT_COLUMN__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtensionModelPackage.YSORT_COLUMN__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtensionModelPackage.YSORT_COLUMN__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtensionModelPackage.YSORT_COLUMN__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtensionModelPackage.YSORT_COLUMN__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+			case ExtensionModelPackage.YSORT_COLUMN__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YSORT_COLUMN__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case ExtensionModelPackage.YSORT_COLUMN__ASC:
+				return asc != ASC_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", propertyPath: ");
+		result.append(propertyPath);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", asc: ");
+		result.append(asc);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YSortColumnImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSpanInfoImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSpanInfoImpl.java
new file mode 100644
index 0000000..aeaf0a4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSpanInfoImpl.java
@@ -0,0 +1,333 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YUi Span Info</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSpanInfoImpl#getColumnFrom <em>Column From</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSpanInfoImpl#getRowFrom <em>Row From</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSpanInfoImpl#getColumnTo <em>Column To</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSpanInfoImpl#getRowTo <em>Row To</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YSpanInfoImpl extends MinimalEObjectImpl.Container implements YSpanInfo {
+	/**
+	 * The default value of the '{@link #getColumnFrom() <em>Column From</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumnFrom()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int COLUMN_FROM_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getColumnFrom() <em>Column From</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumnFrom()
+	 * @generated
+	 * @ordered
+	 */
+	protected int columnFrom = COLUMN_FROM_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRowFrom() <em>Row From</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRowFrom()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int ROW_FROM_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getRowFrom() <em>Row From</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRowFrom()
+	 * @generated
+	 * @ordered
+	 */
+	protected int rowFrom = ROW_FROM_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getColumnTo() <em>Column To</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumnTo()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int COLUMN_TO_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getColumnTo() <em>Column To</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumnTo()
+	 * @generated
+	 * @ordered
+	 */
+	protected int columnTo = COLUMN_TO_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRowTo() <em>Row To</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRowTo()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int ROW_TO_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getRowTo() <em>Row To</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRowTo()
+	 * @generated
+	 * @ordered
+	 */
+	protected int rowTo = ROW_TO_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YSpanInfoImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YSPAN_INFO;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getColumnFrom() {
+		return columnFrom;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColumnFrom(int newColumnFrom) {
+		int oldColumnFrom = columnFrom;
+		columnFrom = newColumnFrom;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSPAN_INFO__COLUMN_FROM, oldColumnFrom, columnFrom));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getRowFrom() {
+		return rowFrom;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRowFrom(int newRowFrom) {
+		int oldRowFrom = rowFrom;
+		rowFrom = newRowFrom;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSPAN_INFO__ROW_FROM, oldRowFrom, rowFrom));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getColumnTo() {
+		return columnTo;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColumnTo(int newColumnTo) {
+		int oldColumnTo = columnTo;
+		columnTo = newColumnTo;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSPAN_INFO__COLUMN_TO, oldColumnTo, columnTo));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getRowTo() {
+		return rowTo;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRowTo(int newRowTo) {
+		int oldRowTo = rowTo;
+		rowTo = newRowTo;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSPAN_INFO__ROW_TO, oldRowTo, rowTo));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_FROM:
+				return getColumnFrom();
+			case ExtensionModelPackage.YSPAN_INFO__ROW_FROM:
+				return getRowFrom();
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_TO:
+				return getColumnTo();
+			case ExtensionModelPackage.YSPAN_INFO__ROW_TO:
+				return getRowTo();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_FROM:
+				setColumnFrom((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YSPAN_INFO__ROW_FROM:
+				setRowFrom((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_TO:
+				setColumnTo((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YSPAN_INFO__ROW_TO:
+				setRowTo((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_FROM:
+				setColumnFrom(COLUMN_FROM_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSPAN_INFO__ROW_FROM:
+				setRowFrom(ROW_FROM_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_TO:
+				setColumnTo(COLUMN_TO_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSPAN_INFO__ROW_TO:
+				setRowTo(ROW_TO_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_FROM:
+				return columnFrom != COLUMN_FROM_EDEFAULT;
+			case ExtensionModelPackage.YSPAN_INFO__ROW_FROM:
+				return rowFrom != ROW_FROM_EDEFAULT;
+			case ExtensionModelPackage.YSPAN_INFO__COLUMN_TO:
+				return columnTo != COLUMN_TO_EDEFAULT;
+			case ExtensionModelPackage.YSPAN_INFO__ROW_TO:
+				return rowTo != ROW_TO_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (columnFrom: ");
+		result.append(columnFrom);
+		result.append(", rowFrom: ");
+		result.append(rowFrom);
+		result.append(", columnTo: ");
+		result.append(columnTo);
+		result.append(", rowTo: ");
+		result.append(rowTo);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YUiSpanInfoImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSplitPanelImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSplitPanelImpl.java
new file mode 100644
index 0000000..14f3ad1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSplitPanelImpl.java
@@ -0,0 +1,493 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YSplit Panel</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSplitPanelImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSplitPanelImpl#getCellStyles <em>Cell Styles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSplitPanelImpl#isFillHorizontal <em>Fill Horizontal</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSplitPanelImpl#getSplitPosition <em>Split Position</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSplitPanelImpl#isVertical <em>Vertical</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YSplitPanelImpl extends YLayoutImpl implements YSplitPanel {
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getCellStyles() <em>Cell Styles</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCellStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YHorizontalLayoutCellStyle> cellStyles;
+
+	/**
+	 * The default value of the '{@link #isFillHorizontal() <em>Fill Horizontal</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFillHorizontal()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean FILL_HORIZONTAL_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isFillHorizontal() <em>Fill Horizontal</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFillHorizontal()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean fillHorizontal = FILL_HORIZONTAL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSplitPosition() <em>Split Position</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSplitPosition()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int SPLIT_POSITION_EDEFAULT = 50;
+
+	/**
+	 * The cached value of the '{@link #getSplitPosition() <em>Split Position</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSplitPosition()
+	 * @generated
+	 * @ordered
+	 */
+	protected int splitPosition = SPLIT_POSITION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isVertical() <em>Vertical</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isVertical()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VERTICAL_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isVertical() <em>Vertical</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isVertical()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean vertical = VERTICAL_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YSplitPanelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YSPLIT_PANEL;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YSPLIT_PANEL__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSPLIT_PANEL__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCellStyles()
+	 *         <em>Cell Styles</em>}' containment reference list
+	 * @generated
+	 */
+	public EList<YHorizontalLayoutCellStyle> getCellStyles() {
+		if (cellStyles == null) {
+			cellStyles = new EObjectContainmentEList.Resolving<YHorizontalLayoutCellStyle>(YHorizontalLayoutCellStyle.class, this, ExtensionModelPackage.YSPLIT_PANEL__CELL_STYLES);
+		}
+		return cellStyles;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isFillHorizontal()
+	 *         <em>Fill Horizontal</em>}' attribute
+	 * @generated
+	 */
+	public boolean isFillHorizontal() {
+		return fillHorizontal;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newFillHorizontal
+	 *            the new cached value of the '{@link #isFillHorizontal()
+	 *            <em>Fill Horizontal</em>}' attribute
+	 * @generated
+	 */
+	public void setFillHorizontal(boolean newFillHorizontal) {
+		boolean oldFillHorizontal = fillHorizontal;
+		fillHorizontal = newFillHorizontal;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSPLIT_PANEL__FILL_HORIZONTAL, oldFillHorizontal, fillHorizontal));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSplitPosition()
+	 *         <em>Split Position</em>}' attribute
+	 * @generated
+	 */
+	public int getSplitPosition() {
+		return splitPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSplitPosition
+	 *            the new cached value of the '{@link #getSplitPosition()
+	 *            <em>Split Position</em>}' attribute
+	 * @generated
+	 */
+	public void setSplitPosition(int newSplitPosition) {
+		int oldSplitPosition = splitPosition;
+		splitPosition = newSplitPosition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSPLIT_PANEL__SPLIT_POSITION, oldSplitPosition, splitPosition));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isVertical() <em>Vertical</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isVertical() {
+		return vertical;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newVertical
+	 *            the new cached value of the '{@link #isVertical()
+	 *            <em>Vertical</em>}' attribute
+	 * @generated
+	 */
+	public void setVertical(boolean newVertical) {
+		boolean oldVertical = vertical;
+		vertical = newVertical;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSPLIT_PANEL__VERTICAL, oldVertical, vertical));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param element
+	 *            the element
+	 * @return the cell style
+	 * @generated
+	 */
+	public YHorizontalLayoutCellStyle getCellStyle(YEmbeddable element) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSPLIT_PANEL__CELL_STYLES:
+				return ((InternalEList<?>)getCellStyles()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSPLIT_PANEL__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YSPLIT_PANEL__CELL_STYLES:
+				return getCellStyles();
+			case ExtensionModelPackage.YSPLIT_PANEL__FILL_HORIZONTAL:
+				return isFillHorizontal();
+			case ExtensionModelPackage.YSPLIT_PANEL__SPLIT_POSITION:
+				return getSplitPosition();
+			case ExtensionModelPackage.YSPLIT_PANEL__VERTICAL:
+				return isVertical();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSPLIT_PANEL__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YSPLIT_PANEL__CELL_STYLES:
+				getCellStyles().clear();
+				getCellStyles().addAll((Collection<? extends YHorizontalLayoutCellStyle>)newValue);
+				return;
+			case ExtensionModelPackage.YSPLIT_PANEL__FILL_HORIZONTAL:
+				setFillHorizontal((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YSPLIT_PANEL__SPLIT_POSITION:
+				setSplitPosition((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YSPLIT_PANEL__VERTICAL:
+				setVertical((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSPLIT_PANEL__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YSPLIT_PANEL__CELL_STYLES:
+				getCellStyles().clear();
+				return;
+			case ExtensionModelPackage.YSPLIT_PANEL__FILL_HORIZONTAL:
+				setFillHorizontal(FILL_HORIZONTAL_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSPLIT_PANEL__SPLIT_POSITION:
+				setSplitPosition(SPLIT_POSITION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSPLIT_PANEL__VERTICAL:
+				setVertical(VERTICAL_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSPLIT_PANEL__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YSPLIT_PANEL__CELL_STYLES:
+				return cellStyles != null && !cellStyles.isEmpty();
+			case ExtensionModelPackage.YSPLIT_PANEL__FILL_HORIZONTAL:
+				return fillHorizontal != FILL_HORIZONTAL_EDEFAULT;
+			case ExtensionModelPackage.YSPLIT_PANEL__SPLIT_POSITION:
+				return splitPosition != SPLIT_POSITION_EDEFAULT;
+			case ExtensionModelPackage.YSPLIT_PANEL__VERTICAL:
+				return vertical != VERTICAL_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (fillHorizontal: ");
+		result.append(fillHorizontal);
+		result.append(", splitPosition: ");
+		result.append(splitPosition);
+		result.append(", vertical: ");
+		result.append(vertical);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	@Override
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	@Override
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+
+
+} //YSplitPanelImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSuggestTextFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSuggestTextFieldImpl.java
new file mode 100644
index 0000000..fd79f23
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YSuggestTextFieldImpl.java
@@ -0,0 +1,1160 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextFieldEvents;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YSuggest Text Field</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#isUseSuggestions <em>Use Suggestions</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#isAutoHidePopup <em>Auto Hide Popup</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getLastSuggestion <em>Last Suggestion</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getItemCaptionProperty <em>Item Caption Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getItemFilterProperty <em>Item Filter Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getItemUUIDProperty <em>Item UUID Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YSuggestTextFieldImpl#getEvent <em>Event</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YSuggestTextFieldImpl extends YInputImpl implements
+		YSuggestTextField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YTextDatatype datatype;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isUseSuggestions() <em>Use Suggestions</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isUseSuggestions()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USE_SUGGESTIONS_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUseSuggestions() <em>Use Suggestions</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #isUseSuggestions()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean useSuggestions = USE_SUGGESTIONS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAutoHidePopup() <em>Auto Hide Popup</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAutoHidePopup()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean AUTO_HIDE_POPUP_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isAutoHidePopup() <em>Auto Hide Popup</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAutoHidePopup()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean autoHidePopup = AUTO_HIDE_POPUP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLastSuggestion() <em>Last Suggestion</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getLastSuggestion()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object LAST_SUGGESTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLastSuggestion() <em>Last Suggestion</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getLastSuggestion()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object lastSuggestion = LAST_SUGGESTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getItemCaptionProperty() <em>Item Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getItemCaptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ITEM_CAPTION_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getItemCaptionProperty() <em>Item Caption Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getItemCaptionProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String itemCaptionProperty = ITEM_CAPTION_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getItemFilterProperty() <em>Item Filter Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getItemFilterProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ITEM_FILTER_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getItemFilterProperty() <em>Item Filter Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getItemFilterProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String itemFilterProperty = ITEM_FILTER_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getItemUUIDProperty() <em>Item UUID Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getItemUUIDProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ITEM_UUID_PROPERTY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getItemUUIDProperty() <em>Item UUID Property</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getItemUUIDProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String itemUUIDProperty = ITEM_UUID_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getEvent() <em>Event</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEvent()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSuggestTextFieldEvents EVENT_EDEFAULT = YSuggestTextFieldEvents.OPEN_POPUP;
+
+	/**
+	 * The cached value of the '{@link #getEvent() <em>Event</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEvent()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSuggestTextFieldEvents event = EVENT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YSuggestTextFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YSUGGEST_TEXT_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(
+			YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YTextDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YTextDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text datatype
+	 * @generated
+	 */
+	public YTextDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YTextDatatype newDatatype) {
+		YTextDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isUseSuggestions()
+	 *         <em>Use Suggestions</em>}' attribute
+	 * @generated
+	 */
+	public boolean isUseSuggestions() {
+		return useSuggestions;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newUseSuggestions
+	 *            the new cached value of the '{@link #isUseSuggestions()
+	 *            <em>Use Suggestions</em>}' attribute
+	 * @generated
+	 */
+	public void setUseSuggestions(boolean newUseSuggestions) {
+		boolean oldUseSuggestions = useSuggestions;
+		useSuggestions = newUseSuggestions;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS, oldUseSuggestions, useSuggestions));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isAutoHidePopup() {
+		return autoHidePopup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAutoHidePopup(boolean newAutoHidePopup) {
+		boolean oldAutoHidePopup = autoHidePopup;
+		autoHidePopup = newAutoHidePopup;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP, oldAutoHidePopup, autoHidePopup));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getLastSuggestion()
+	 *         <em>Last Suggestion</em>}' attribute
+	 * @generated
+	 */
+	public Object getLastSuggestion() {
+		return lastSuggestion;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newLastSuggestion
+	 *            the new cached value of the '{@link #getLastSuggestion()
+	 *            <em>Last Suggestion</em>}' attribute
+	 * @generated
+	 */
+	public void setLastSuggestion(Object newLastSuggestion) {
+		Object oldLastSuggestion = lastSuggestion;
+		lastSuggestion = newLastSuggestion;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__LAST_SUGGESTION, oldLastSuggestion, lastSuggestion));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getItemCaptionProperty()
+	 *         <em>Item Caption Property</em>}' attribute
+	 * @generated
+	 */
+	public String getItemCaptionProperty() {
+		return itemCaptionProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newItemCaptionProperty
+	 *            the new cached value of the '{@link #getItemCaptionProperty()
+	 *            <em>Item Caption Property</em>}' attribute
+	 * @generated
+	 */
+	public void setItemCaptionProperty(String newItemCaptionProperty) {
+		String oldItemCaptionProperty = itemCaptionProperty;
+		itemCaptionProperty = newItemCaptionProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY, oldItemCaptionProperty, itemCaptionProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getItemFilterProperty()
+	 *         <em>Item Filter Property</em>}' attribute
+	 * @generated
+	 */
+	public String getItemFilterProperty() {
+		return itemFilterProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newItemFilterProperty
+	 *            the new cached value of the '{@link #getItemFilterProperty()
+	 *            <em>Item Filter Property</em>}' attribute
+	 * @generated
+	 */
+	public void setItemFilterProperty(String newItemFilterProperty) {
+		String oldItemFilterProperty = itemFilterProperty;
+		itemFilterProperty = newItemFilterProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY, oldItemFilterProperty, itemFilterProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getItemUUIDProperty()
+	 *         <em>Item UUID Property</em>}' attribute
+	 * @generated
+	 */
+	public String getItemUUIDProperty() {
+		return itemUUIDProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newItemUUIDProperty
+	 *            the new cached value of the '{@link #getItemUUIDProperty()
+	 *            <em>Item UUID Property</em>}' attribute
+	 * @generated
+	 */
+	public void setItemUUIDProperty(String newItemUUIDProperty) {
+		String oldItemUUIDProperty = itemUUIDProperty;
+		itemUUIDProperty = newItemUUIDProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY, oldItemUUIDProperty, itemUUIDProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public YSuggestTextFieldEvents getEvent() {
+		return event;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEvent(YSuggestTextFieldEvents newEvent) {
+		YSuggestTextFieldEvents oldEvent = event;
+		event = newEvent == null ? EVENT_EDEFAULT : newEvent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EVENT, oldEvent, event));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE:
+				return getValue();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS:
+				return isUseSuggestions();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP:
+				return isAutoHidePopup();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__LAST_SUGGESTION:
+				return getLastSuggestion();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE:
+				return getType();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY:
+				return getItemCaptionProperty();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY:
+				return getItemFilterProperty();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY:
+				return getItemUUIDProperty();
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EVENT:
+				return getEvent();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATATYPE:
+				setDatatype((YTextDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE:
+				setValue((String)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS:
+				setUseSuggestions((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP:
+				setAutoHidePopup((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__LAST_SUGGESTION:
+				setLastSuggestion(newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY:
+				setItemCaptionProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY:
+				setItemFilterProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY:
+				setItemUUIDProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EVENT:
+				setEvent((YSuggestTextFieldEvents)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATATYPE:
+				setDatatype((YTextDatatype)null);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS:
+				setUseSuggestions(USE_SUGGESTIONS_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP:
+				setAutoHidePopup(AUTO_HIDE_POPUP_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__LAST_SUGGESTION:
+				setLastSuggestion(LAST_SUGGESTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY:
+				setItemCaptionProperty(ITEM_CAPTION_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY:
+				setItemFilterProperty(ITEM_FILTER_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY:
+				setItemUUIDProperty(ITEM_UUID_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EVENT:
+				setEvent(EVENT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__USE_SUGGESTIONS:
+				return useSuggestions != USE_SUGGESTIONS_EDEFAULT;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__AUTO_HIDE_POPUP:
+				return autoHidePopup != AUTO_HIDE_POPUP_EDEFAULT;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__LAST_SUGGESTION:
+				return LAST_SUGGESTION_EDEFAULT == null ? lastSuggestion != null : !LAST_SUGGESTION_EDEFAULT.equals(lastSuggestion);
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_CAPTION_PROPERTY:
+				return ITEM_CAPTION_PROPERTY_EDEFAULT == null ? itemCaptionProperty != null : !ITEM_CAPTION_PROPERTY_EDEFAULT.equals(itemCaptionProperty);
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_FILTER_PROPERTY:
+				return ITEM_FILTER_PROPERTY_EDEFAULT == null ? itemFilterProperty != null : !ITEM_FILTER_PROPERTY_EDEFAULT.equals(itemFilterProperty);
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__ITEM_UUID_PROPERTY:
+				return ITEM_UUID_PROPERTY_EDEFAULT == null ? itemUUIDProperty != null : !ITEM_UUID_PROPERTY_EDEFAULT.equals(itemUUIDProperty);
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__EVENT:
+				return event != EVENT_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YSUGGEST_TEXT_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(", useSuggestions: ");
+		result.append(useSuggestions);
+		result.append(", autoHidePopup: ");
+		result.append(autoHidePopup);
+		result.append(", lastSuggestion: ");
+		result.append(lastSuggestion);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", itemCaptionProperty: ");
+		result.append(itemCaptionProperty);
+		result.append(", itemFilterProperty: ");
+		result.append(itemFilterProperty);
+		result.append(", itemUUIDProperty: ");
+		result.append(itemUUIDProperty);
+		result.append(", event: ");
+		result.append(event);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YSuggestTextFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTabImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTabImpl.java
new file mode 100644
index 0000000..352da84
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTabImpl.java
@@ -0,0 +1,943 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YStringToStringMapImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YTab</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getCssClass <em>Css Class</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getCssID <em>Css ID</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getParent <em>Parent</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getEmbeddable <em>Embeddable</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabImpl#getOrphanDatadescriptions <em>Orphan Datadescriptions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTabImpl extends MinimalEObjectImpl.Container implements YTab {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> tags;
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> properties;
+	/**
+	 * The default value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_CLASS_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getCssClass() <em>Css Class</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssClass = CSS_CLASS_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getCssID() <em>Css ID</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssID()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CSS_ID_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getCssID() <em>Css ID</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCssID()
+	 * @generated
+	 * @ordered
+	 */
+	protected String cssID = CSS_ID_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getEmbeddable() <em>Embeddable</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEmbeddable()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable embeddable;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getOrphanDatadescriptions() <em>Orphan Datadescriptions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrphanDatadescriptions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YDatadescription> orphanDatadescriptions;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YTabImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YTAB;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getId() <em>Id</em>}' attribute
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newId
+	 *            the new cached value of the '{@link #getId() <em>Id</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTAB__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getName() <em>Name</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newName
+	 *            the new cached value of the '{@link #getName() <em>Name</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTAB__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTags() <em>Tags</em>}'
+	 *         attribute list
+	 * @generated
+	 */
+	public EList<String> getTags() {
+		if (tags == null) {
+			tags = new EDataTypeUniqueEList<String>(String.class, this, ExtensionModelPackage.YTAB__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getProperties()
+	 *         <em>Properties</em>}' map
+	 * @generated
+	 */
+	public EMap<String, String> getProperties() {
+		if (properties == null) {
+			properties = new EcoreEMap<String,String>(CoreModelPackage.Literals.YSTRING_TO_STRING_MAP, YStringToStringMapImpl.class, this, ExtensionModelPackage.YTAB__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCssClass()
+	 *         <em>Css Class</em>}' attribute
+	 * @generated
+	 */
+	public String getCssClass() {
+		return cssClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCssClass
+	 *            the new cached value of the '{@link #getCssClass()
+	 *            <em>Css Class</em>}' attribute
+	 * @generated
+	 */
+	public void setCssClass(String newCssClass) {
+		String oldCssClass = cssClass;
+		cssClass = newCssClass;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTAB__CSS_CLASS, oldCssClass, cssClass));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCssID() <em>Css ID</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getCssID() {
+		return cssID;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCssID
+	 *            the new cached value of the '{@link #getCssID()
+	 *            <em>Css ID</em>}' attribute
+	 * @generated
+	 */
+	public void setCssID(String newCssID) {
+		String oldCssID = cssID;
+		cssID = newCssID;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTAB__CSS_ID, oldCssID, cssID));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the parent
+	 * @generated
+	 */
+	public YTabSheet getParent() {
+		if (eContainerFeatureID() != ExtensionModelPackage.YTAB__PARENT) return null;
+		return (YTabSheet)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tab sheet
+	 * @generated
+	 */
+	public YTabSheet basicGetParent() {
+		if (eContainerFeatureID() != ExtensionModelPackage.YTAB__PARENT) return null;
+		return (YTabSheet)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newParent
+	 *            the new parent
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetParent(YTabSheet newParent,
+			NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newParent, ExtensionModelPackage.YTAB__PARENT, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newParent
+	 *            the new parent
+	 * @generated
+	 */
+	public void setParent(YTabSheet newParent) {
+		if (newParent != eInternalContainer() || (eContainerFeatureID() != ExtensionModelPackage.YTAB__PARENT && newParent != null)) {
+			if (EcoreUtil.isAncestor(this, newParent))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newParent != null)
+				msgs = ((InternalEObject)newParent).eInverseAdd(this, ExtensionModelPackage.YTAB_SHEET__TABS, YTabSheet.class, msgs);
+			msgs = basicSetParent(newParent, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTAB__PARENT, newParent, newParent));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmbeddable()
+	 *         <em>Embeddable</em>}' containment reference
+	 * @generated
+	 */
+	public YEmbeddable getEmbeddable() {
+		if (embeddable != null && embeddable.eIsProxy()) {
+			InternalEObject oldEmbeddable = (InternalEObject)embeddable;
+			embeddable = (YEmbeddable)eResolveProxy(oldEmbeddable);
+			if (embeddable != oldEmbeddable) {
+				InternalEObject newEmbeddable = (InternalEObject)embeddable;
+				NotificationChain msgs = oldEmbeddable.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YTAB__EMBEDDABLE, null, null);
+				if (newEmbeddable.eInternalContainer() == null) {
+					msgs = newEmbeddable.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YTAB__EMBEDDABLE, null, msgs);
+				}
+				if (msgs != null) msgs.dispatch();
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTAB__EMBEDDABLE, oldEmbeddable, embeddable));
+			}
+		}
+		return embeddable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetEmbeddable() {
+		return embeddable;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmbeddable
+	 *            the new embeddable
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetEmbeddable(YEmbeddable newEmbeddable,
+			NotificationChain msgs) {
+		YEmbeddable oldEmbeddable = embeddable;
+		embeddable = newEmbeddable;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTAB__EMBEDDABLE, oldEmbeddable, newEmbeddable);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTAB__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTAB__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getOrphanDatadescriptions()
+	 *         <em>Orphan Datadescriptions</em>}' containment reference list
+	 * @generated
+	 */
+	public EList<YDatadescription> getOrphanDatadescriptions() {
+		if (orphanDatadescriptions == null) {
+			orphanDatadescriptions = new EObjectContainmentEList.Resolving<YDatadescription>(YDatadescription.class, this, ExtensionModelPackage.YTAB__ORPHAN_DATADESCRIPTIONS);
+		}
+		return orphanDatadescriptions;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmbeddable
+	 *            the new cached value of the '{@link #getEmbeddable()
+	 *            <em>Embeddable</em>}' containment reference
+	 * @generated
+	 */
+	public void setEmbeddable(YEmbeddable newEmbeddable) {
+		if (newEmbeddable != embeddable) {
+			NotificationChain msgs = null;
+			if (embeddable != null)
+				msgs = ((InternalEObject)embeddable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YTAB__EMBEDDABLE, null, msgs);
+			if (newEmbeddable != null)
+				msgs = ((InternalEObject)newEmbeddable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionModelPackage.YTAB__EMBEDDABLE, null, msgs);
+			msgs = basicSetEmbeddable(newEmbeddable, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTAB__EMBEDDABLE, newEmbeddable, newEmbeddable));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view gen
+	 * @generated
+	 */
+	public YView getViewGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the view
+	 * @generated NOT
+	 */
+	public YView getView() {
+		EObject container = eContainer();
+		if (container instanceof YView) {
+			return (YView) container;
+		} else if (container instanceof YTabSheet) {
+			return ((YTabSheet) container).getView();
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB__PARENT:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetParent((YTabSheet)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+			case ExtensionModelPackage.YTAB__PARENT:
+				return basicSetParent(null, msgs);
+			case ExtensionModelPackage.YTAB__EMBEDDABLE:
+				return basicSetEmbeddable(null, msgs);
+			case ExtensionModelPackage.YTAB__ORPHAN_DATADESCRIPTIONS:
+				return ((InternalEList<?>)getOrphanDatadescriptions()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eBasicRemoveFromContainerFeature(
+			NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case ExtensionModelPackage.YTAB__PARENT:
+				return eInternalContainer().eInverseRemove(this, ExtensionModelPackage.YTAB_SHEET__TABS, YTabSheet.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB__TAGS:
+				return getTags();
+			case ExtensionModelPackage.YTAB__ID:
+				return getId();
+			case ExtensionModelPackage.YTAB__NAME:
+				return getName();
+			case ExtensionModelPackage.YTAB__PROPERTIES:
+				if (coreType) return getProperties();
+				else return getProperties().map();
+			case ExtensionModelPackage.YTAB__CSS_CLASS:
+				return getCssClass();
+			case ExtensionModelPackage.YTAB__CSS_ID:
+				return getCssID();
+			case ExtensionModelPackage.YTAB__PARENT:
+				if (resolve) return getParent();
+				return basicGetParent();
+			case ExtensionModelPackage.YTAB__EMBEDDABLE:
+				if (resolve) return getEmbeddable();
+				return basicGetEmbeddable();
+			case ExtensionModelPackage.YTAB__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YTAB__ORPHAN_DATADESCRIPTIONS:
+				return getOrphanDatadescriptions();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends String>)newValue);
+				return;
+			case ExtensionModelPackage.YTAB__ID:
+				setId((String)newValue);
+				return;
+			case ExtensionModelPackage.YTAB__NAME:
+				setName((String)newValue);
+				return;
+			case ExtensionModelPackage.YTAB__PROPERTIES:
+				((EStructuralFeature.Setting)getProperties()).set(newValue);
+				return;
+			case ExtensionModelPackage.YTAB__CSS_CLASS:
+				setCssClass((String)newValue);
+				return;
+			case ExtensionModelPackage.YTAB__CSS_ID:
+				setCssID((String)newValue);
+				return;
+			case ExtensionModelPackage.YTAB__PARENT:
+				setParent((YTabSheet)newValue);
+				return;
+			case ExtensionModelPackage.YTAB__EMBEDDABLE:
+				setEmbeddable((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YTAB__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YTAB__ORPHAN_DATADESCRIPTIONS:
+				getOrphanDatadescriptions().clear();
+				getOrphanDatadescriptions().addAll((Collection<? extends YDatadescription>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB__TAGS:
+				getTags().clear();
+				return;
+			case ExtensionModelPackage.YTAB__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTAB__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTAB__PROPERTIES:
+				getProperties().clear();
+				return;
+			case ExtensionModelPackage.YTAB__CSS_CLASS:
+				setCssClass(CSS_CLASS_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTAB__CSS_ID:
+				setCssID(CSS_ID_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTAB__PARENT:
+				setParent((YTabSheet)null);
+				return;
+			case ExtensionModelPackage.YTAB__EMBEDDABLE:
+				setEmbeddable((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YTAB__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YTAB__ORPHAN_DATADESCRIPTIONS:
+				getOrphanDatadescriptions().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB__TAGS:
+				return tags != null && !tags.isEmpty();
+			case ExtensionModelPackage.YTAB__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case ExtensionModelPackage.YTAB__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case ExtensionModelPackage.YTAB__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case ExtensionModelPackage.YTAB__CSS_CLASS:
+				return CSS_CLASS_EDEFAULT == null ? cssClass != null : !CSS_CLASS_EDEFAULT.equals(cssClass);
+			case ExtensionModelPackage.YTAB__CSS_ID:
+				return CSS_ID_EDEFAULT == null ? cssID != null : !CSS_ID_EDEFAULT.equals(cssID);
+			case ExtensionModelPackage.YTAB__PARENT:
+				return basicGetParent() != null;
+			case ExtensionModelPackage.YTAB__EMBEDDABLE:
+				return embeddable != null;
+			case ExtensionModelPackage.YTAB__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YTAB__ORPHAN_DATADESCRIPTIONS:
+				return orphanDatadescriptions != null && !orphanDatadescriptions.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YCssAble.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTAB__CSS_CLASS: return CoreModelPackage.YCSS_ABLE__CSS_CLASS;
+				case ExtensionModelPackage.YTAB__CSS_ID: return CoreModelPackage.YCSS_ABLE__CSS_ID;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YCssAble.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCSS_ABLE__CSS_CLASS: return ExtensionModelPackage.YTAB__CSS_CLASS;
+				case CoreModelPackage.YCSS_ABLE__CSS_ID: return ExtensionModelPackage.YTAB__CSS_ID;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tags: ");
+		result.append(tags);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", cssClass: ");
+		result.append(cssClass);
+		result.append(", cssID: ");
+		result.append(cssID);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		return ds != null ? ds.getLabel() : null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTab#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		return ds != null ? ds.getLabelI18nKey() : null;
+	}
+
+	/**
+	 * Creates the datadescription.
+	 *
+	 * @param label
+	 *            the label
+	 * @return the y datadescription
+	 */
+	protected YDatadescription createDatadescription(String label) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabel(label);
+		return dsc;
+	}
+
+	/**
+	 * Creates the datadescription for i18n.
+	 *
+	 * @param i18nKey
+	 *            the i18n key
+	 * @return the y datadescription
+	 */
+	protected YDatadescription createDatadescriptionForI18n(String i18nKey) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabelI18nKey(i18nKey);
+		return dsc;
+	}
+
+} // YTabImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTabSheetImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTabSheetImpl.java
new file mode 100644
index 0000000..5f4bf53
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTabSheetImpl.java
@@ -0,0 +1,285 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YTab Sheet</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabSheetImpl#getTabIndex <em>Tab Index</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTabSheetImpl#getTabs <em>Tabs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTabSheetImpl extends YEmbeddableImpl implements YTabSheet {
+	/**
+	 * The default value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int TAB_INDEX_EDEFAULT = -1;
+	/**
+	 * The cached value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected int tabIndex = TAB_INDEX_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getTabs() <em>Tabs</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getTabs()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YTab> tabs;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected YTabSheetImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YTAB_SHEET;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getTabIndex() {
+		return tabIndex;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTabIndex(int newTabIndex) {
+		int oldTabIndex = tabIndex;
+		tabIndex = newTabIndex;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTAB_SHEET__TAB_INDEX, oldTabIndex, tabIndex));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YTab> getTabs() {
+		if (tabs == null) {
+			tabs = new EObjectContainmentWithInverseEList.Resolving<YTab>(YTab.class, this, ExtensionModelPackage.YTAB_SHEET__TABS, ExtensionModelPackage.YTAB__PARENT);
+		}
+		return tabs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB_SHEET__TABS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getTabs()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB_SHEET__TABS:
+				return ((InternalEList<?>)getTabs()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB_SHEET__TAB_INDEX:
+				return getTabIndex();
+			case ExtensionModelPackage.YTAB_SHEET__TABS:
+				return getTabs();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB_SHEET__TAB_INDEX:
+				setTabIndex((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YTAB_SHEET__TABS:
+				getTabs().clear();
+				getTabs().addAll((Collection<? extends YTab>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB_SHEET__TAB_INDEX:
+				setTabIndex(TAB_INDEX_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTAB_SHEET__TABS:
+				getTabs().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTAB_SHEET__TAB_INDEX:
+				return tabIndex != TAB_INDEX_EDEFAULT;
+			case ExtensionModelPackage.YTAB_SHEET__TABS:
+				return tabs != null && !tabs.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YFocusable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTAB_SHEET__TAB_INDEX: return CoreModelPackage.YFOCUSABLE__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YFocusable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YFOCUSABLE__TAB_INDEX: return ExtensionModelPackage.YTAB_SHEET__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (tabIndex: ");
+		result.append(tabIndex);
+		result.append(')');
+		return result.toString();
+	}
+
+	@Override
+	public void setLabel(String label) {
+		// nothing to do -- tabsheets don't have labels
+	}
+
+	@Override
+	public void setLabelI18nKey(String i18nKey) {
+		// nothing to do -- tabsheets don't have labels
+	}
+	
+	@Override
+	public String getLabel() {
+		return "";
+	}
+
+	@Override
+	public String getLabelI18nKey() {
+		return "";
+	}
+
+} // YTabSheetImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTableImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTableImpl.java
new file mode 100644
index 0000000..af70d20
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTableImpl.java
@@ -0,0 +1,1500 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YColumn;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Table</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#isUseBeanService <em>Use Bean Service</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getColumns <em>Columns</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getItemImageProperty <em>Item Image Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getFilter <em>Filter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getRefresh <em>Refresh</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTableImpl#getSortOrder <em>Sort Order</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTableImpl extends YInputImpl implements YTable {
+	/**
+	 * The cached value of the '{@link #getCollectionBindingEndpoint() <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableCollectionEndpoint collectionBindingEndpoint;
+	/**
+	 * The cached value of the '{@link #getSelectionBindingEndpoint() <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableSelectionEndpoint selectionBindingEndpoint;
+	/**
+	 * The cached value of the '{@link #getMultiSelectionBindingEndpoint() <em>Multi Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMultiSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableMultiSelectionEndpoint multiSelectionBindingEndpoint;
+	/**
+	 * The default value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USE_BEAN_SERVICE_EDEFAULT = false;
+	/**
+	 * The cached value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean useBeanService = USE_BEAN_SERVICE_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YTableDatatype datatype;
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSelectionType SELECTION_TYPE_EDEFAULT = YSelectionType.SINGLE;
+	/**
+	 * The cached value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSelectionType selectionType = SELECTION_TYPE_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object SELECTION_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object selection = SELECTION_EDEFAULT;
+	/**
+	 * The cached value of the '{@link #getMultiSelection() <em>Multi Selection</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMultiSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> multiSelection;
+	/**
+	 * The cached value of the '{@link #getCollection() <em>Collection</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCollection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> collection;
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getColumns() <em>Columns</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumns()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YColumn> columns;
+
+	/**
+	 * The default value of the '{@link #getItemImageProperty() <em>Item Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getItemImageProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ITEM_IMAGE_PROPERTY_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getItemImageProperty() <em>Item Image Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getItemImageProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected String itemImageProperty = ITEM_IMAGE_PROPERTY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getFilter() <em>Filter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object FILTER_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getFilter() <em>Filter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilter()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object filter = FILTER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRefresh() <em>Refresh</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefresh()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object REFRESH_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getRefresh() <em>Refresh</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefresh()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object refresh = REFRESH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getSortOrder() <em>Sort Order</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSortOrder()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YSortColumn> sortOrder;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YTableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YTABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollectionBindingEndpoint()
+	 *         <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint getCollectionBindingEndpoint() {
+		if (collectionBindingEndpoint != null && collectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldCollectionBindingEndpoint = (InternalEObject)collectionBindingEndpoint;
+			collectionBindingEndpoint = (YEmbeddableCollectionEndpoint)eResolveProxy(oldCollectionBindingEndpoint);
+			if (collectionBindingEndpoint != oldCollectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, collectionBindingEndpoint));
+			}
+		}
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint basicGetCollectionBindingEndpoint() {
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new collection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableCollectionEndpoint oldCollectionBindingEndpoint = collectionBindingEndpoint;
+		collectionBindingEndpoint = newCollectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, newCollectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getCollectionBindingEndpoint()
+	 *            <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setCollectionBindingEndpoint(
+			YEmbeddableCollectionEndpoint newCollectionBindingEndpoint) {
+		if (newCollectionBindingEndpoint != collectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (collectionBindingEndpoint != null)
+				msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			if (newCollectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newCollectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			msgs = basicSetCollectionBindingEndpoint(newCollectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT, newCollectionBindingEndpoint, newCollectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionBindingEndpoint()
+	 *         <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint getSelectionBindingEndpoint() {
+		if (selectionBindingEndpoint != null && selectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldSelectionBindingEndpoint = (InternalEObject)selectionBindingEndpoint;
+			selectionBindingEndpoint = (YEmbeddableSelectionEndpoint)eResolveProxy(oldSelectionBindingEndpoint);
+			if (selectionBindingEndpoint != oldSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, selectionBindingEndpoint));
+			}
+		}
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint basicGetSelectionBindingEndpoint() {
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableSelectionEndpoint oldSelectionBindingEndpoint = selectionBindingEndpoint;
+		selectionBindingEndpoint = newSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, newSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getSelectionBindingEndpoint()
+	 *            <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint) {
+		if (newSelectionBindingEndpoint != selectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (selectionBindingEndpoint != null)
+				msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			if (newSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			msgs = basicSetSelectionBindingEndpoint(newSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT, newSelectionBindingEndpoint, newSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '
+	 *         {@link #getMultiSelectionBindingEndpoint()
+	 *         <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint getMultiSelectionBindingEndpoint() {
+		if (multiSelectionBindingEndpoint != null && multiSelectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldMultiSelectionBindingEndpoint = (InternalEObject)multiSelectionBindingEndpoint;
+			multiSelectionBindingEndpoint = (YEmbeddableMultiSelectionEndpoint)eResolveProxy(oldMultiSelectionBindingEndpoint);
+			if (multiSelectionBindingEndpoint != oldMultiSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, multiSelectionBindingEndpoint));
+			}
+		}
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint basicGetMultiSelectionBindingEndpoint() {
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new multi selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableMultiSelectionEndpoint oldMultiSelectionBindingEndpoint = multiSelectionBindingEndpoint;
+		multiSelectionBindingEndpoint = newMultiSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getMultiSelectionBindingEndpoint()
+	 *            <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint) {
+		if (newMultiSelectionBindingEndpoint != multiSelectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (multiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			if (newMultiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newMultiSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			msgs = basicSetMultiSelectionBindingEndpoint(newMultiSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT, newMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isUseBeanService()
+	 *         <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public boolean isUseBeanService() {
+		return useBeanService;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newUseBeanService
+	 *            the new cached value of the '{@link #isUseBeanService()
+	 *            <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public void setUseBeanService(boolean newUseBeanService) {
+		boolean oldUseBeanService = useBeanService;
+		useBeanService = newUseBeanService;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__USE_BEAN_SERVICE, oldUseBeanService, useBeanService));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YTableDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YTableDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTABLE__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y table datatype
+	 * @generated
+	 */
+	public YTableDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YTableDatatype newDatatype) {
+		YTableDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTABLE__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionType()
+	 *         <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public YSelectionType getSelectionType() {
+		return selectionType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionType
+	 *            the new cached value of the '{@link #getSelectionType()
+	 *            <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public void setSelectionType(YSelectionType newSelectionType) {
+		YSelectionType oldSelectionType = selectionType;
+		selectionType = newSelectionType == null ? SELECTION_TYPE_EDEFAULT : newSelectionType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__SELECTION_TYPE, oldSelectionType, selectionType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelection()
+	 *         <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public Object getSelection() {
+		return selection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelection
+	 *            the new cached value of the '{@link #getSelection()
+	 *            <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public void setSelection(Object newSelection) {
+		Object oldSelection = selection;
+		selection = newSelection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__SELECTION, oldSelection, selection));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMultiSelection()
+	 *         <em>Multi Selection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getMultiSelection() {
+		if (multiSelection == null) {
+			multiSelection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YTABLE__MULTI_SELECTION);
+		}
+		return multiSelection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollection()
+	 *         <em>Collection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getCollection() {
+		if (collection == null) {
+			collection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YTABLE__COLLECTION);
+		}
+		return collection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getColumns() <em>Columns</em>}'
+	 *         containment reference list
+	 * @generated
+	 */
+	public EList<YColumn> getColumns() {
+		if (columns == null) {
+			columns = new EObjectContainmentEList.Resolving<YColumn>(YColumn.class, this, ExtensionModelPackage.YTABLE__COLUMNS);
+		}
+		return columns;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getItemImageProperty()
+	 *         <em>Item Image Property</em>}' attribute
+	 * @generated
+	 */
+	public String getItemImageProperty() {
+		return itemImageProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newItemImageProperty
+	 *            the new cached value of the '{@link #getItemImageProperty()
+	 *            <em>Item Image Property</em>}' attribute
+	 * @generated
+	 */
+	public void setItemImageProperty(String newItemImageProperty) {
+		String oldItemImageProperty = itemImageProperty;
+		itemImageProperty = newItemImageProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__ITEM_IMAGE_PROPERTY, oldItemImageProperty, itemImageProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getFilter() <em>Filter</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Object getFilter() {
+		return filter;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newFilter
+	 *            the new cached value of the '{@link #getFilter()
+	 *            <em>Filter</em>}' attribute
+	 * @generated
+	 */
+	public void setFilter(Object newFilter) {
+		Object oldFilter = filter;
+		filter = newFilter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__FILTER, oldFilter, filter));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getRefresh() <em>Refresh</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Object getRefresh() {
+		return refresh;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newRefresh
+	 *            the new cached value of the '{@link #getRefresh()
+	 *            <em>Refresh</em>}' attribute
+	 * @generated
+	 */
+	public void setRefresh(Object newRefresh) {
+		Object oldRefresh = refresh;
+		refresh = newRefresh;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTABLE__REFRESH, oldRefresh, refresh));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<YSortColumn> getSortOrder() {
+		if (sortOrder == null) {
+			sortOrder = new EObjectContainmentEList.Resolving<YSortColumn>(YSortColumn.class, this, ExtensionModelPackage.YTABLE__SORT_ORDER);
+		}
+		return sortOrder;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of selection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable selection endpoint
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpoint() {
+		YEmbeddableSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpoint() {
+		YEmbeddableMultiSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableMultiSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * Creates a new instance of collection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable collection endpoint
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpoint() {
+		YEmbeddableCollectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableCollectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT:
+				if (collectionBindingEndpoint != null)
+					msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+				return basicSetCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT:
+				if (selectionBindingEndpoint != null)
+					msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+				return basicSetSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (multiSelectionBindingEndpoint != null)
+					msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+				return basicSetMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT:
+				return basicSetCollectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT:
+				return basicSetSelectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT:
+				return basicSetMultiSelectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YTABLE__COLUMNS:
+				return ((InternalEList<?>)getColumns()).basicRemove(otherEnd, msgs);
+			case ExtensionModelPackage.YTABLE__SORT_ORDER:
+				return ((InternalEList<?>)getSortOrder()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT:
+				if (resolve) return getCollectionBindingEndpoint();
+				return basicGetCollectionBindingEndpoint();
+			case ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getSelectionBindingEndpoint();
+				return basicGetSelectionBindingEndpoint();
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getMultiSelectionBindingEndpoint();
+				return basicGetMultiSelectionBindingEndpoint();
+			case ExtensionModelPackage.YTABLE__USE_BEAN_SERVICE:
+				return isUseBeanService();
+			case ExtensionModelPackage.YTABLE__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YTABLE__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YTABLE__SELECTION_TYPE:
+				return getSelectionType();
+			case ExtensionModelPackage.YTABLE__SELECTION:
+				return getSelection();
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION:
+				return getMultiSelection();
+			case ExtensionModelPackage.YTABLE__COLLECTION:
+				return getCollection();
+			case ExtensionModelPackage.YTABLE__TYPE:
+				return getType();
+			case ExtensionModelPackage.YTABLE__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YTABLE__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+			case ExtensionModelPackage.YTABLE__COLUMNS:
+				return getColumns();
+			case ExtensionModelPackage.YTABLE__ITEM_IMAGE_PROPERTY:
+				return getItemImageProperty();
+			case ExtensionModelPackage.YTABLE__FILTER:
+				return getFilter();
+			case ExtensionModelPackage.YTABLE__REFRESH:
+				return getRefresh();
+			case ExtensionModelPackage.YTABLE__SORT_ORDER:
+				return getSortOrder();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__USE_BEAN_SERVICE:
+				setUseBeanService((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__DATATYPE:
+				setDatatype((YTableDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__SELECTION_TYPE:
+				setSelectionType((YSelectionType)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__SELECTION:
+				setSelection(newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION:
+				getMultiSelection().clear();
+				getMultiSelection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__COLLECTION:
+				getCollection().clear();
+				getCollection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__COLUMNS:
+				getColumns().clear();
+				getColumns().addAll((Collection<? extends YColumn>)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__ITEM_IMAGE_PROPERTY:
+				setItemImageProperty((String)newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__FILTER:
+				setFilter(newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__REFRESH:
+				setRefresh(newValue);
+				return;
+			case ExtensionModelPackage.YTABLE__SORT_ORDER:
+				getSortOrder().clear();
+				getSortOrder().addAll((Collection<? extends YSortColumn>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YTABLE__USE_BEAN_SERVICE:
+				setUseBeanService(USE_BEAN_SERVICE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTABLE__DATATYPE:
+				setDatatype((YTableDatatype)null);
+				return;
+			case ExtensionModelPackage.YTABLE__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YTABLE__SELECTION_TYPE:
+				setSelectionType(SELECTION_TYPE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTABLE__SELECTION:
+				setSelection(SELECTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION:
+				getMultiSelection().clear();
+				return;
+			case ExtensionModelPackage.YTABLE__COLLECTION:
+				getCollection().clear();
+				return;
+			case ExtensionModelPackage.YTABLE__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YTABLE__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTABLE__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTABLE__COLUMNS:
+				getColumns().clear();
+				return;
+			case ExtensionModelPackage.YTABLE__ITEM_IMAGE_PROPERTY:
+				setItemImageProperty(ITEM_IMAGE_PROPERTY_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTABLE__FILTER:
+				setFilter(FILTER_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTABLE__REFRESH:
+				setRefresh(REFRESH_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTABLE__SORT_ORDER:
+				getSortOrder().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT:
+				return collectionBindingEndpoint != null;
+			case ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT:
+				return selectionBindingEndpoint != null;
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT:
+				return multiSelectionBindingEndpoint != null;
+			case ExtensionModelPackage.YTABLE__USE_BEAN_SERVICE:
+				return useBeanService != USE_BEAN_SERVICE_EDEFAULT;
+			case ExtensionModelPackage.YTABLE__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YTABLE__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YTABLE__SELECTION_TYPE:
+				return selectionType != SELECTION_TYPE_EDEFAULT;
+			case ExtensionModelPackage.YTABLE__SELECTION:
+				return SELECTION_EDEFAULT == null ? selection != null : !SELECTION_EDEFAULT.equals(selection);
+			case ExtensionModelPackage.YTABLE__MULTI_SELECTION:
+				return multiSelection != null && !multiSelection.isEmpty();
+			case ExtensionModelPackage.YTABLE__COLLECTION:
+				return collection != null && !collection.isEmpty();
+			case ExtensionModelPackage.YTABLE__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YTABLE__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YTABLE__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+			case ExtensionModelPackage.YTABLE__COLUMNS:
+				return columns != null && !columns.isEmpty();
+			case ExtensionModelPackage.YTABLE__ITEM_IMAGE_PROPERTY:
+				return ITEM_IMAGE_PROPERTY_EDEFAULT == null ? itemImageProperty != null : !ITEM_IMAGE_PROPERTY_EDEFAULT.equals(itemImageProperty);
+			case ExtensionModelPackage.YTABLE__FILTER:
+				return FILTER_EDEFAULT == null ? filter != null : !FILTER_EDEFAULT.equals(filter);
+			case ExtensionModelPackage.YTABLE__REFRESH:
+				return REFRESH_EDEFAULT == null ? refresh != null : !REFRESH_EDEFAULT.equals(refresh);
+			case ExtensionModelPackage.YTABLE__SORT_ORDER:
+				return sortOrder != null && !sortOrder.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT: return CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTABLE__USE_BEAN_SERVICE: return ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YTABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YTABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YTABLE__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (baseFeatureID) {
+				case ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE: return ExtensionModelPackage.YTABLE__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (useBeanService: ");
+		result.append(useBeanService);
+		result.append(", selectionType: ");
+		result.append(selectionType);
+		result.append(", selection: ");
+		result.append(selection);
+		result.append(", multiSelection: ");
+		result.append(multiSelection);
+		result.append(", collection: ");
+		result.append(collection);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(", itemImageProperty: ");
+		result.append(itemImageProperty);
+		result.append(", filter: ");
+		result.append(filter);
+		result.append(", refresh: ");
+		result.append(refresh);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+	
+} // YUiTableImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTextAreaImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTextAreaImpl.java
new file mode 100644
index 0000000..247a9ed
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTextAreaImpl.java
@@ -0,0 +1,722 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YUi Text Area</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl#isWordWrap <em>Word Wrap</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextAreaImpl#getRows <em>Rows</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTextAreaImpl extends YInputImpl implements YTextArea {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YTextAreaDatatype datatype;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isWordWrap() <em>Word Wrap</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isWordWrap()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean WORD_WRAP_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isWordWrap() <em>Word Wrap</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isWordWrap()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean wordWrap = WORD_WRAP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRows() <em>Rows</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRows()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int ROWS_EDEFAULT = 3;
+
+	/**
+	 * The cached value of the '{@link #getRows() <em>Rows</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRows()
+	 * @generated
+	 * @ordered
+	 */
+	protected int rows = ROWS_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YTextAreaImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YTEXT_AREA;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTEXT_AREA__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_AREA__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YTextAreaDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YTextAreaDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTEXT_AREA__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text area datatype
+	 * @generated
+	 */
+	public YTextAreaDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YTextAreaDatatype newDatatype) {
+		YTextAreaDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_AREA__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_AREA__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isWordWrap() <em>Word Wrap</em>}
+	 *         ' attribute
+	 * @generated
+	 */
+	public boolean isWordWrap() {
+		return wordWrap;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newWordWrap
+	 *            the new cached value of the '{@link #isWordWrap()
+	 *            <em>Word Wrap</em>}' attribute
+	 * @generated
+	 */
+	public void setWordWrap(boolean newWordWrap) {
+		boolean oldWordWrap = wordWrap;
+		wordWrap = newWordWrap;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_AREA__WORD_WRAP, oldWordWrap, wordWrap));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getRows() <em>Rows</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public int getRows() {
+		return rows;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newRows
+	 *            the new cached value of the '{@link #getRows() <em>Rows</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setRows(int newRows) {
+		int oldRows = rows;
+		rows = newRows;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_AREA__ROWS, oldRows, rows));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+	
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YTEXT_AREA__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YTEXT_AREA__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YTEXT_AREA__VALUE:
+				return getValue();
+			case ExtensionModelPackage.YTEXT_AREA__WORD_WRAP:
+				return isWordWrap();
+			case ExtensionModelPackage.YTEXT_AREA__ROWS:
+				return getRows();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+ 
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__DATATYPE:
+				setDatatype((YTextAreaDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__VALUE:
+				setValue((String)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__WORD_WRAP:
+				setWordWrap((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__ROWS:
+				setRows((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__DATATYPE:
+				setDatatype((YTextAreaDatatype)null);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__WORD_WRAP:
+				setWordWrap(WORD_WRAP_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTEXT_AREA__ROWS:
+				setRows(ROWS_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YTEXT_AREA__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YTEXT_AREA__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YTEXT_AREA__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+			case ExtensionModelPackage.YTEXT_AREA__WORD_WRAP:
+				return wordWrap != WORD_WRAP_EDEFAULT;
+			case ExtensionModelPackage.YTEXT_AREA__ROWS:
+				return rows != ROWS_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YTEXT_AREA__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(", wordWrap: ");
+		result.append(wordWrap);
+		result.append(", rows: ");
+		result.append(rows);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+	
+} //YUiTextAreaImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTextFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTextFieldImpl.java
new file mode 100644
index 0000000..892e1df
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTextFieldImpl.java
@@ -0,0 +1,618 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.custom.ChangeAdapter;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <em><b>YUi Text Field</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextFieldImpl#getValueBindingEndpoint()
+ * <em>Value Binding Endpoint</em>}</li>
+ * <li>
+ * {@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextFieldImpl#getDatatype
+ * <em>Datatype</em>}</li>
+ * <li>
+ * {@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextFieldImpl#getDatadescription
+ * <em>Datadescription</em>}</li>
+ * </ul>
+ * 
+ * 
+ * @generated
+ */
+public class YTextFieldImpl extends YInputImpl implements YTextField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YTextDatatype datatype;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YTextFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YTEXT_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YTextDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YTextDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTEXT_FIELD__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y text datatype
+	 * @generated
+	 */
+	public YTextDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YTextDatatype newDatatype) {
+		YTextDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_FIELD__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTEXT_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of value endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		YEmbeddableValueEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableValueEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * Returns a new instance of the change adapter config. Has to be overridden
+	 * by subclasses.
+	 *
+	 * @return the change adapter. config
+	 * @generated NOT
+	 */
+	protected ChangeAdapter.Config createNewChangeAdapterConfig() {
+		return new ChangeAdapter.Config(
+				ExtensionModelPackage.Literals.YTEXT_FIELD__VALUE,
+				Notification.SET);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YTEXT_FIELD__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YTEXT_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_FIELD__DATATYPE:
+				setDatatype((YTextDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE:
+				setValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YTEXT_FIELD__DATATYPE:
+				setDatatype((YTextDatatype)null);
+				return;
+			case ExtensionModelPackage.YTEXT_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YTEXT_FIELD__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YTEXT_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YTEXT_FIELD__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YTEXT_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YUiTextFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTextSearchFieldImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTextSearchFieldImpl.java
new file mode 100644
index 0000000..8d65296
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTextSearchFieldImpl.java
@@ -0,0 +1,662 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesFactory;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchWildcards;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YText Search Field</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextSearchFieldImpl#getValueBindingEndpoint <em>Value Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextSearchFieldImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextSearchFieldImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextSearchFieldImpl#getWildcard <em>Wildcard</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTextSearchFieldImpl#getPropertyPath <em>Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTextSearchFieldImpl extends YInputImpl implements YTextSearchField {
+	/**
+	 * The cached value of the '{@link #getValueBindingEndpoint() <em>Value Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableValueEndpoint valueBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getWildcard() <em>Wildcard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWildcard()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSearchWildcards WILDCARD_EDEFAULT = YSearchWildcards.GT;
+
+	/**
+	 * The cached value of the '{@link #getWildcard() <em>Wildcard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWildcard()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSearchWildcards wildcard = WILDCARD_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROPERTY_PATH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPropertyPath() <em>Property Path</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPropertyPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected String propertyPath = PROPERTY_PATH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YTextSearchFieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YTEXT_SEARCH_FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValueBindingEndpoint()
+	 *         <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint getValueBindingEndpoint() {
+		if (valueBindingEndpoint != null && valueBindingEndpoint.eIsProxy()) {
+			InternalEObject oldValueBindingEndpoint = (InternalEObject)valueBindingEndpoint;
+			valueBindingEndpoint = (YEmbeddableValueEndpoint)eResolveProxy(oldValueBindingEndpoint);
+			if (valueBindingEndpoint != oldValueBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, valueBindingEndpoint));
+			}
+		}
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint basicGetValueBindingEndpoint() {
+		return valueBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new value binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableValueEndpoint oldValueBindingEndpoint = valueBindingEndpoint;
+		valueBindingEndpoint = newValueBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, oldValueBindingEndpoint, newValueBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValueBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getValueBindingEndpoint()
+	 *            <em>Value Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setValueBindingEndpoint(YEmbeddableValueEndpoint newValueBindingEndpoint) {
+		if (newValueBindingEndpoint != valueBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (valueBindingEndpoint != null)
+				msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			if (newValueBindingEndpoint != null)
+				msgs = ((InternalEObject)newValueBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+			msgs = basicSetValueBindingEndpoint(newValueBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT, newValueBindingEndpoint, newValueBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTEXT_SEARCH_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_SEARCH_FIELD__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getValue() <em>Value</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newValue
+	 *            the new cached value of the '{@link #getValue()
+	 *            <em>Value</em>}' attribute
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getWildcard() <em>Wildcard</em>}
+	 *         ' attribute
+	 * @generated
+	 */
+	public YSearchWildcards getWildcard() {
+		return wildcard;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newWildcard
+	 *            the new cached value of the '{@link #getWildcard()
+	 *            <em>Wildcard</em>}' attribute
+	 * @generated
+	 */
+	public void setWildcard(YSearchWildcards newWildcard) {
+		YSearchWildcards oldWildcard = wildcard;
+		wildcard = newWildcard == null ? WILDCARD_EDEFAULT : newWildcard;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_SEARCH_FIELD__WILDCARD, oldWildcard, wildcard));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getPropertyPath()
+	 *         <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public String getPropertyPath() {
+		return propertyPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newPropertyPath
+	 *            the new cached value of the '{@link #getPropertyPath()
+	 *            <em>Property Path</em>}' attribute
+	 * @generated
+	 */
+	public void setPropertyPath(String newPropertyPath) {
+		String oldPropertyPath = propertyPath;
+		propertyPath = newPropertyPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTEXT_SEARCH_FIELD__PROPERTY_PATH, oldPropertyPath, propertyPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable value endpoint
+	 * @generated
+	 */
+	public YEmbeddableValueEndpoint createValueEndpoint() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				if (valueBindingEndpoint != null)
+					msgs = ((InternalEObject)valueBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_VALUE_ENDPOINT__ELEMENT, YEmbeddableValueEndpoint.class, msgs);
+				return basicSetValueBindingEndpoint((YEmbeddableValueEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				return basicSetValueBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				if (resolve) return getValueBindingEndpoint();
+				return basicGetValueBindingEndpoint();
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE:
+				return getValue();
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__WILDCARD:
+				return getWildcard();
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__PROPERTY_PATH:
+				return getPropertyPath();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE:
+				setValue((String)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__WILDCARD:
+				setWildcard((YSearchWildcards)newValue);
+				return;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__PROPERTY_PATH:
+				setPropertyPath((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				setValueBindingEndpoint((YEmbeddableValueEndpoint)null);
+				return;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__WILDCARD:
+				setWildcard(WILDCARD_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__PROPERTY_PATH:
+				setPropertyPath(PROPERTY_PATH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT:
+				return valueBindingEndpoint != null;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__WILDCARD:
+				return wildcard != WILDCARD_EDEFAULT;
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD__PROPERTY_PATH:
+				return PROPERTY_PATH_EDEFAULT == null ? propertyPath != null : !PROPERTY_PATH_EDEFAULT.equals(propertyPath);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT: return CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YValueBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YVALUE_BINDABLE__VALUE_BINDING_ENDPOINT: return ExtensionModelPackage.YTEXT_SEARCH_FIELD__VALUE_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(", wildcard: ");
+		result.append(wildcard);
+		result.append(", propertyPath: ");
+		result.append(propertyPath);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#createDatadescription(java.lang.String)
+	 */
+	protected YDatadescription createDatadescription(String label) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabel(label);
+		return dsc;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YEmbeddableImpl#createDatadescriptionForI18n(java.lang.String)
+	 */
+	protected YDatadescription createDatadescriptionForI18n(String i18nKey) {
+		YDatadescription dsc = DatatypesFactory.eINSTANCE
+				.createYDatadescription();
+		dsc.setLabelI18nKey(i18nKey);
+		return dsc;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} //YTextSearchFieldImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YToggleButtonImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YToggleButtonImpl.java
new file mode 100644
index 0000000..8c37d77
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YToggleButtonImpl.java
@@ -0,0 +1,504 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivateable;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YToggle Button</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YToggleButtonImpl#isInitialActivated <em>Initial Activated</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YToggleButtonImpl#isActivated <em>Activated</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YToggleButtonImpl#getTabIndex <em>Tab Index</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YToggleButtonImpl#getDatadescription <em>Datadescription</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YToggleButtonImpl extends YActionImpl implements YToggleButton {
+	/**
+	 * The default value of the '{@link #isInitialActivated() <em>Initial Activated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialActivated()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIAL_ACTIVATED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isInitialActivated() <em>Initial Activated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitialActivated()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initialActivated = INITIAL_ACTIVATED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isActivated() <em>Activated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isActivated()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ACTIVATED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isActivated() <em>Activated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isActivated()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean activated = ACTIVATED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int TAB_INDEX_EDEFAULT = -1;
+
+	/**
+	 * The cached value of the '{@link #getTabIndex() <em>Tab Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTabIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected int tabIndex = TAB_INDEX_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YToggleButtonImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YTOGGLE_BUTTON;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isInitialActivated()
+	 *         <em>Initial Activated</em>}' attribute
+	 * @generated
+	 */
+	public boolean isInitialActivated() {
+		return initialActivated;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newInitialActivated
+	 *            the new cached value of the '{@link #isInitialActivated()
+	 *            <em>Initial Activated</em>}' attribute
+	 * @generated
+	 */
+	public void setInitialActivated(boolean newInitialActivated) {
+		boolean oldInitialActivated = initialActivated;
+		initialActivated = newInitialActivated;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTOGGLE_BUTTON__INITIAL_ACTIVATED, oldInitialActivated, initialActivated));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isActivated()
+	 *         <em>Activated</em>}' attribute
+	 * @generated
+	 */
+	public boolean isActivated() {
+		return activated;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newActivated
+	 *            the new cached value of the '{@link #isActivated()
+	 *            <em>Activated</em>}' attribute
+	 * @generated
+	 */
+	public void setActivated(boolean newActivated) {
+		boolean oldActivated = activated;
+		activated = newActivated;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTOGGLE_BUTTON__ACTIVATED, oldActivated, activated));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTabIndex()
+	 *         <em>Tab Index</em>}' attribute
+	 * @generated
+	 */
+	public int getTabIndex() {
+		return tabIndex;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTabIndex
+	 *            the new cached value of the '{@link #getTabIndex()
+	 *            <em>Tab Index</em>}' attribute
+	 * @generated
+	 */
+	public void setTabIndex(int newTabIndex) {
+		int oldTabIndex = tabIndex;
+		tabIndex = newTabIndex;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTOGGLE_BUTTON__TAB_INDEX, oldTabIndex, tabIndex));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTOGGLE_BUTTON__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTOGGLE_BUTTON__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTOGGLE_BUTTON__INITIAL_ACTIVATED:
+				return isInitialActivated();
+			case ExtensionModelPackage.YTOGGLE_BUTTON__ACTIVATED:
+				return isActivated();
+			case ExtensionModelPackage.YTOGGLE_BUTTON__TAB_INDEX:
+				return getTabIndex();
+			case ExtensionModelPackage.YTOGGLE_BUTTON__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTOGGLE_BUTTON__INITIAL_ACTIVATED:
+				setInitialActivated((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YTOGGLE_BUTTON__ACTIVATED:
+				setActivated((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YTOGGLE_BUTTON__TAB_INDEX:
+				setTabIndex((Integer)newValue);
+				return;
+			case ExtensionModelPackage.YTOGGLE_BUTTON__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTOGGLE_BUTTON__INITIAL_ACTIVATED:
+				setInitialActivated(INITIAL_ACTIVATED_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTOGGLE_BUTTON__ACTIVATED:
+				setActivated(ACTIVATED_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTOGGLE_BUTTON__TAB_INDEX:
+				setTabIndex(TAB_INDEX_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTOGGLE_BUTTON__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTOGGLE_BUTTON__INITIAL_ACTIVATED:
+				return initialActivated != INITIAL_ACTIVATED_EDEFAULT;
+			case ExtensionModelPackage.YTOGGLE_BUTTON__ACTIVATED:
+				return activated != ACTIVATED_EDEFAULT;
+			case ExtensionModelPackage.YTOGGLE_BUTTON__TAB_INDEX:
+				return tabIndex != TAB_INDEX_EDEFAULT;
+			case ExtensionModelPackage.YTOGGLE_BUTTON__DATADESCRIPTION:
+				return datadescription != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YActivateable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTOGGLE_BUTTON__INITIAL_ACTIVATED: return CoreModelPackage.YACTIVATEABLE__INITIAL_ACTIVATED;
+				case ExtensionModelPackage.YTOGGLE_BUTTON__ACTIVATED: return CoreModelPackage.YACTIVATEABLE__ACTIVATED;
+				default: return -1;
+			}
+		}
+		if (baseClass == YFocusable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTOGGLE_BUTTON__TAB_INDEX: return CoreModelPackage.YFOCUSABLE__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YActivateable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YACTIVATEABLE__INITIAL_ACTIVATED: return ExtensionModelPackage.YTOGGLE_BUTTON__INITIAL_ACTIVATED;
+				case CoreModelPackage.YACTIVATEABLE__ACTIVATED: return ExtensionModelPackage.YTOGGLE_BUTTON__ACTIVATED;
+				default: return -1;
+			}
+		}
+		if (baseClass == YFocusable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YFOCUSABLE__TAB_INDEX: return ExtensionModelPackage.YTOGGLE_BUTTON__TAB_INDEX;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (initialActivated: ");
+		result.append(initialActivated);
+		result.append(", activated: ");
+		result.append(activated);
+		result.append(", tabIndex: ");
+		result.append(tabIndex);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YActionImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} //YToggleButtonImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTreeImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTreeImpl.java
new file mode 100644
index 0000000..9f26a2c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YTreeImpl.java
@@ -0,0 +1,1265 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSelectionType;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTree;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YTree</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getCollectionBindingEndpoint <em>Collection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getSelectionBindingEndpoint <em>Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getMultiSelectionBindingEndpoint <em>Multi Selection Binding Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#isUseBeanService <em>Use Bean Service</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getDatadescription <em>Datadescription</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getSelectionType <em>Selection Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getSelection <em>Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getMultiSelection <em>Multi Selection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getEmfNsURI <em>Emf Ns URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YTreeImpl#getTypeQualifiedName <em>Type Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YTreeImpl extends YInputImpl implements YTree {
+	/**
+	 * The cached value of the '{@link #getCollectionBindingEndpoint() <em>Collection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableCollectionEndpoint collectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getSelectionBindingEndpoint() <em>Selection Binding Endpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableSelectionEndpoint selectionBindingEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelectionBindingEndpoint()
+	 * <em>Multi Selection Binding Endpoint</em>}' reference. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getMultiSelectionBindingEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddableMultiSelectionEndpoint multiSelectionBindingEndpoint;
+
+	/**
+	 * The default value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USE_BEAN_SERVICE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUseBeanService() <em>Use Bean Service</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUseBeanService()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean useBeanService = USE_BEAN_SERVICE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected YTreeDatatype datatype;
+
+	/**
+	 * The cached value of the '{@link #getDatadescription() <em>Datadescription</em>}' reference.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getDatadescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected YDatadescription datadescription;
+
+	/**
+	 * The default value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YSelectionType SELECTION_TYPE_EDEFAULT = YSelectionType.SINGLE;
+
+	/**
+	 * The cached value of the '{@link #getSelectionType() <em>Selection Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #getSelectionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected YSelectionType selectionType = SELECTION_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object SELECTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSelection() <em>Selection</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object selection = SELECTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMultiSelection() <em>Multi Selection</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMultiSelection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> multiSelection;
+
+	/**
+	 * The cached value of the '{@link #getCollection() <em>Collection</em>}' attribute list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCollection()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Object> collection;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected Class<?> type;
+
+	/**
+	 * The default value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EMF_NS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEmfNsURI() <em>Emf Ns URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEmfNsURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String emfNsURI = EMF_NS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypeQualifiedName() <em>Type Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String typeQualifiedName = TYPE_QUALIFIED_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YTreeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YTREE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollectionBindingEndpoint()
+	 *         <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint getCollectionBindingEndpoint() {
+		if (collectionBindingEndpoint != null && collectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldCollectionBindingEndpoint = (InternalEObject)collectionBindingEndpoint;
+			collectionBindingEndpoint = (YEmbeddableCollectionEndpoint)eResolveProxy(oldCollectionBindingEndpoint);
+			if (collectionBindingEndpoint != oldCollectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, collectionBindingEndpoint));
+			}
+		}
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint basicGetCollectionBindingEndpoint() {
+		return collectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new collection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionBindingEndpoint(YEmbeddableCollectionEndpoint newCollectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableCollectionEndpoint oldCollectionBindingEndpoint = collectionBindingEndpoint;
+		collectionBindingEndpoint = newCollectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT, oldCollectionBindingEndpoint, newCollectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newCollectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getCollectionBindingEndpoint()
+	 *            <em>Collection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setCollectionBindingEndpoint(
+			YEmbeddableCollectionEndpoint newCollectionBindingEndpoint) {
+		if (newCollectionBindingEndpoint != collectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (collectionBindingEndpoint != null)
+				msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			if (newCollectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newCollectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+			msgs = basicSetCollectionBindingEndpoint(newCollectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT, newCollectionBindingEndpoint, newCollectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionBindingEndpoint()
+	 *         <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint getSelectionBindingEndpoint() {
+		if (selectionBindingEndpoint != null && selectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldSelectionBindingEndpoint = (InternalEObject)selectionBindingEndpoint;
+			selectionBindingEndpoint = (YEmbeddableSelectionEndpoint)eResolveProxy(oldSelectionBindingEndpoint);
+			if (selectionBindingEndpoint != oldSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, selectionBindingEndpoint));
+			}
+		}
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint basicGetSelectionBindingEndpoint() {
+		return selectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint,
+			NotificationChain msgs) {
+		YEmbeddableSelectionEndpoint oldSelectionBindingEndpoint = selectionBindingEndpoint;
+		selectionBindingEndpoint = newSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT, oldSelectionBindingEndpoint, newSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getSelectionBindingEndpoint()
+	 *            <em>Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setSelectionBindingEndpoint(
+			YEmbeddableSelectionEndpoint newSelectionBindingEndpoint) {
+		if (newSelectionBindingEndpoint != selectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (selectionBindingEndpoint != null)
+				msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			if (newSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+			msgs = basicSetSelectionBindingEndpoint(newSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT, newSelectionBindingEndpoint, newSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '
+	 *         {@link #getMultiSelectionBindingEndpoint()
+	 *         <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint getMultiSelectionBindingEndpoint() {
+		if (multiSelectionBindingEndpoint != null && multiSelectionBindingEndpoint.eIsProxy()) {
+			InternalEObject oldMultiSelectionBindingEndpoint = (InternalEObject)multiSelectionBindingEndpoint;
+			multiSelectionBindingEndpoint = (YEmbeddableMultiSelectionEndpoint)eResolveProxy(oldMultiSelectionBindingEndpoint);
+			if (multiSelectionBindingEndpoint != oldMultiSelectionBindingEndpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, multiSelectionBindingEndpoint));
+			}
+		}
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint basicGetMultiSelectionBindingEndpoint() {
+		return multiSelectionBindingEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new multi selection binding endpoint
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	public NotificationChain basicSetMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint, NotificationChain msgs) {
+		YEmbeddableMultiSelectionEndpoint oldMultiSelectionBindingEndpoint = multiSelectionBindingEndpoint;
+		multiSelectionBindingEndpoint = newMultiSelectionBindingEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT, oldMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMultiSelectionBindingEndpoint
+	 *            the new cached value of the '
+	 *            {@link #getMultiSelectionBindingEndpoint()
+	 *            <em>Multi Selection Binding Endpoint</em>}' reference
+	 * @generated
+	 */
+	public void setMultiSelectionBindingEndpoint(YEmbeddableMultiSelectionEndpoint newMultiSelectionBindingEndpoint) {
+		if (newMultiSelectionBindingEndpoint != multiSelectionBindingEndpoint) {
+			NotificationChain msgs = null;
+			if (multiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			if (newMultiSelectionBindingEndpoint != null)
+				msgs = ((InternalEObject)newMultiSelectionBindingEndpoint).eInverseAdd(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+			msgs = basicSetMultiSelectionBindingEndpoint(newMultiSelectionBindingEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT, newMultiSelectionBindingEndpoint, newMultiSelectionBindingEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isUseBeanService()
+	 *         <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public boolean isUseBeanService() {
+		return useBeanService;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newUseBeanService
+	 *            the new cached value of the '{@link #isUseBeanService()
+	 *            <em>Use Bean Service</em>}' attribute
+	 * @generated
+	 */
+	public void setUseBeanService(boolean newUseBeanService) {
+		boolean oldUseBeanService = useBeanService;
+		useBeanService = newUseBeanService;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__USE_BEAN_SERVICE, oldUseBeanService, useBeanService));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatatype() <em>Datatype</em>}
+	 *         ' reference
+	 * @generated
+	 */
+	public YTreeDatatype getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (YTreeDatatype)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTREE__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y tree datatype
+	 * @generated
+	 */
+	public YTreeDatatype basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatatype
+	 *            the new cached value of the '{@link #getDatatype()
+	 *            <em>Datatype</em>}' reference
+	 * @generated
+	 */
+	public void setDatatype(YTreeDatatype newDatatype) {
+		YTreeDatatype oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getDatadescription()
+	 *         <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public YDatadescription getDatadescription() {
+		if (datadescription != null && datadescription.eIsProxy()) {
+			InternalEObject oldDatadescription = (InternalEObject)datadescription;
+			datadescription = (YDatadescription)eResolveProxy(oldDatadescription);
+			if (datadescription != oldDatadescription) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YTREE__DATADESCRIPTION, oldDatadescription, datadescription));
+			}
+		}
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y datadescription
+	 * @generated
+	 */
+	public YDatadescription basicGetDatadescription() {
+		return datadescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newDatadescription
+	 *            the new cached value of the '{@link #getDatadescription()
+	 *            <em>Datadescription</em>}' reference
+	 * @generated
+	 */
+	public void setDatadescription(YDatadescription newDatadescription) {
+		YDatadescription oldDatadescription = datadescription;
+		datadescription = newDatadescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__DATADESCRIPTION, oldDatadescription, datadescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelectionType()
+	 *         <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public YSelectionType getSelectionType() {
+		return selectionType;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelectionType
+	 *            the new cached value of the '{@link #getSelectionType()
+	 *            <em>Selection Type</em>}' attribute
+	 * @generated
+	 */
+	public void setSelectionType(YSelectionType newSelectionType) {
+		YSelectionType oldSelectionType = selectionType;
+		selectionType = newSelectionType == null ? SELECTION_TYPE_EDEFAULT : newSelectionType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__SELECTION_TYPE, oldSelectionType, selectionType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getSelection()
+	 *         <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public Object getSelection() {
+		return selection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSelection
+	 *            the new cached value of the '{@link #getSelection()
+	 *            <em>Selection</em>}' attribute
+	 * @generated
+	 */
+	public void setSelection(Object newSelection) {
+		Object oldSelection = selection;
+		selection = newSelection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__SELECTION, oldSelection, selection));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getMultiSelection()
+	 *         <em>Multi Selection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getMultiSelection() {
+		if (multiSelection == null) {
+			multiSelection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YTREE__MULTI_SELECTION);
+		}
+		return multiSelection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCollection()
+	 *         <em>Collection</em>}' attribute list
+	 * @generated
+	 */
+	public EList<Object> getCollection() {
+		if (collection == null) {
+			collection = new EDataTypeUniqueEList<Object>(Object.class, this, ExtensionModelPackage.YTREE__COLLECTION);
+		}
+		return collection;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getType() <em>Type</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newType
+	 *            the new cached value of the '{@link #getType() <em>Type</em>}'
+	 *            attribute
+	 * @generated
+	 */
+	public void setType(Class<?> newType) {
+		Class<?> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getEmfNsURI()
+	 *         <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public String getEmfNsURI() {
+		return emfNsURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newEmfNsURI
+	 *            the new cached value of the '{@link #getEmfNsURI()
+	 *            <em>Emf Ns URI</em>}' attribute
+	 * @generated
+	 */
+	public void setEmfNsURI(String newEmfNsURI) {
+		String oldEmfNsURI = emfNsURI;
+		emfNsURI = newEmfNsURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__EMF_NS_URI, oldEmfNsURI, emfNsURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTypeQualifiedName()
+	 *         <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public String getTypeQualifiedName() {
+		return typeQualifiedName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTypeQualifiedName
+	 *            the new cached value of the '{@link #getTypeQualifiedName()
+	 *            <em>Type Qualified Name</em>}' attribute
+	 * @generated
+	 */
+	public void setTypeQualifiedName(String newTypeQualifiedName) {
+		String oldTypeQualifiedName = typeQualifiedName;
+		typeQualifiedName = newTypeQualifiedName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YTREE__TYPE_QUALIFIED_NAME, oldTypeQualifiedName, typeQualifiedName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpointGen() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Creates a new instance of selection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableSelectionEndpoint createSelectionEndpoint() {
+		YEmbeddableSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable multi selection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableMultiSelectionEndpoint createMultiSelectionEndpoint() {
+		YEmbeddableMultiSelectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableMultiSelectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * Creates a new instance of collection endpoint with a reference to that
+	 * embeddable.
+	 *
+	 * @return the y embeddable collection endpoint
+	 * @generated NOT
+	 */
+	public YEmbeddableCollectionEndpoint createCollectionEndpoint() {
+		YEmbeddableCollectionEndpoint ep = CoreModelFactory.eINSTANCE
+				.createYEmbeddableCollectionEndpoint();
+		ep.setElement(this);
+		return ep;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT:
+				if (collectionBindingEndpoint != null)
+					msgs = ((InternalEObject)collectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_COLLECTION_ENDPOINT__ELEMENT, YEmbeddableCollectionEndpoint.class, msgs);
+				return basicSetCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT:
+				if (selectionBindingEndpoint != null)
+					msgs = ((InternalEObject)selectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_SELECTION_ENDPOINT__ELEMENT, YEmbeddableSelectionEndpoint.class, msgs);
+				return basicSetSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)otherEnd, msgs);
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (multiSelectionBindingEndpoint != null)
+					msgs = ((InternalEObject)multiSelectionBindingEndpoint).eInverseRemove(this, CoreModelPackage.YEMBEDDABLE_MULTI_SELECTION_ENDPOINT__ELEMENT, YEmbeddableMultiSelectionEndpoint.class, msgs);
+				return basicSetMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT:
+				return basicSetCollectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT:
+				return basicSetSelectionBindingEndpoint(null, msgs);
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT:
+				return basicSetMultiSelectionBindingEndpoint(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT:
+				if (resolve) return getCollectionBindingEndpoint();
+				return basicGetCollectionBindingEndpoint();
+			case ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getSelectionBindingEndpoint();
+				return basicGetSelectionBindingEndpoint();
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT:
+				if (resolve) return getMultiSelectionBindingEndpoint();
+				return basicGetMultiSelectionBindingEndpoint();
+			case ExtensionModelPackage.YTREE__USE_BEAN_SERVICE:
+				return isUseBeanService();
+			case ExtensionModelPackage.YTREE__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case ExtensionModelPackage.YTREE__DATADESCRIPTION:
+				if (resolve) return getDatadescription();
+				return basicGetDatadescription();
+			case ExtensionModelPackage.YTREE__SELECTION_TYPE:
+				return getSelectionType();
+			case ExtensionModelPackage.YTREE__SELECTION:
+				return getSelection();
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION:
+				return getMultiSelection();
+			case ExtensionModelPackage.YTREE__COLLECTION:
+				return getCollection();
+			case ExtensionModelPackage.YTREE__TYPE:
+				return getType();
+			case ExtensionModelPackage.YTREE__EMF_NS_URI:
+				return getEmfNsURI();
+			case ExtensionModelPackage.YTREE__TYPE_QUALIFIED_NAME:
+				return getTypeQualifiedName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__USE_BEAN_SERVICE:
+				setUseBeanService((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__DATATYPE:
+				setDatatype((YTreeDatatype)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__DATADESCRIPTION:
+				setDatadescription((YDatadescription)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__SELECTION_TYPE:
+				setSelectionType((YSelectionType)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__SELECTION:
+				setSelection(newValue);
+				return;
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION:
+				getMultiSelection().clear();
+				getMultiSelection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__COLLECTION:
+				getCollection().clear();
+				getCollection().addAll((Collection<? extends Object>)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__TYPE:
+				setType((Class<?>)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__EMF_NS_URI:
+				setEmfNsURI((String)newValue);
+				return;
+			case ExtensionModelPackage.YTREE__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT:
+				setCollectionBindingEndpoint((YEmbeddableCollectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT:
+				setSelectionBindingEndpoint((YEmbeddableSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT:
+				setMultiSelectionBindingEndpoint((YEmbeddableMultiSelectionEndpoint)null);
+				return;
+			case ExtensionModelPackage.YTREE__USE_BEAN_SERVICE:
+				setUseBeanService(USE_BEAN_SERVICE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTREE__DATATYPE:
+				setDatatype((YTreeDatatype)null);
+				return;
+			case ExtensionModelPackage.YTREE__DATADESCRIPTION:
+				setDatadescription((YDatadescription)null);
+				return;
+			case ExtensionModelPackage.YTREE__SELECTION_TYPE:
+				setSelectionType(SELECTION_TYPE_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTREE__SELECTION:
+				setSelection(SELECTION_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION:
+				getMultiSelection().clear();
+				return;
+			case ExtensionModelPackage.YTREE__COLLECTION:
+				getCollection().clear();
+				return;
+			case ExtensionModelPackage.YTREE__TYPE:
+				setType((Class<?>)null);
+				return;
+			case ExtensionModelPackage.YTREE__EMF_NS_URI:
+				setEmfNsURI(EMF_NS_URI_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YTREE__TYPE_QUALIFIED_NAME:
+				setTypeQualifiedName(TYPE_QUALIFIED_NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT:
+				return collectionBindingEndpoint != null;
+			case ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT:
+				return selectionBindingEndpoint != null;
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT:
+				return multiSelectionBindingEndpoint != null;
+			case ExtensionModelPackage.YTREE__USE_BEAN_SERVICE:
+				return useBeanService != USE_BEAN_SERVICE_EDEFAULT;
+			case ExtensionModelPackage.YTREE__DATATYPE:
+				return datatype != null;
+			case ExtensionModelPackage.YTREE__DATADESCRIPTION:
+				return datadescription != null;
+			case ExtensionModelPackage.YTREE__SELECTION_TYPE:
+				return selectionType != SELECTION_TYPE_EDEFAULT;
+			case ExtensionModelPackage.YTREE__SELECTION:
+				return SELECTION_EDEFAULT == null ? selection != null : !SELECTION_EDEFAULT.equals(selection);
+			case ExtensionModelPackage.YTREE__MULTI_SELECTION:
+				return multiSelection != null && !multiSelection.isEmpty();
+			case ExtensionModelPackage.YTREE__COLLECTION:
+				return collection != null && !collection.isEmpty();
+			case ExtensionModelPackage.YTREE__TYPE:
+				return type != null;
+			case ExtensionModelPackage.YTREE__EMF_NS_URI:
+				return EMF_NS_URI_EDEFAULT == null ? emfNsURI != null : !EMF_NS_URI_EDEFAULT.equals(emfNsURI);
+			case ExtensionModelPackage.YTREE__TYPE_QUALIFIED_NAME:
+				return TYPE_QUALIFIED_NAME_EDEFAULT == null ? typeQualifiedName != null : !TYPE_QUALIFIED_NAME_EDEFAULT.equals(typeQualifiedName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT: return CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT: return CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YTREE__USE_BEAN_SERVICE: return ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YBindable.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == YCollectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YCOLLECTION_BINDABLE__COLLECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YTREE__COLLECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSELECTION_BINDABLE__SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YTREE__SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMultiSelectionBindable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMULTI_SELECTION_BINDABLE__MULTI_SELECTION_BINDING_ENDPOINT: return ExtensionModelPackage.YTREE__MULTI_SELECTION_BINDING_ENDPOINT;
+				default: return -1;
+			}
+		}
+		if (baseClass == YBeanServiceConsumer.class) {
+			switch (baseFeatureID) {
+				case ExtensionModelPackage.YBEAN_SERVICE_CONSUMER__USE_BEAN_SERVICE: return ExtensionModelPackage.YTREE__USE_BEAN_SERVICE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (useBeanService: ");
+		result.append(useBeanService);
+		result.append(", selectionType: ");
+		result.append(selectionType);
+		result.append(", selection: ");
+		result.append(selection);
+		result.append(", multiSelection: ");
+		result.append(multiSelection);
+		result.append(", collection: ");
+		result.append(collection);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", emfNsURI: ");
+		result.append(emfNsURI);
+		result.append(", typeQualifiedName: ");
+		result.append(typeQualifiedName);
+		result.append(')');
+		return result.toString();
+	}
+	
+	/**
+	 * Sets the label by creating a new datadescription.
+	 *
+	 * @param label
+	 *            the new label
+	 */
+	public void setLabel(String label) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescription(label));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabel(label);
+		}
+	}
+
+	/**
+	 * Sets the label i18nKey by creating a new datadescription.
+	 *
+	 * @param i18nKey
+	 *            the new label i18n key
+	 */
+	public void setLabelI18nKey(String i18nKey) {
+		YDatadescription ds = getDatadescription();
+		if (ds == null) {
+			setDatadescription(createDatadescriptionForI18n(i18nKey));
+			getOrphanDatadescriptions().add(getDatadescription());
+		} else {
+			ds.setLabelI18nKey(i18nKey);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabel()
+	 */
+	@Override
+	public String getLabel() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabel();
+		}
+		return "";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.impl.YFieldImpl#getLabelI18nKey()
+	 */
+	@Override
+	public String getLabelI18nKey() {
+		YDatadescription ds = getDatadescription();
+		if (ds != null) {
+			return ds.getLabelI18nKey();
+		}
+		return "";
+	}
+
+} // YTreeImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YVerticalLayoutCellStyleImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YVerticalLayoutCellStyleImpl.java
new file mode 100644
index 0000000..d022d54
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YVerticalLayoutCellStyleImpl.java
@@ -0,0 +1,263 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>YUi Vertical Layout Cell Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutCellStyleImpl#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutCellStyleImpl#getAlignment <em>Alignment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YVerticalLayoutCellStyleImpl extends MinimalEObjectImpl.Container implements YVerticalLayoutCellStyle {
+	/**
+	 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTarget()
+	 * @generated
+	 * @ordered
+	 */
+	protected YEmbeddable target;
+
+	/**
+	 * The default value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final YAlignment ALIGNMENT_EDEFAULT = YAlignment.UNDEFINED;
+
+	/**
+	 * The cached value of the '{@link #getAlignment() <em>Alignment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlignment()
+	 * @generated
+	 * @ordered
+	 */
+	protected YAlignment alignment = ALIGNMENT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YVerticalLayoutCellStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YVERTICAL_LAYOUT_CELL_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getTarget() <em>Target</em>}'
+	 *         reference
+	 * @generated
+	 */
+	public YEmbeddable getTarget() {
+		if (target != null && target.eIsProxy()) {
+			InternalEObject oldTarget = (InternalEObject)target;
+			target = (YEmbeddable)eResolveProxy(oldTarget);
+			if (target != oldTarget) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+			}
+		}
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the y embeddable
+	 * @generated
+	 */
+	public YEmbeddable basicGetTarget() {
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newTarget
+	 *            the new cached value of the '{@link #getTarget()
+	 *            <em>Target</em>}' reference
+	 * @generated
+	 */
+	public void setTarget(YEmbeddable newTarget) {
+		YEmbeddable oldTarget = target;
+		target = newTarget;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__TARGET, oldTarget, target));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getAlignment()
+	 *         <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public YAlignment getAlignment() {
+		return alignment;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newAlignment
+	 *            the new cached value of the '{@link #getAlignment()
+	 *            <em>Alignment</em>}' attribute
+	 * @generated
+	 */
+	public void setAlignment(YAlignment newAlignment) {
+		YAlignment oldAlignment = alignment;
+		alignment = newAlignment == null ? ALIGNMENT_EDEFAULT : newAlignment;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT, oldAlignment, alignment));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__TARGET:
+				if (resolve) return getTarget();
+				return basicGetTarget();
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return getAlignment();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)newValue);
+				return;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment((YAlignment)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__TARGET:
+				setTarget((YEmbeddable)null);
+				return;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				setAlignment(ALIGNMENT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__TARGET:
+				return target != null;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE__ALIGNMENT:
+				return alignment != ALIGNMENT_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (alignment: ");
+		result.append(alignment);
+		result.append(')');
+		return result.toString();
+	}
+
+} //YUiVerticalLayoutCellStyleImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YVerticalLayoutImpl.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YVerticalLayoutImpl.java
new file mode 100644
index 0000000..147eece
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/impl/YVerticalLayoutImpl.java
@@ -0,0 +1,415 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.model.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignment;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.impl.YLayoutImpl;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle;
+
+// TODO: Auto-generated Javadoc
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>YUi Vertical Layout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutImpl#isSpacing <em>Spacing</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutImpl#isMargin <em>Margin</em>}</li>
+ *   <li>{@link org.eclipse.osbp.ecview.core.extension.model.extension.impl.YVerticalLayoutImpl#getCellStyles <em>Cell Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class YVerticalLayoutImpl extends YLayoutImpl implements YVerticalLayout {
+	/**
+	 * The default value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SPACING_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isSpacing() <em>Spacing</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isSpacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean spacing = SPACING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARGIN_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isMargin() <em>Margin</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isMargin()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean margin = MARGIN_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCellStyles() <em>Cell Styles</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getCellStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<YVerticalLayoutCellStyle> cellStyles;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @generated
+	 */
+	protected YVerticalLayoutImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the e class
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ExtensionModelPackage.Literals.YVERTICAL_LAYOUT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isSpacing() <em>Spacing</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isSpacing() {
+		return spacing;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newSpacing
+	 *            the new cached value of the '{@link #isSpacing()
+	 *            <em>Spacing</em>}' attribute
+	 * @generated
+	 */
+	public void setSpacing(boolean newSpacing) {
+		boolean oldSpacing = spacing;
+		spacing = newSpacing;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YVERTICAL_LAYOUT__SPACING, oldSpacing, spacing));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #isMargin() <em>Margin</em>}'
+	 *         attribute
+	 * @generated
+	 */
+	public boolean isMargin() {
+		return margin;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param newMargin
+	 *            the new cached value of the '{@link #isMargin()
+	 *            <em>Margin</em>}' attribute
+	 * @generated
+	 */
+	public void setMargin(boolean newMargin) {
+		boolean oldMargin = margin;
+		margin = newMargin;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ExtensionModelPackage.YVERTICAL_LAYOUT__MARGIN, oldMargin, margin));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the cached value of the '{@link #getCellStyles()
+	 *         <em>Cell Styles</em>}' containment reference list
+	 * @generated
+	 */
+	public EList<YVerticalLayoutCellStyle> getCellStyles() {
+		if (cellStyles == null) {
+			cellStyles = new EObjectContainmentEList.Resolving<YVerticalLayoutCellStyle>(YVerticalLayoutCellStyle.class, this, ExtensionModelPackage.YVERTICAL_LAYOUT__CELL_STYLES);
+		}
+		return cellStyles;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer#applyAlignment(org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable, org.eclipse.osbp.ecview.core.common.model.core.YAlignment)
+	 */
+	public void applyAlignment(YEmbeddable child, YAlignment alignment) {
+		getCellStyle(child).setAlignment(alignment);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param otherEnd
+	 *            the other end
+	 * @param featureID
+	 *            the feature id
+	 * @param msgs
+	 *            the msgs
+	 * @return the notification chain
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__CELL_STYLES:
+				return ((InternalEList<?>)getCellStyles()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param resolve
+	 *            the resolve
+	 * @param coreType
+	 *            the core type
+	 * @return the object
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__SPACING:
+				return isSpacing();
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__MARGIN:
+				return isMargin();
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__CELL_STYLES:
+				return getCellStyles();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @param newValue
+	 *            the new value
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__SPACING:
+				setSpacing((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__MARGIN:
+				setMargin((Boolean)newValue);
+				return;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				getCellStyles().addAll((Collection<? extends YVerticalLayoutCellStyle>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__SPACING:
+				setSpacing(SPACING_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__MARGIN:
+				setMargin(MARGIN_EDEFAULT);
+				return;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__CELL_STYLES:
+				getCellStyles().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param featureID
+	 *            the feature id
+	 * @return true, if successful
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__SPACING:
+				return spacing != SPACING_EDEFAULT;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__MARGIN:
+				return margin != MARGIN_EDEFAULT;
+			case ExtensionModelPackage.YVERTICAL_LAYOUT__CELL_STYLES:
+				return cellStyles != null && !cellStyles.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param derivedFeatureID
+	 *            the derived feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YVERTICAL_LAYOUT__SPACING: return CoreModelPackage.YSPACINGABLE__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (derivedFeatureID) {
+				case ExtensionModelPackage.YVERTICAL_LAYOUT__MARGIN: return CoreModelPackage.YMARGINABLE__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @param baseFeatureID
+	 *            the base feature id
+	 * @param baseClass
+	 *            the base class
+	 * @return the int
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == YSpacingable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YSPACINGABLE__SPACING: return ExtensionModelPackage.YVERTICAL_LAYOUT__SPACING;
+				default: return -1;
+			}
+		}
+		if (baseClass == YMarginable.class) {
+			switch (baseFeatureID) {
+				case CoreModelPackage.YMARGINABLE__MARGIN: return ExtensionModelPackage.YVERTICAL_LAYOUT__MARGIN;
+				default: return -1;
+			}
+		}
+		if (baseClass == YAlignmentContainer.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->.
+	 *
+	 * @return the string
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (spacing: ");
+		result.append(spacing);
+		result.append(", margin: ");
+		result.append(margin);
+		result.append(')');
+		return result.toString();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout#getCellStyle(org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable)
+	 */
+	public YVerticalLayoutCellStyle getCellStyle(YEmbeddable element) {
+		for (YVerticalLayoutCellStyle style : getCellStyles()) {
+			if (element == style.getTarget()) {
+				return style;
+			}
+		}
+		return addCellStyle(element);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout#addCellStyle(org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable)
+	 */
+	@Override
+	public YVerticalLayoutCellStyle addCellStyle(YEmbeddable element) {
+		YVerticalLayoutCellStyle yStyle = ExtensionModelFactory.eINSTANCE
+				.createYVerticalLayoutCellStyle();
+		yStyle.setTarget(element);
+		getCellStyles().add(yStyle);
+		return yStyle;
+	}
+
+} // YUiVerticalLayoutImpl
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/listener/YButtonClickListener.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/listener/YButtonClickListener.java
new file mode 100644
index 0000000..0ce4939
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/listener/YButtonClickListener.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others.
+ * 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:
+ * Florian Pirchner - initial API and implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.listener;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+
+// TODO: check reference
+/**
+ * The listener interface for receiving YButtonClick events. The class that is
+ * interested in processing a YButtonClick event implements this interface, and
+ * the object created with that class is registered with a component using the
+ * component's <code>addYButtonClickListener</code> method. When
+ * the YButtonClick event occurs, that object's appropriate
+ * method is invoked.
+ *
+ * see YButtonClickEvent
+ */
+public interface YButtonClickListener {
+
+	/**
+	 * Is called if the button was clicked.
+	 *
+	 * @param yButton
+	 *            the y button
+	 */
+	void clicked(YButton yButton);
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/util/ExtensionModelAdapterFactory.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/util/ExtensionModelAdapterFactory.java
new file mode 100644
index 0000000..789645c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/util/ExtensionModelAdapterFactory.java
@@ -0,0 +1,1599 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivateable;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YVisibleable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.*;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YColumn;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YImage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YInput;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YLabel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTree;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage
+ * @generated
+ */
+public class ExtensionModelAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ExtensionModelPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtensionModelAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = ExtensionModelPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtensionModelSwitch<Adapter> modelSwitch =
+		new ExtensionModelSwitch<Adapter>() {
+			@Override
+			public Adapter caseYInput(YInput object) {
+				return createYInputAdapter();
+			}
+			@Override
+			public Adapter caseYGridLayout(YGridLayout object) {
+				return createYGridLayoutAdapter();
+			}
+			@Override
+			public Adapter caseYGridLayoutCellStyle(YGridLayoutCellStyle object) {
+				return createYGridLayoutCellStyleAdapter();
+			}
+			@Override
+			public Adapter caseYHorizontalLayout(YHorizontalLayout object) {
+				return createYHorizontalLayoutAdapter();
+			}
+			@Override
+			public Adapter caseYHorizontalLayoutCellStyle(YHorizontalLayoutCellStyle object) {
+				return createYHorizontalLayoutCellStyleAdapter();
+			}
+			@Override
+			public Adapter caseYVerticalLayout(YVerticalLayout object) {
+				return createYVerticalLayoutAdapter();
+			}
+			@Override
+			public Adapter caseYVerticalLayoutCellStyle(YVerticalLayoutCellStyle object) {
+				return createYVerticalLayoutCellStyleAdapter();
+			}
+			@Override
+			public Adapter caseYSpanInfo(YSpanInfo object) {
+				return createYSpanInfoAdapter();
+			}
+			@Override
+			public Adapter caseYTable(YTable object) {
+				return createYTableAdapter();
+			}
+			@Override
+			public Adapter caseYColumn(YColumn object) {
+				return createYColumnAdapter();
+			}
+			@Override
+			public Adapter caseYSortColumn(YSortColumn object) {
+				return createYSortColumnAdapter();
+			}
+			@Override
+			public Adapter caseYTree(YTree object) {
+				return createYTreeAdapter();
+			}
+			@Override
+			public Adapter caseYOptionsGroup(YOptionsGroup object) {
+				return createYOptionsGroupAdapter();
+			}
+			@Override
+			public Adapter caseYList(YList object) {
+				return createYListAdapter();
+			}
+			@Override
+			public Adapter caseYLabel(YLabel object) {
+				return createYLabelAdapter();
+			}
+			@Override
+			public Adapter caseYImage(YImage object) {
+				return createYImageAdapter();
+			}
+			@Override
+			public Adapter caseYTextField(YTextField object) {
+				return createYTextFieldAdapter();
+			}
+			@Override
+			public Adapter caseYBeanReferenceField(YBeanReferenceField object) {
+				return createYBeanReferenceFieldAdapter();
+			}
+			@Override
+			public Adapter caseYTextArea(YTextArea object) {
+				return createYTextAreaAdapter();
+			}
+			@Override
+			public Adapter caseYCheckBox(YCheckBox object) {
+				return createYCheckBoxAdapter();
+			}
+			@Override
+			public Adapter caseYBrowser(YBrowser object) {
+				return createYBrowserAdapter();
+			}
+			@Override
+			public Adapter caseYDateTime(YDateTime object) {
+				return createYDateTimeAdapter();
+			}
+			@Override
+			public Adapter caseYDecimalField(YDecimalField object) {
+				return createYDecimalFieldAdapter();
+			}
+			@Override
+			public Adapter caseYNumericField(YNumericField object) {
+				return createYNumericFieldAdapter();
+			}
+			@Override
+			public Adapter caseYComboBox(YComboBox object) {
+				return createYComboBoxAdapter();
+			}
+			@Override
+			public Adapter caseYButton(YButton object) {
+				return createYButtonAdapter();
+			}
+			@Override
+			public Adapter caseYSlider(YSlider object) {
+				return createYSliderAdapter();
+			}
+			@Override
+			public Adapter caseYToggleButton(YToggleButton object) {
+				return createYToggleButtonAdapter();
+			}
+			@Override
+			public Adapter caseYProgressBar(YProgressBar object) {
+				return createYProgressBarAdapter();
+			}
+			@Override
+			public Adapter caseYTabSheet(YTabSheet object) {
+				return createYTabSheetAdapter();
+			}
+			@Override
+			public Adapter caseYTab(YTab object) {
+				return createYTabAdapter();
+			}
+			@Override
+			public Adapter caseYMasterDetail(YMasterDetail object) {
+				return createYMasterDetailAdapter();
+			}
+			@Override
+			public Adapter caseYFormLayout(YFormLayout object) {
+				return createYFormLayoutAdapter();
+			}
+			@Override
+			public Adapter caseYFormLayoutCellStyle(YFormLayoutCellStyle object) {
+				return createYFormLayoutCellStyleAdapter();
+			}
+			@Override
+			public Adapter caseYSearchField(YSearchField object) {
+				return createYSearchFieldAdapter();
+			}
+			@Override
+			public Adapter caseYTextSearchField(YTextSearchField object) {
+				return createYTextSearchFieldAdapter();
+			}
+			@Override
+			public Adapter caseYBooleanSearchField(YBooleanSearchField object) {
+				return createYBooleanSearchFieldAdapter();
+			}
+			@Override
+			public Adapter caseYNumericSearchField(YNumericSearchField object) {
+				return createYNumericSearchFieldAdapter();
+			}
+			@Override
+			public Adapter caseYReferenceSearchField(YReferenceSearchField object) {
+				return createYReferenceSearchFieldAdapter();
+			}
+			@Override
+			public Adapter caseYPanel(YPanel object) {
+				return createYPanelAdapter();
+			}
+			@Override
+			public Adapter caseYSplitPanel(YSplitPanel object) {
+				return createYSplitPanelAdapter();
+			}
+			@Override
+			public Adapter caseYSearchPanel(YSearchPanel object) {
+				return createYSearchPanelAdapter();
+			}
+			@Override
+			public Adapter caseYEnumOptionsGroup(YEnumOptionsGroup object) {
+				return createYEnumOptionsGroupAdapter();
+			}
+			@Override
+			public Adapter caseYEnumList(YEnumList object) {
+				return createYEnumListAdapter();
+			}
+			@Override
+			public Adapter caseYEnumComboBox(YEnumComboBox object) {
+				return createYEnumComboBoxAdapter();
+			}
+			@Override
+			public Adapter caseYBeanServiceConsumer(YBeanServiceConsumer object) {
+				return createYBeanServiceConsumerAdapter();
+			}
+			@Override
+			public Adapter caseYAddToTableCommand(YAddToTableCommand object) {
+				return createYAddToTableCommandAdapter();
+			}
+			@Override
+			public Adapter caseYRemoveFromTableCommand(YRemoveFromTableCommand object) {
+				return createYRemoveFromTableCommandAdapter();
+			}
+			@Override
+			public Adapter caseYBrowserStreamInput(YBrowserStreamInput object) {
+				return createYBrowserStreamInputAdapter();
+			}
+			@Override
+			public Adapter caseYSetNewBeanInstanceCommand(YSetNewBeanInstanceCommand object) {
+				return createYSetNewBeanInstanceCommandAdapter();
+			}
+			@Override
+			public Adapter caseYCssLayout(YCssLayout object) {
+				return createYCssLayoutAdapter();
+			}
+			@Override
+			public Adapter caseYCssLayoutCellStyle(YCssLayoutCellStyle object) {
+				return createYCssLayoutCellStyleAdapter();
+			}
+			@Override
+			public Adapter caseYFilter(YFilter object) {
+				return createYFilterAdapter();
+			}
+			@Override
+			public Adapter caseYAbsoluteLayout(YAbsoluteLayout object) {
+				return createYAbsoluteLayoutAdapter();
+			}
+			@Override
+			public Adapter caseYAbsoluteLayoutCellStyle(YAbsoluteLayoutCellStyle object) {
+				return createYAbsoluteLayoutCellStyleAdapter();
+			}
+			@Override
+			public Adapter caseYSuggestTextField(YSuggestTextField object) {
+				return createYSuggestTextFieldAdapter();
+			}
+			@Override
+			public Adapter caseYPasswordField(YPasswordField object) {
+				return createYPasswordFieldAdapter();
+			}
+			@Override
+			public Adapter caseYTaggable(YTaggable object) {
+				return createYTaggableAdapter();
+			}
+			@Override
+			public Adapter caseYElement(YElement object) {
+				return createYElementAdapter();
+			}
+			@Override
+			public Adapter caseYCssAble(YCssAble object) {
+				return createYCssAbleAdapter();
+			}
+			@Override
+			public Adapter caseYVisibleable(YVisibleable object) {
+				return createYVisibleableAdapter();
+			}
+			@Override
+			public Adapter caseYAuthorizationable(YAuthorizationable object) {
+				return createYAuthorizationableAdapter();
+			}
+			@Override
+			public Adapter caseYEmbeddable(YEmbeddable object) {
+				return createYEmbeddableAdapter();
+			}
+			@Override
+			public Adapter caseYEditable(YEditable object) {
+				return createYEditableAdapter();
+			}
+			@Override
+			public Adapter caseYEnable(YEnable object) {
+				return createYEnableAdapter();
+			}
+			@Override
+			public Adapter caseYFocusable(YFocusable object) {
+				return createYFocusableAdapter();
+			}
+			@Override
+			public Adapter caseYField(YField object) {
+				return createYFieldAdapter();
+			}
+			@Override
+			public Adapter caseYLayout(YLayout object) {
+				return createYLayoutAdapter();
+			}
+			@Override
+			public Adapter caseYSpacingable(YSpacingable object) {
+				return createYSpacingableAdapter();
+			}
+			@Override
+			public Adapter caseYMarginable(YMarginable object) {
+				return createYMarginableAdapter();
+			}
+			@Override
+			public Adapter caseYAlignmentContainer(YAlignmentContainer object) {
+				return createYAlignmentContainerAdapter();
+			}
+			@Override
+			public Adapter caseYBindable(YBindable object) {
+				return createYBindableAdapter();
+			}
+			@Override
+			public Adapter caseYCollectionBindable(YCollectionBindable object) {
+				return createYCollectionBindableAdapter();
+			}
+			@Override
+			public Adapter caseYSelectionBindable(YSelectionBindable object) {
+				return createYSelectionBindableAdapter();
+			}
+			@Override
+			public Adapter caseYMultiSelectionBindable(YMultiSelectionBindable object) {
+				return createYMultiSelectionBindableAdapter();
+			}
+			@Override
+			public Adapter caseYValueBindable(YValueBindable object) {
+				return createYValueBindableAdapter();
+			}
+			@Override
+			public Adapter caseYAction(YAction object) {
+				return createYActionAdapter();
+			}
+			@Override
+			public Adapter caseYActivateable(YActivateable object) {
+				return createYActivateableAdapter();
+			}
+			@Override
+			public Adapter caseYCommand(YCommand object) {
+				return createYCommandAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextField <em>YText Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextField
+	 * @generated
+	 */
+	public Adapter createYTextFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField <em>YBean Reference Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField
+	 * @generated
+	 */
+	public Adapter createYBeanReferenceFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout <em>YGrid Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout
+	 * @generated
+	 */
+	public Adapter createYGridLayoutAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle <em>YGrid Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle
+	 * @generated
+	 */
+	public Adapter createYGridLayoutCellStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout <em>YHorizontal Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout
+	 * @generated
+	 */
+	public Adapter createYHorizontalLayoutAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle <em>YHorizontal Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle
+	 * @generated
+	 */
+	public Adapter createYHorizontalLayoutCellStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout <em>YVertical Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout
+	 * @generated
+	 */
+	public Adapter createYVerticalLayoutAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle <em>YVertical Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle
+	 * @generated
+	 */
+	public Adapter createYVerticalLayoutCellStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo <em>YSpan Info</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo
+	 * @generated
+	 */
+	public Adapter createYSpanInfoAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTable <em>YTable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTable
+	 * @generated
+	 */
+	public Adapter createYTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YColumn <em>YColumn</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YColumn
+	 * @generated
+	 */
+	public Adapter createYColumnAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn <em>YSort Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn
+	 * @generated
+	 */
+	public Adapter createYSortColumnAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YLabel <em>YLabel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YLabel
+	 * @generated
+	 */
+	public Adapter createYLabelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YImage <em>YImage</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YImage
+	 * @generated
+	 */
+	public Adapter createYImageAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea <em>YText Area</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea
+	 * @generated
+	 */
+	public Adapter createYTextAreaAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox <em>YCheck Box</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox
+	 * @generated
+	 */
+	public Adapter createYCheckBoxAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser <em>YBrowser</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser
+	 * @generated
+	 */
+	public Adapter createYBrowserAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime <em>YDate Time</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime
+	 * @generated
+	 */
+	public Adapter createYDateTimeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YInput <em>YInput</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YInput
+	 * @generated
+	 */
+	public Adapter createYInputAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField <em>YDecimal Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField
+	 * @generated
+	 */
+	public Adapter createYDecimalFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField <em>YNumeric Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField
+	 * @generated
+	 */
+	public Adapter createYNumericFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox <em>YCombo Box</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox
+	 * @generated
+	 */
+	public Adapter createYComboBoxAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YList <em>YList</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YList
+	 * @generated
+	 */
+	public Adapter createYListAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YButton <em>YButton</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YButton
+	 * @generated
+	 */
+	public Adapter createYButtonAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSlider <em>YSlider</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSlider
+	 * @generated
+	 */
+	public Adapter createYSliderAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton <em>YToggle Button</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton
+	 * @generated
+	 */
+	public Adapter createYToggleButtonAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar <em>YProgress Bar</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar
+	 * @generated
+	 */
+	public Adapter createYProgressBarAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet <em>YTab Sheet</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet
+	 * @generated
+	 */
+	public Adapter createYTabSheetAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTab <em>YTab</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTab
+	 * @generated
+	 */
+	public Adapter createYTabAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail <em>YMaster Detail</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail
+	 * @generated
+	 */
+	public Adapter createYMasterDetailAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout <em>YForm Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout
+	 * @generated
+	 */
+	public Adapter createYFormLayoutAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle <em>YForm Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle
+	 * @generated
+	 */
+	public Adapter createYFormLayoutCellStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchField <em>YSearch Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchField
+	 * @generated
+	 */
+	public Adapter createYSearchFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField <em>YText Search Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField
+	 * @generated
+	 */
+	public Adapter createYTextSearchFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField <em>YBoolean Search Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField
+	 * @generated
+	 */
+	public Adapter createYBooleanSearchFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField <em>YNumeric Search Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField
+	 * @generated
+	 */
+	public Adapter createYNumericSearchFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField <em>YReference Search Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField
+	 * @generated
+	 */
+	public Adapter createYReferenceSearchFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPanel <em>YPanel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YPanel
+	 * @generated
+	 */
+	public Adapter createYPanelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel <em>YSplit Panel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel
+	 * @generated
+	 */
+	public Adapter createYSplitPanelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel <em>YSearch Panel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel
+	 * @generated
+	 */
+	public Adapter createYSearchPanelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup <em>YEnum Options Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup
+	 * @generated
+	 */
+	public Adapter createYEnumOptionsGroupAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList <em>YEnum List</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList
+	 * @generated
+	 */
+	public Adapter createYEnumListAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox <em>YEnum Combo Box</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox
+	 * @generated
+	 */
+	public Adapter createYEnumComboBoxAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer <em>YBean Service Consumer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer
+	 * @generated
+	 */
+	public Adapter createYBeanServiceConsumerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand <em>YAdd To Table Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand
+	 * @generated
+	 */
+	public Adapter createYAddToTableCommandAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand <em>YRemove From Table Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand
+	 * @generated
+	 */
+	public Adapter createYRemoveFromTableCommandAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput <em>YBrowser Stream Input</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput
+	 * @generated
+	 */
+	public Adapter createYBrowserStreamInputAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand <em>YSet New Bean Instance Command</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand
+	 * @generated
+	 */
+	public Adapter createYSetNewBeanInstanceCommandAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout <em>YCss Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout
+	 * @generated
+	 */
+	public Adapter createYCssLayoutAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle <em>YCss Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle
+	 * @generated
+	 */
+	public Adapter createYCssLayoutCellStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YFilter <em>YFilter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YFilter
+	 * @generated
+	 */
+	public Adapter createYFilterAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout <em>YAbsolute Layout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayout
+	 * @generated
+	 */
+	public Adapter createYAbsoluteLayoutAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle <em>YAbsolute Layout Cell Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YAbsoluteLayoutCellStyle
+	 * @generated
+	 */
+	public Adapter createYAbsoluteLayoutCellStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField <em>YSuggest Text Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YSuggestTextField
+	 * @generated
+	 */
+	public Adapter createYSuggestTextFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField <em>YPassword Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YPasswordField
+	 * @generated
+	 */
+	public Adapter createYPasswordFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YTaggable <em>YTaggable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YTaggable
+	 * @generated
+	 */
+	public Adapter createYTaggableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YTree <em>YTree</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YTree
+	 * @generated
+	 */
+	public Adapter createYTreeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup <em>YOptions Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup
+	 * @generated
+	 */
+	public Adapter createYOptionsGroupAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YElement <em>YElement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YElement
+	 * @generated
+	 */
+	public Adapter createYElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCssAble <em>YCss Able</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCssAble
+	 * @generated
+	 */
+	public Adapter createYCssAbleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YVisibleable <em>YVisibleable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YVisibleable
+	 * @generated
+	 */
+	public Adapter createYVisibleableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable <em>YAuthorizationable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable
+	 * @generated
+	 */
+	public Adapter createYAuthorizationableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable <em>YEmbeddable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable
+	 * @generated
+	 */
+	public Adapter createYEmbeddableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEditable <em>YEditable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEditable
+	 * @generated
+	 */
+	public Adapter createYEditableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YEnable <em>YEnable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YEnable
+	 * @generated
+	 */
+	public Adapter createYEnableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YFocusable <em>YFocusable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YFocusable
+	 * @generated
+	 */
+	public Adapter createYFocusableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YField <em>YField</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YField
+	 * @generated
+	 */
+	public Adapter createYFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YBindable <em>YBindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YBindable
+	 * @generated
+	 */
+	public Adapter createYBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YValueBindable <em>YValue Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YValueBindable
+	 * @generated
+	 */
+	public Adapter createYValueBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YLayout <em>YLayout</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YLayout
+	 * @generated
+	 */
+	public Adapter createYLayoutAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YSpacingable <em>YSpacingable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSpacingable
+	 * @generated
+	 */
+	public Adapter createYSpacingableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YMarginable <em>YMarginable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMarginable
+	 * @generated
+	 */
+	public Adapter createYMarginableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer <em>YAlignment Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer
+	 * @generated
+	 */
+	public Adapter createYAlignmentContainerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable <em>YCollection Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable
+	 * @generated
+	 */
+	public Adapter createYCollectionBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable <em>YSelection Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable
+	 * @generated
+	 */
+	public Adapter createYSelectionBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable <em>YMulti Selection Bindable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable
+	 * @generated
+	 */
+	public Adapter createYMultiSelectionBindableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YAction <em>YAction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YAction
+	 * @generated
+	 */
+	public Adapter createYActionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YActivateable <em>YActivateable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YActivateable
+	 * @generated
+	 */
+	public Adapter createYActivateableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.ecview.core.common.model.core.YCommand <em>YCommand</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.ecview.core.common.model.core.YCommand
+	 * @generated
+	 */
+	public Adapter createYCommandAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //ExtensionModelAdapterFactory
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/util/ExtensionModelSwitch.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/util/ExtensionModelSwitch.java
new file mode 100644
index 0000000..b770b4e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/util/ExtensionModelSwitch.java
@@ -0,0 +1,2234 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.osbp.ecview.core.common.model.core.YAction;
+import org.eclipse.osbp.ecview.core.common.model.core.YActivateable;
+import org.eclipse.osbp.ecview.core.common.model.core.YAlignmentContainer;
+import org.eclipse.osbp.ecview.core.common.model.core.YAuthorizationable;
+import org.eclipse.osbp.ecview.core.common.model.core.YBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCollectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YCommand;
+import org.eclipse.osbp.ecview.core.common.model.core.YCssAble;
+import org.eclipse.osbp.ecview.core.common.model.core.YEditable;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEnable;
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
+import org.eclipse.osbp.ecview.core.common.model.core.YMarginable;
+import org.eclipse.osbp.ecview.core.common.model.core.YMultiSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSelectionBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YSpacingable;
+import org.eclipse.osbp.ecview.core.common.model.core.YTaggable;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YVisibleable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.*;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YAddToTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanReferenceField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBeanServiceConsumer;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBooleanSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YColumn;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YEnumOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YImage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YInput;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YLabel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YReferenceSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YRemoveFromTableCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSearchPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSetNewBeanInstanceCommand;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextSearchField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YToggleButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTree;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage
+ * @generated
+ */
+public class ExtensionModelSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ExtensionModelPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtensionModelSwitch() {
+		if (modelPackage == null) {
+			modelPackage = ExtensionModelPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case ExtensionModelPackage.YINPUT: {
+				YInput yInput = (YInput)theEObject;
+				T result = caseYInput(yInput);
+				if (result == null) result = caseYField(yInput);
+				if (result == null) result = caseYEmbeddable(yInput);
+				if (result == null) result = caseYEditable(yInput);
+				if (result == null) result = caseYEnable(yInput);
+				if (result == null) result = caseYFocusable(yInput);
+				if (result == null) result = caseYElement(yInput);
+				if (result == null) result = caseYCssAble(yInput);
+				if (result == null) result = caseYVisibleable(yInput);
+				if (result == null) result = caseYAuthorizationable(yInput);
+				if (result == null) result = caseYTaggable(yInput);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YGRID_LAYOUT: {
+				YGridLayout yGridLayout = (YGridLayout)theEObject;
+				T result = caseYGridLayout(yGridLayout);
+				if (result == null) result = caseYLayout(yGridLayout);
+				if (result == null) result = caseYSpacingable(yGridLayout);
+				if (result == null) result = caseYMarginable(yGridLayout);
+				if (result == null) result = caseYAlignmentContainer(yGridLayout);
+				if (result == null) result = caseYEmbeddable(yGridLayout);
+				if (result == null) result = caseYEditable(yGridLayout);
+				if (result == null) result = caseYEnable(yGridLayout);
+				if (result == null) result = caseYElement(yGridLayout);
+				if (result == null) result = caseYCssAble(yGridLayout);
+				if (result == null) result = caseYVisibleable(yGridLayout);
+				if (result == null) result = caseYAuthorizationable(yGridLayout);
+				if (result == null) result = caseYTaggable(yGridLayout);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YGRID_LAYOUT_CELL_STYLE: {
+				YGridLayoutCellStyle yGridLayoutCellStyle = (YGridLayoutCellStyle)theEObject;
+				T result = caseYGridLayoutCellStyle(yGridLayoutCellStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT: {
+				YHorizontalLayout yHorizontalLayout = (YHorizontalLayout)theEObject;
+				T result = caseYHorizontalLayout(yHorizontalLayout);
+				if (result == null) result = caseYLayout(yHorizontalLayout);
+				if (result == null) result = caseYSpacingable(yHorizontalLayout);
+				if (result == null) result = caseYMarginable(yHorizontalLayout);
+				if (result == null) result = caseYAlignmentContainer(yHorizontalLayout);
+				if (result == null) result = caseYEmbeddable(yHorizontalLayout);
+				if (result == null) result = caseYEditable(yHorizontalLayout);
+				if (result == null) result = caseYEnable(yHorizontalLayout);
+				if (result == null) result = caseYElement(yHorizontalLayout);
+				if (result == null) result = caseYCssAble(yHorizontalLayout);
+				if (result == null) result = caseYVisibleable(yHorizontalLayout);
+				if (result == null) result = caseYAuthorizationable(yHorizontalLayout);
+				if (result == null) result = caseYTaggable(yHorizontalLayout);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YHORIZONTAL_LAYOUT_CELL_STYLE: {
+				YHorizontalLayoutCellStyle yHorizontalLayoutCellStyle = (YHorizontalLayoutCellStyle)theEObject;
+				T result = caseYHorizontalLayoutCellStyle(yHorizontalLayoutCellStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YVERTICAL_LAYOUT: {
+				YVerticalLayout yVerticalLayout = (YVerticalLayout)theEObject;
+				T result = caseYVerticalLayout(yVerticalLayout);
+				if (result == null) result = caseYLayout(yVerticalLayout);
+				if (result == null) result = caseYSpacingable(yVerticalLayout);
+				if (result == null) result = caseYMarginable(yVerticalLayout);
+				if (result == null) result = caseYAlignmentContainer(yVerticalLayout);
+				if (result == null) result = caseYEmbeddable(yVerticalLayout);
+				if (result == null) result = caseYEditable(yVerticalLayout);
+				if (result == null) result = caseYEnable(yVerticalLayout);
+				if (result == null) result = caseYElement(yVerticalLayout);
+				if (result == null) result = caseYCssAble(yVerticalLayout);
+				if (result == null) result = caseYVisibleable(yVerticalLayout);
+				if (result == null) result = caseYAuthorizationable(yVerticalLayout);
+				if (result == null) result = caseYTaggable(yVerticalLayout);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YVERTICAL_LAYOUT_CELL_STYLE: {
+				YVerticalLayoutCellStyle yVerticalLayoutCellStyle = (YVerticalLayoutCellStyle)theEObject;
+				T result = caseYVerticalLayoutCellStyle(yVerticalLayoutCellStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YSPAN_INFO: {
+				YSpanInfo ySpanInfo = (YSpanInfo)theEObject;
+				T result = caseYSpanInfo(ySpanInfo);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YTABLE: {
+				YTable yTable = (YTable)theEObject;
+				T result = caseYTable(yTable);
+				if (result == null) result = caseYInput(yTable);
+				if (result == null) result = caseYCollectionBindable(yTable);
+				if (result == null) result = caseYSelectionBindable(yTable);
+				if (result == null) result = caseYMultiSelectionBindable(yTable);
+				if (result == null) result = caseYBeanServiceConsumer(yTable);
+				if (result == null) result = caseYField(yTable);
+				if (result == null) result = caseYBindable(yTable);
+				if (result == null) result = caseYEmbeddable(yTable);
+				if (result == null) result = caseYEditable(yTable);
+				if (result == null) result = caseYEnable(yTable);
+				if (result == null) result = caseYFocusable(yTable);
+				if (result == null) result = caseYElement(yTable);
+				if (result == null) result = caseYCssAble(yTable);
+				if (result == null) result = caseYVisibleable(yTable);
+				if (result == null) result = caseYAuthorizationable(yTable);
+				if (result == null) result = caseYTaggable(yTable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YCOLUMN: {
+				YColumn yColumn = (YColumn)theEObject;
+				T result = caseYColumn(yColumn);
+				if (result == null) result = caseYElement(yColumn);
+				if (result == null) result = caseYTaggable(yColumn);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YSORT_COLUMN: {
+				YSortColumn ySortColumn = (YSortColumn)theEObject;
+				T result = caseYSortColumn(ySortColumn);
+				if (result == null) result = caseYElement(ySortColumn);
+				if (result == null) result = caseYTaggable(ySortColumn);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YTREE: {
+				YTree yTree = (YTree)theEObject;
+				T result = caseYTree(yTree);
+				if (result == null) result = caseYInput(yTree);
+				if (result == null) result = caseYCollectionBindable(yTree);
+				if (result == null) result = caseYSelectionBindable(yTree);
+				if (result == null) result = caseYMultiSelectionBindable(yTree);
+				if (result == null) result = caseYBeanServiceConsumer(yTree);
+				if (result == null) result = caseYField(yTree);
+				if (result == null) result = caseYBindable(yTree);
+				if (result == null) result = caseYEmbeddable(yTree);
+				if (result == null) result = caseYEditable(yTree);
+				if (result == null) result = caseYEnable(yTree);
+				if (result == null) result = caseYFocusable(yTree);
+				if (result == null) result = caseYElement(yTree);
+				if (result == null) result = caseYCssAble(yTree);
+				if (result == null) result = caseYVisibleable(yTree);
+				if (result == null) result = caseYAuthorizationable(yTree);
+				if (result == null) result = caseYTaggable(yTree);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YOPTIONS_GROUP: {
+				YOptionsGroup yOptionsGroup = (YOptionsGroup)theEObject;
+				T result = caseYOptionsGroup(yOptionsGroup);
+				if (result == null) result = caseYInput(yOptionsGroup);
+				if (result == null) result = caseYCollectionBindable(yOptionsGroup);
+				if (result == null) result = caseYSelectionBindable(yOptionsGroup);
+				if (result == null) result = caseYMultiSelectionBindable(yOptionsGroup);
+				if (result == null) result = caseYBeanServiceConsumer(yOptionsGroup);
+				if (result == null) result = caseYField(yOptionsGroup);
+				if (result == null) result = caseYBindable(yOptionsGroup);
+				if (result == null) result = caseYEmbeddable(yOptionsGroup);
+				if (result == null) result = caseYEditable(yOptionsGroup);
+				if (result == null) result = caseYEnable(yOptionsGroup);
+				if (result == null) result = caseYFocusable(yOptionsGroup);
+				if (result == null) result = caseYElement(yOptionsGroup);
+				if (result == null) result = caseYCssAble(yOptionsGroup);
+				if (result == null) result = caseYVisibleable(yOptionsGroup);
+				if (result == null) result = caseYAuthorizationable(yOptionsGroup);
+				if (result == null) result = caseYTaggable(yOptionsGroup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YLIST: {
+				YList yList = (YList)theEObject;
+				T result = caseYList(yList);
+				if (result == null) result = caseYInput(yList);
+				if (result == null) result = caseYCollectionBindable(yList);
+				if (result == null) result = caseYSelectionBindable(yList);
+				if (result == null) result = caseYMultiSelectionBindable(yList);
+				if (result == null) result = caseYBeanServiceConsumer(yList);
+				if (result == null) result = caseYField(yList);
+				if (result == null) result = caseYBindable(yList);
+				if (result == null) result = caseYEmbeddable(yList);
+				if (result == null) result = caseYEditable(yList);
+				if (result == null) result = caseYEnable(yList);
+				if (result == null) result = caseYFocusable(yList);
+				if (result == null) result = caseYElement(yList);
+				if (result == null) result = caseYCssAble(yList);
+				if (result == null) result = caseYVisibleable(yList);
+				if (result == null) result = caseYAuthorizationable(yList);
+				if (result == null) result = caseYTaggable(yList);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YLABEL: {
+				YLabel yLabel = (YLabel)theEObject;
+				T result = caseYLabel(yLabel);
+				if (result == null) result = caseYField(yLabel);
+				if (result == null) result = caseYValueBindable(yLabel);
+				if (result == null) result = caseYEmbeddable(yLabel);
+				if (result == null) result = caseYEditable(yLabel);
+				if (result == null) result = caseYEnable(yLabel);
+				if (result == null) result = caseYFocusable(yLabel);
+				if (result == null) result = caseYBindable(yLabel);
+				if (result == null) result = caseYElement(yLabel);
+				if (result == null) result = caseYCssAble(yLabel);
+				if (result == null) result = caseYVisibleable(yLabel);
+				if (result == null) result = caseYAuthorizationable(yLabel);
+				if (result == null) result = caseYTaggable(yLabel);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YIMAGE: {
+				YImage yImage = (YImage)theEObject;
+				T result = caseYImage(yImage);
+				if (result == null) result = caseYField(yImage);
+				if (result == null) result = caseYValueBindable(yImage);
+				if (result == null) result = caseYEmbeddable(yImage);
+				if (result == null) result = caseYEditable(yImage);
+				if (result == null) result = caseYEnable(yImage);
+				if (result == null) result = caseYFocusable(yImage);
+				if (result == null) result = caseYBindable(yImage);
+				if (result == null) result = caseYElement(yImage);
+				if (result == null) result = caseYCssAble(yImage);
+				if (result == null) result = caseYVisibleable(yImage);
+				if (result == null) result = caseYAuthorizationable(yImage);
+				if (result == null) result = caseYTaggable(yImage);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YTEXT_FIELD: {
+				YTextField yTextField = (YTextField)theEObject;
+				T result = caseYTextField(yTextField);
+				if (result == null) result = caseYInput(yTextField);
+				if (result == null) result = caseYValueBindable(yTextField);
+				if (result == null) result = caseYField(yTextField);
+				if (result == null) result = caseYBindable(yTextField);
+				if (result == null) result = caseYEmbeddable(yTextField);
+				if (result == null) result = caseYEditable(yTextField);
+				if (result == null) result = caseYEnable(yTextField);
+				if (result == null) result = caseYFocusable(yTextField);
+				if (result == null) result = caseYElement(yTextField);
+				if (result == null) result = caseYCssAble(yTextField);
+				if (result == null) result = caseYVisibleable(yTextField);
+				if (result == null) result = caseYAuthorizationable(yTextField);
+				if (result == null) result = caseYTaggable(yTextField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YBEAN_REFERENCE_FIELD: {
+				YBeanReferenceField yBeanReferenceField = (YBeanReferenceField)theEObject;
+				T result = caseYBeanReferenceField(yBeanReferenceField);
+				if (result == null) result = caseYInput(yBeanReferenceField);
+				if (result == null) result = caseYValueBindable(yBeanReferenceField);
+				if (result == null) result = caseYBeanServiceConsumer(yBeanReferenceField);
+				if (result == null) result = caseYField(yBeanReferenceField);
+				if (result == null) result = caseYBindable(yBeanReferenceField);
+				if (result == null) result = caseYEmbeddable(yBeanReferenceField);
+				if (result == null) result = caseYEditable(yBeanReferenceField);
+				if (result == null) result = caseYEnable(yBeanReferenceField);
+				if (result == null) result = caseYFocusable(yBeanReferenceField);
+				if (result == null) result = caseYElement(yBeanReferenceField);
+				if (result == null) result = caseYCssAble(yBeanReferenceField);
+				if (result == null) result = caseYVisibleable(yBeanReferenceField);
+				if (result == null) result = caseYAuthorizationable(yBeanReferenceField);
+				if (result == null) result = caseYTaggable(yBeanReferenceField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YTEXT_AREA: {
+				YTextArea yTextArea = (YTextArea)theEObject;
+				T result = caseYTextArea(yTextArea);
+				if (result == null) result = caseYInput(yTextArea);
+				if (result == null) result = caseYValueBindable(yTextArea);
+				if (result == null) result = caseYField(yTextArea);
+				if (result == null) result = caseYBindable(yTextArea);
+				if (result == null) result = caseYEmbeddable(yTextArea);
+				if (result == null) result = caseYEditable(yTextArea);
+				if (result == null) result = caseYEnable(yTextArea);
+				if (result == null) result = caseYFocusable(yTextArea);
+				if (result == null) result = caseYElement(yTextArea);
+				if (result == null) result = caseYCssAble(yTextArea);
+				if (result == null) result = caseYVisibleable(yTextArea);
+				if (result == null) result = caseYAuthorizationable(yTextArea);
+				if (result == null) result = caseYTaggable(yTextArea);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YCHECK_BOX: {
+				YCheckBox yCheckBox = (YCheckBox)theEObject;
+				T result = caseYCheckBox(yCheckBox);
+				if (result == null) result = caseYInput(yCheckBox);
+				if (result == null) result = caseYValueBindable(yCheckBox);
+				if (result == null) result = caseYField(yCheckBox);
+				if (result == null) result = caseYBindable(yCheckBox);
+				if (result == null) result = caseYEmbeddable(yCheckBox);
+				if (result == null) result = caseYEditable(yCheckBox);
+				if (result == null) result = caseYEnable(yCheckBox);
+				if (result == null) result = caseYFocusable(yCheckBox);
+				if (result == null) result = caseYElement(yCheckBox);
+				if (result == null) result = caseYCssAble(yCheckBox);
+				if (result == null) result = caseYVisibleable(yCheckBox);
+				if (result == null) result = caseYAuthorizationable(yCheckBox);
+				if (result == null) result = caseYTaggable(yCheckBox);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YBROWSER: {
+				YBrowser yBrowser = (YBrowser)theEObject;
+				T result = caseYBrowser(yBrowser);
+				if (result == null) result = caseYInput(yBrowser);
+				if (result == null) result = caseYValueBindable(yBrowser);
+				if (result == null) result = caseYField(yBrowser);
+				if (result == null) result = caseYBindable(yBrowser);
+				if (result == null) result = caseYEmbeddable(yBrowser);
+				if (result == null) result = caseYEditable(yBrowser);
+				if (result == null) result = caseYEnable(yBrowser);
+				if (result == null) result = caseYFocusable(yBrowser);
+				if (result == null) result = caseYElement(yBrowser);
+				if (result == null) result = caseYCssAble(yBrowser);
+				if (result == null) result = caseYVisibleable(yBrowser);
+				if (result == null) result = caseYAuthorizationable(yBrowser);
+				if (result == null) result = caseYTaggable(yBrowser);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YDATE_TIME: {
+				YDateTime yDateTime = (YDateTime)theEObject;
+				T result = caseYDateTime(yDateTime);
+				if (result == null) result = caseYInput(yDateTime);
+				if (result == null) result = caseYValueBindable(yDateTime);
+				if (result == null) result = caseYField(yDateTime);
+				if (result == null) result = caseYBindable(yDateTime);
+				if (result == null) result = caseYEmbeddable(yDateTime);
+				if (result == null) result = caseYEditable(yDateTime);
+				if (result == null) result = caseYEnable(yDateTime);
+				if (result == null) result = caseYFocusable(yDateTime);
+				if (result == null) result = caseYElement(yDateTime);
+				if (result == null) result = caseYCssAble(yDateTime);
+				if (result == null) result = caseYVisibleable(yDateTime);
+				if (result == null) result = caseYAuthorizationable(yDateTime);
+				if (result == null) result = caseYTaggable(yDateTime);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YDECIMAL_FIELD: {
+				YDecimalField yDecimalField = (YDecimalField)theEObject;
+				T result = caseYDecimalField(yDecimalField);
+				if (result == null) result = caseYInput(yDecimalField);
+				if (result == null) result = caseYValueBindable(yDecimalField);
+				if (result == null) result = caseYField(yDecimalField);
+				if (result == null) result = caseYBindable(yDecimalField);
+				if (result == null) result = caseYEmbeddable(yDecimalField);
+				if (result == null) result = caseYEditable(yDecimalField);
+				if (result == null) result = caseYEnable(yDecimalField);
+				if (result == null) result = caseYFocusable(yDecimalField);
+				if (result == null) result = caseYElement(yDecimalField);
+				if (result == null) result = caseYCssAble(yDecimalField);
+				if (result == null) result = caseYVisibleable(yDecimalField);
+				if (result == null) result = caseYAuthorizationable(yDecimalField);
+				if (result == null) result = caseYTaggable(yDecimalField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YNUMERIC_FIELD: {
+				YNumericField yNumericField = (YNumericField)theEObject;
+				T result = caseYNumericField(yNumericField);
+				if (result == null) result = caseYInput(yNumericField);
+				if (result == null) result = caseYValueBindable(yNumericField);
+				if (result == null) result = caseYField(yNumericField);
+				if (result == null) result = caseYBindable(yNumericField);
+				if (result == null) result = caseYEmbeddable(yNumericField);
+				if (result == null) result = caseYEditable(yNumericField);
+				if (result == null) result = caseYEnable(yNumericField);
+				if (result == null) result = caseYFocusable(yNumericField);
+				if (result == null) result = caseYElement(yNumericField);
+				if (result == null) result = caseYCssAble(yNumericField);
+				if (result == null) result = caseYVisibleable(yNumericField);
+				if (result == null) result = caseYAuthorizationable(yNumericField);
+				if (result == null) result = caseYTaggable(yNumericField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YCOMBO_BOX: {
+				YComboBox yComboBox = (YComboBox)theEObject;
+				T result = caseYComboBox(yComboBox);
+				if (result == null) result = caseYInput(yComboBox);
+				if (result == null) result = caseYCollectionBindable(yComboBox);
+				if (result == null) result = caseYSelectionBindable(yComboBox);
+				if (result == null) result = caseYBeanServiceConsumer(yComboBox);
+				if (result == null) result = caseYField(yComboBox);
+				if (result == null) result = caseYBindable(yComboBox);
+				if (result == null) result = caseYEmbeddable(yComboBox);
+				if (result == null) result = caseYEditable(yComboBox);
+				if (result == null) result = caseYEnable(yComboBox);
+				if (result == null) result = caseYFocusable(yComboBox);
+				if (result == null) result = caseYElement(yComboBox);
+				if (result == null) result = caseYCssAble(yComboBox);
+				if (result == null) result = caseYVisibleable(yComboBox);
+				if (result == null) result = caseYAuthorizationable(yComboBox);
+				if (result == null) result = caseYTaggable(yComboBox);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YBUTTON: {
+				YButton yButton = (YButton)theEObject;
+				T result = caseYButton(yButton);
+				if (result == null) result = caseYAction(yButton);
+				if (result == null) result = caseYEditable(yButton);
+				if (result == null) result = caseYFocusable(yButton);
+				if (result == null) result = caseYEmbeddable(yButton);
+				if (result == null) result = caseYEnable(yButton);
+				if (result == null) result = caseYElement(yButton);
+				if (result == null) result = caseYCssAble(yButton);
+				if (result == null) result = caseYVisibleable(yButton);
+				if (result == null) result = caseYAuthorizationable(yButton);
+				if (result == null) result = caseYTaggable(yButton);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YSLIDER: {
+				YSlider ySlider = (YSlider)theEObject;
+				T result = caseYSlider(ySlider);
+				if (result == null) result = caseYInput(ySlider);
+				if (result == null) result = caseYValueBindable(ySlider);
+				if (result == null) result = caseYField(ySlider);
+				if (result == null) result = caseYBindable(ySlider);
+				if (result == null) result = caseYEmbeddable(ySlider);
+				if (result == null) result = caseYEditable(ySlider);
+				if (result == null) result = caseYEnable(ySlider);
+				if (result == null) result = caseYFocusable(ySlider);
+				if (result == null) result = caseYElement(ySlider);
+				if (result == null) result = caseYCssAble(ySlider);
+				if (result == null) result = caseYVisibleable(ySlider);
+				if (result == null) result = caseYAuthorizationable(ySlider);
+				if (result == null) result = caseYTaggable(ySlider);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YTOGGLE_BUTTON: {
+				YToggleButton yToggleButton = (YToggleButton)theEObject;
+				T result = caseYToggleButton(yToggleButton);
+				if (result == null) result = caseYAction(yToggleButton);
+				if (result == null) result = caseYActivateable(yToggleButton);
+				if (result == null) result = caseYFocusable(yToggleButton);
+				if (result == null) result = caseYEmbeddable(yToggleButton);
+				if (result == null) result = caseYEnable(yToggleButton);
+				if (result == null) result = caseYBindable(yToggleButton);
+				if (result == null) result = caseYElement(yToggleButton);
+				if (result == null) result = caseYCssAble(yToggleButton);
+				if (result == null) result = caseYVisibleable(yToggleButton);
+				if (result == null) result = caseYAuthorizationable(yToggleButton);
+				if (result == null) result = caseYTaggable(yToggleButton);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YPROGRESS_BAR: {
+				YProgressBar yProgressBar = (YProgressBar)theEObject;
+				T result = caseYProgressBar(yProgressBar);
+				if (result == null) result = caseYInput(yProgressBar);
+				if (result == null) result = caseYValueBindable(yProgressBar);
+				if (result == null) result = caseYField(yProgressBar);
+				if (result == null) result = caseYBindable(yProgressBar);
+				if (result == null) result = caseYEmbeddable(yProgressBar);
+				if (result == null) result = caseYEditable(yProgressBar);
+				if (result == null) result = caseYEnable(yProgressBar);
+				if (result == null) result = caseYFocusable(yProgressBar);
+				if (result == null) result = caseYElement(yProgressBar);
+				if (result == null) result = caseYCssAble(yProgressBar);
+				if (result == null) result = caseYVisibleable(yProgressBar);
+				if (result == null) result = caseYAuthorizationable(yProgressBar);
+				if (result == null) result = caseYTaggable(yProgressBar);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YTAB_SHEET: {
+				YTabSheet yTabSheet = (YTabSheet)theEObject;
+				T result = caseYTabSheet(yTabSheet);
+				if (result == null) result = caseYEmbeddable(yTabSheet);
+				if (result == null) result = caseYFocusable(yTabSheet);
+				if (result == null) result = caseYElement(yTabSheet);
+				if (result == null) result = caseYCssAble(yTabSheet);
+				if (result == null) result = caseYVisibleable(yTabSheet);
+				if (result == null) result = caseYAuthorizationable(yTabSheet);
+				if (result == null) result = caseYTaggable(yTabSheet);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YTAB: {
+				YTab yTab = (YTab)theEObject;
+				T result = caseYTab(yTab);
+				if (result == null) result = caseYElement(yTab);
+				if (result == null) result = caseYCssAble(yTab);
+				if (result == null) result = caseYTaggable(yTab);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YMASTER_DETAIL: {
+				YMasterDetail yMasterDetail = (YMasterDetail)theEObject;
+				T result = caseYMasterDetail(yMasterDetail);
+				if (result == null) result = caseYInput(yMasterDetail);
+				if (result == null) result = caseYCollectionBindable(yMasterDetail);
+				if (result == null) result = caseYSelectionBindable(yMasterDetail);
+				if (result == null) result = caseYField(yMasterDetail);
+				if (result == null) result = caseYBindable(yMasterDetail);
+				if (result == null) result = caseYEmbeddable(yMasterDetail);
+				if (result == null) result = caseYEditable(yMasterDetail);
+				if (result == null) result = caseYEnable(yMasterDetail);
+				if (result == null) result = caseYFocusable(yMasterDetail);
+				if (result == null) result = caseYElement(yMasterDetail);
+				if (result == null) result = caseYCssAble(yMasterDetail);
+				if (result == null) result = caseYVisibleable(yMasterDetail);
+				if (result == null) result = caseYAuthorizationable(yMasterDetail);
+				if (result == null) result = caseYTaggable(yMasterDetail);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YFORM_LAYOUT: {
+				YFormLayout yFormLayout = (YFormLayout)theEObject;
+				T result = caseYFormLayout(yFormLayout);
+				if (result == null) result = caseYLayout(yFormLayout);
+				if (result == null) result = caseYSpacingable(yFormLayout);
+				if (result == null) result = caseYMarginable(yFormLayout);
+				if (result == null) result = caseYAlignmentContainer(yFormLayout);
+				if (result == null) result = caseYEmbeddable(yFormLayout);
+				if (result == null) result = caseYEditable(yFormLayout);
+				if (result == null) result = caseYEnable(yFormLayout);
+				if (result == null) result = caseYElement(yFormLayout);
+				if (result == null) result = caseYCssAble(yFormLayout);
+				if (result == null) result = caseYVisibleable(yFormLayout);
+				if (result == null) result = caseYAuthorizationable(yFormLayout);
+				if (result == null) result = caseYTaggable(yFormLayout);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YFORM_LAYOUT_CELL_STYLE: {
+				YFormLayoutCellStyle yFormLayoutCellStyle = (YFormLayoutCellStyle)theEObject;
+				T result = caseYFormLayoutCellStyle(yFormLayoutCellStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YSEARCH_FIELD: {
+				YSearchField ySearchField = (YSearchField)theEObject;
+				T result = caseYSearchField(ySearchField);
+				if (result == null) result = caseYInput(ySearchField);
+				if (result == null) result = caseYValueBindable(ySearchField);
+				if (result == null) result = caseYField(ySearchField);
+				if (result == null) result = caseYBindable(ySearchField);
+				if (result == null) result = caseYEmbeddable(ySearchField);
+				if (result == null) result = caseYEditable(ySearchField);
+				if (result == null) result = caseYEnable(ySearchField);
+				if (result == null) result = caseYFocusable(ySearchField);
+				if (result == null) result = caseYElement(ySearchField);
+				if (result == null) result = caseYCssAble(ySearchField);
+				if (result == null) result = caseYVisibleable(ySearchField);
+				if (result == null) result = caseYAuthorizationable(ySearchField);
+				if (result == null) result = caseYTaggable(ySearchField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YTEXT_SEARCH_FIELD: {
+				YTextSearchField yTextSearchField = (YTextSearchField)theEObject;
+				T result = caseYTextSearchField(yTextSearchField);
+				if (result == null) result = caseYSearchField(yTextSearchField);
+				if (result == null) result = caseYInput(yTextSearchField);
+				if (result == null) result = caseYValueBindable(yTextSearchField);
+				if (result == null) result = caseYField(yTextSearchField);
+				if (result == null) result = caseYBindable(yTextSearchField);
+				if (result == null) result = caseYEmbeddable(yTextSearchField);
+				if (result == null) result = caseYEditable(yTextSearchField);
+				if (result == null) result = caseYEnable(yTextSearchField);
+				if (result == null) result = caseYFocusable(yTextSearchField);
+				if (result == null) result = caseYElement(yTextSearchField);
+				if (result == null) result = caseYCssAble(yTextSearchField);
+				if (result == null) result = caseYVisibleable(yTextSearchField);
+				if (result == null) result = caseYAuthorizationable(yTextSearchField);
+				if (result == null) result = caseYTaggable(yTextSearchField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YBOOLEAN_SEARCH_FIELD: {
+				YBooleanSearchField yBooleanSearchField = (YBooleanSearchField)theEObject;
+				T result = caseYBooleanSearchField(yBooleanSearchField);
+				if (result == null) result = caseYSearchField(yBooleanSearchField);
+				if (result == null) result = caseYInput(yBooleanSearchField);
+				if (result == null) result = caseYValueBindable(yBooleanSearchField);
+				if (result == null) result = caseYField(yBooleanSearchField);
+				if (result == null) result = caseYBindable(yBooleanSearchField);
+				if (result == null) result = caseYEmbeddable(yBooleanSearchField);
+				if (result == null) result = caseYEditable(yBooleanSearchField);
+				if (result == null) result = caseYEnable(yBooleanSearchField);
+				if (result == null) result = caseYFocusable(yBooleanSearchField);
+				if (result == null) result = caseYElement(yBooleanSearchField);
+				if (result == null) result = caseYCssAble(yBooleanSearchField);
+				if (result == null) result = caseYVisibleable(yBooleanSearchField);
+				if (result == null) result = caseYAuthorizationable(yBooleanSearchField);
+				if (result == null) result = caseYTaggable(yBooleanSearchField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YNUMERIC_SEARCH_FIELD: {
+				YNumericSearchField yNumericSearchField = (YNumericSearchField)theEObject;
+				T result = caseYNumericSearchField(yNumericSearchField);
+				if (result == null) result = caseYSearchField(yNumericSearchField);
+				if (result == null) result = caseYInput(yNumericSearchField);
+				if (result == null) result = caseYValueBindable(yNumericSearchField);
+				if (result == null) result = caseYField(yNumericSearchField);
+				if (result == null) result = caseYBindable(yNumericSearchField);
+				if (result == null) result = caseYEmbeddable(yNumericSearchField);
+				if (result == null) result = caseYEditable(yNumericSearchField);
+				if (result == null) result = caseYEnable(yNumericSearchField);
+				if (result == null) result = caseYFocusable(yNumericSearchField);
+				if (result == null) result = caseYElement(yNumericSearchField);
+				if (result == null) result = caseYCssAble(yNumericSearchField);
+				if (result == null) result = caseYVisibleable(yNumericSearchField);
+				if (result == null) result = caseYAuthorizationable(yNumericSearchField);
+				if (result == null) result = caseYTaggable(yNumericSearchField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YREFERENCE_SEARCH_FIELD: {
+				YReferenceSearchField yReferenceSearchField = (YReferenceSearchField)theEObject;
+				T result = caseYReferenceSearchField(yReferenceSearchField);
+				if (result == null) result = caseYSearchField(yReferenceSearchField);
+				if (result == null) result = caseYInput(yReferenceSearchField);
+				if (result == null) result = caseYValueBindable(yReferenceSearchField);
+				if (result == null) result = caseYField(yReferenceSearchField);
+				if (result == null) result = caseYBindable(yReferenceSearchField);
+				if (result == null) result = caseYEmbeddable(yReferenceSearchField);
+				if (result == null) result = caseYEditable(yReferenceSearchField);
+				if (result == null) result = caseYEnable(yReferenceSearchField);
+				if (result == null) result = caseYFocusable(yReferenceSearchField);
+				if (result == null) result = caseYElement(yReferenceSearchField);
+				if (result == null) result = caseYCssAble(yReferenceSearchField);
+				if (result == null) result = caseYVisibleable(yReferenceSearchField);
+				if (result == null) result = caseYAuthorizationable(yReferenceSearchField);
+				if (result == null) result = caseYTaggable(yReferenceSearchField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YPANEL: {
+				YPanel yPanel = (YPanel)theEObject;
+				T result = caseYPanel(yPanel);
+				if (result == null) result = caseYLayout(yPanel);
+				if (result == null) result = caseYFocusable(yPanel);
+				if (result == null) result = caseYEmbeddable(yPanel);
+				if (result == null) result = caseYEditable(yPanel);
+				if (result == null) result = caseYEnable(yPanel);
+				if (result == null) result = caseYElement(yPanel);
+				if (result == null) result = caseYCssAble(yPanel);
+				if (result == null) result = caseYVisibleable(yPanel);
+				if (result == null) result = caseYAuthorizationable(yPanel);
+				if (result == null) result = caseYTaggable(yPanel);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YSPLIT_PANEL: {
+				YSplitPanel ySplitPanel = (YSplitPanel)theEObject;
+				T result = caseYSplitPanel(ySplitPanel);
+				if (result == null) result = caseYLayout(ySplitPanel);
+				if (result == null) result = caseYEmbeddable(ySplitPanel);
+				if (result == null) result = caseYEditable(ySplitPanel);
+				if (result == null) result = caseYEnable(ySplitPanel);
+				if (result == null) result = caseYElement(ySplitPanel);
+				if (result == null) result = caseYCssAble(ySplitPanel);
+				if (result == null) result = caseYVisibleable(ySplitPanel);
+				if (result == null) result = caseYAuthorizationable(ySplitPanel);
+				if (result == null) result = caseYTaggable(ySplitPanel);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YSEARCH_PANEL: {
+				YSearchPanel ySearchPanel = (YSearchPanel)theEObject;
+				T result = caseYSearchPanel(ySearchPanel);
+				if (result == null) result = caseYLayout(ySearchPanel);
+				if (result == null) result = caseYSpacingable(ySearchPanel);
+				if (result == null) result = caseYMarginable(ySearchPanel);
+				if (result == null) result = caseYEmbeddable(ySearchPanel);
+				if (result == null) result = caseYEditable(ySearchPanel);
+				if (result == null) result = caseYEnable(ySearchPanel);
+				if (result == null) result = caseYElement(ySearchPanel);
+				if (result == null) result = caseYCssAble(ySearchPanel);
+				if (result == null) result = caseYVisibleable(ySearchPanel);
+				if (result == null) result = caseYAuthorizationable(ySearchPanel);
+				if (result == null) result = caseYTaggable(ySearchPanel);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YENUM_OPTIONS_GROUP: {
+				YEnumOptionsGroup yEnumOptionsGroup = (YEnumOptionsGroup)theEObject;
+				T result = caseYEnumOptionsGroup(yEnumOptionsGroup);
+				if (result == null) result = caseYInput(yEnumOptionsGroup);
+				if (result == null) result = caseYCollectionBindable(yEnumOptionsGroup);
+				if (result == null) result = caseYSelectionBindable(yEnumOptionsGroup);
+				if (result == null) result = caseYMultiSelectionBindable(yEnumOptionsGroup);
+				if (result == null) result = caseYField(yEnumOptionsGroup);
+				if (result == null) result = caseYBindable(yEnumOptionsGroup);
+				if (result == null) result = caseYEmbeddable(yEnumOptionsGroup);
+				if (result == null) result = caseYEditable(yEnumOptionsGroup);
+				if (result == null) result = caseYEnable(yEnumOptionsGroup);
+				if (result == null) result = caseYFocusable(yEnumOptionsGroup);
+				if (result == null) result = caseYElement(yEnumOptionsGroup);
+				if (result == null) result = caseYCssAble(yEnumOptionsGroup);
+				if (result == null) result = caseYVisibleable(yEnumOptionsGroup);
+				if (result == null) result = caseYAuthorizationable(yEnumOptionsGroup);
+				if (result == null) result = caseYTaggable(yEnumOptionsGroup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YENUM_LIST: {
+				YEnumList yEnumList = (YEnumList)theEObject;
+				T result = caseYEnumList(yEnumList);
+				if (result == null) result = caseYInput(yEnumList);
+				if (result == null) result = caseYCollectionBindable(yEnumList);
+				if (result == null) result = caseYSelectionBindable(yEnumList);
+				if (result == null) result = caseYMultiSelectionBindable(yEnumList);
+				if (result == null) result = caseYField(yEnumList);
+				if (result == null) result = caseYBindable(yEnumList);
+				if (result == null) result = caseYEmbeddable(yEnumList);
+				if (result == null) result = caseYEditable(yEnumList);
+				if (result == null) result = caseYEnable(yEnumList);
+				if (result == null) result = caseYFocusable(yEnumList);
+				if (result == null) result = caseYElement(yEnumList);
+				if (result == null) result = caseYCssAble(yEnumList);
+				if (result == null) result = caseYVisibleable(yEnumList);
+				if (result == null) result = caseYAuthorizationable(yEnumList);
+				if (result == null) result = caseYTaggable(yEnumList);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YENUM_COMBO_BOX: {
+				YEnumComboBox yEnumComboBox = (YEnumComboBox)theEObject;
+				T result = caseYEnumComboBox(yEnumComboBox);
+				if (result == null) result = caseYInput(yEnumComboBox);
+				if (result == null) result = caseYCollectionBindable(yEnumComboBox);
+				if (result == null) result = caseYSelectionBindable(yEnumComboBox);
+				if (result == null) result = caseYField(yEnumComboBox);
+				if (result == null) result = caseYBindable(yEnumComboBox);
+				if (result == null) result = caseYEmbeddable(yEnumComboBox);
+				if (result == null) result = caseYEditable(yEnumComboBox);
+				if (result == null) result = caseYEnable(yEnumComboBox);
+				if (result == null) result = caseYFocusable(yEnumComboBox);
+				if (result == null) result = caseYElement(yEnumComboBox);
+				if (result == null) result = caseYCssAble(yEnumComboBox);
+				if (result == null) result = caseYVisibleable(yEnumComboBox);
+				if (result == null) result = caseYAuthorizationable(yEnumComboBox);
+				if (result == null) result = caseYTaggable(yEnumComboBox);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YBEAN_SERVICE_CONSUMER: {
+				YBeanServiceConsumer yBeanServiceConsumer = (YBeanServiceConsumer)theEObject;
+				T result = caseYBeanServiceConsumer(yBeanServiceConsumer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YADD_TO_TABLE_COMMAND: {
+				YAddToTableCommand yAddToTableCommand = (YAddToTableCommand)theEObject;
+				T result = caseYAddToTableCommand(yAddToTableCommand);
+				if (result == null) result = caseYCommand(yAddToTableCommand);
+				if (result == null) result = caseYElement(yAddToTableCommand);
+				if (result == null) result = caseYTaggable(yAddToTableCommand);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YREMOVE_FROM_TABLE_COMMAND: {
+				YRemoveFromTableCommand yRemoveFromTableCommand = (YRemoveFromTableCommand)theEObject;
+				T result = caseYRemoveFromTableCommand(yRemoveFromTableCommand);
+				if (result == null) result = caseYCommand(yRemoveFromTableCommand);
+				if (result == null) result = caseYElement(yRemoveFromTableCommand);
+				if (result == null) result = caseYTaggable(yRemoveFromTableCommand);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YBROWSER_STREAM_INPUT: {
+				YBrowserStreamInput yBrowserStreamInput = (YBrowserStreamInput)theEObject;
+				T result = caseYBrowserStreamInput(yBrowserStreamInput);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YSET_NEW_BEAN_INSTANCE_COMMAND: {
+				YSetNewBeanInstanceCommand ySetNewBeanInstanceCommand = (YSetNewBeanInstanceCommand)theEObject;
+				T result = caseYSetNewBeanInstanceCommand(ySetNewBeanInstanceCommand);
+				if (result == null) result = caseYCommand(ySetNewBeanInstanceCommand);
+				if (result == null) result = caseYElement(ySetNewBeanInstanceCommand);
+				if (result == null) result = caseYTaggable(ySetNewBeanInstanceCommand);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YCSS_LAYOUT: {
+				YCssLayout yCssLayout = (YCssLayout)theEObject;
+				T result = caseYCssLayout(yCssLayout);
+				if (result == null) result = caseYLayout(yCssLayout);
+				if (result == null) result = caseYSpacingable(yCssLayout);
+				if (result == null) result = caseYMarginable(yCssLayout);
+				if (result == null) result = caseYAlignmentContainer(yCssLayout);
+				if (result == null) result = caseYEmbeddable(yCssLayout);
+				if (result == null) result = caseYEditable(yCssLayout);
+				if (result == null) result = caseYEnable(yCssLayout);
+				if (result == null) result = caseYElement(yCssLayout);
+				if (result == null) result = caseYCssAble(yCssLayout);
+				if (result == null) result = caseYVisibleable(yCssLayout);
+				if (result == null) result = caseYAuthorizationable(yCssLayout);
+				if (result == null) result = caseYTaggable(yCssLayout);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YCSS_LAYOUT_CELL_STYLE: {
+				YCssLayoutCellStyle yCssLayoutCellStyle = (YCssLayoutCellStyle)theEObject;
+				T result = caseYCssLayoutCellStyle(yCssLayoutCellStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YFILTER: {
+				YFilter yFilter = (YFilter)theEObject;
+				T result = caseYFilter(yFilter);
+				if (result == null) result = caseYElement(yFilter);
+				if (result == null) result = caseYTaggable(yFilter);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT: {
+				YAbsoluteLayout yAbsoluteLayout = (YAbsoluteLayout)theEObject;
+				T result = caseYAbsoluteLayout(yAbsoluteLayout);
+				if (result == null) result = caseYLayout(yAbsoluteLayout);
+				if (result == null) result = caseYEmbeddable(yAbsoluteLayout);
+				if (result == null) result = caseYEditable(yAbsoluteLayout);
+				if (result == null) result = caseYEnable(yAbsoluteLayout);
+				if (result == null) result = caseYElement(yAbsoluteLayout);
+				if (result == null) result = caseYCssAble(yAbsoluteLayout);
+				if (result == null) result = caseYVisibleable(yAbsoluteLayout);
+				if (result == null) result = caseYAuthorizationable(yAbsoluteLayout);
+				if (result == null) result = caseYTaggable(yAbsoluteLayout);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YABSOLUTE_LAYOUT_CELL_STYLE: {
+				YAbsoluteLayoutCellStyle yAbsoluteLayoutCellStyle = (YAbsoluteLayoutCellStyle)theEObject;
+				T result = caseYAbsoluteLayoutCellStyle(yAbsoluteLayoutCellStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YSUGGEST_TEXT_FIELD: {
+				YSuggestTextField ySuggestTextField = (YSuggestTextField)theEObject;
+				T result = caseYSuggestTextField(ySuggestTextField);
+				if (result == null) result = caseYInput(ySuggestTextField);
+				if (result == null) result = caseYValueBindable(ySuggestTextField);
+				if (result == null) result = caseYField(ySuggestTextField);
+				if (result == null) result = caseYBindable(ySuggestTextField);
+				if (result == null) result = caseYEmbeddable(ySuggestTextField);
+				if (result == null) result = caseYEditable(ySuggestTextField);
+				if (result == null) result = caseYEnable(ySuggestTextField);
+				if (result == null) result = caseYFocusable(ySuggestTextField);
+				if (result == null) result = caseYElement(ySuggestTextField);
+				if (result == null) result = caseYCssAble(ySuggestTextField);
+				if (result == null) result = caseYVisibleable(ySuggestTextField);
+				if (result == null) result = caseYAuthorizationable(ySuggestTextField);
+				if (result == null) result = caseYTaggable(ySuggestTextField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ExtensionModelPackage.YPASSWORD_FIELD: {
+				YPasswordField yPasswordField = (YPasswordField)theEObject;
+				T result = caseYPasswordField(yPasswordField);
+				if (result == null) result = caseYInput(yPasswordField);
+				if (result == null) result = caseYValueBindable(yPasswordField);
+				if (result == null) result = caseYField(yPasswordField);
+				if (result == null) result = caseYBindable(yPasswordField);
+				if (result == null) result = caseYEmbeddable(yPasswordField);
+				if (result == null) result = caseYEditable(yPasswordField);
+				if (result == null) result = caseYEnable(yPasswordField);
+				if (result == null) result = caseYFocusable(yPasswordField);
+				if (result == null) result = caseYElement(yPasswordField);
+				if (result == null) result = caseYCssAble(yPasswordField);
+				if (result == null) result = caseYVisibleable(yPasswordField);
+				if (result == null) result = caseYAuthorizationable(yPasswordField);
+				if (result == null) result = caseYTaggable(yPasswordField);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YText Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YText Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTextField(YTextField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBean Reference Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBean Reference Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBeanReferenceField(YBeanReferenceField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YGrid Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YGrid Layout</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYGridLayout(YGridLayout object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YGrid Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YGrid Layout Cell Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYGridLayoutCellStyle(YGridLayoutCellStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YHorizontal Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YHorizontal Layout</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYHorizontalLayout(YHorizontalLayout object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YHorizontal Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YHorizontal Layout Cell Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYHorizontalLayoutCellStyle(YHorizontalLayoutCellStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YVertical Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YVertical Layout</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYVerticalLayout(YVerticalLayout object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YVertical Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YVertical Layout Cell Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYVerticalLayoutCellStyle(YVerticalLayoutCellStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSpan Info</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSpan Info</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSpanInfo(YSpanInfo object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTable(YTable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YColumn</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YColumn</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYColumn(YColumn object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSort Column</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSort Column</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSortColumn(YSortColumn object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YLabel</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YLabel</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYLabel(YLabel object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YImage</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YImage</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYImage(YImage object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YText Area</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YText Area</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTextArea(YTextArea object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCheck Box</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCheck Box</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCheckBox(YCheckBox object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBrowser</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBrowser</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBrowser(YBrowser object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDate Time</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDate Time</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDateTime(YDateTime object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YInput</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YInput</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYInput(YInput object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YDecimal Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YDecimal Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYDecimalField(YDecimalField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YNumeric Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YNumeric Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYNumericField(YNumericField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCombo Box</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCombo Box</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYComboBox(YComboBox object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YList</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YList</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYList(YList object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YButton</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YButton</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYButton(YButton object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSlider</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSlider</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSlider(YSlider object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YToggle Button</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YToggle Button</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYToggleButton(YToggleButton object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YProgress Bar</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YProgress Bar</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYProgressBar(YProgressBar object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTab Sheet</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTab Sheet</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTabSheet(YTabSheet object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTab</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTab</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTab(YTab object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMaster Detail</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMaster Detail</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMasterDetail(YMasterDetail object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YForm Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YForm Layout</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYFormLayout(YFormLayout object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YForm Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YForm Layout Cell Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYFormLayoutCellStyle(YFormLayoutCellStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSearch Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSearch Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSearchField(YSearchField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YText Search Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YText Search Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTextSearchField(YTextSearchField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBoolean Search Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBoolean Search Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBooleanSearchField(YBooleanSearchField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YNumeric Search Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YNumeric Search Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYNumericSearchField(YNumericSearchField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YReference Search Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YReference Search Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYReferenceSearchField(YReferenceSearchField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YPanel</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YPanel</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYPanel(YPanel object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSplit Panel</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSplit Panel</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSplitPanel(YSplitPanel object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSearch Panel</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSearch Panel</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSearchPanel(YSearchPanel object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEnum Options Group</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEnum Options Group</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEnumOptionsGroup(YEnumOptionsGroup object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEnum List</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEnum List</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEnumList(YEnumList object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEnum Combo Box</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEnum Combo Box</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEnumComboBox(YEnumComboBox object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBean Service Consumer</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBean Service Consumer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBeanServiceConsumer(YBeanServiceConsumer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAdd To Table Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAdd To Table Command</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAddToTableCommand(YAddToTableCommand object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YRemove From Table Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YRemove From Table Command</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYRemoveFromTableCommand(YRemoveFromTableCommand object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBrowser Stream Input</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBrowser Stream Input</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBrowserStreamInput(YBrowserStreamInput object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSet New Bean Instance Command</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSet New Bean Instance Command</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSetNewBeanInstanceCommand(YSetNewBeanInstanceCommand object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCss Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCss Layout</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCssLayout(YCssLayout object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCss Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCss Layout Cell Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCssLayoutCellStyle(YCssLayoutCellStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YFilter</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YFilter</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYFilter(YFilter object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAbsolute Layout</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAbsolute Layout</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAbsoluteLayout(YAbsoluteLayout object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAbsolute Layout Cell Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAbsolute Layout Cell Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAbsoluteLayoutCellStyle(YAbsoluteLayoutCellStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSuggest Text Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSuggest Text Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSuggestTextField(YSuggestTextField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YPassword Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YPassword Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYPasswordField(YPasswordField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTaggable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTaggable(YTaggable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YTree</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YTree</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYTree(YTree object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YOptions Group</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YOptions Group</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYOptionsGroup(YOptionsGroup object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YElement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYElement(YElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCss Able</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCss Able</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCssAble(YCssAble object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YVisibleable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YVisibleable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYVisibleable(YVisibleable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAuthorizationable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAuthorizationable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAuthorizationable(YAuthorizationable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEmbeddable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEmbeddable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEmbeddable(YEmbeddable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEditable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEditable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEditable(YEditable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YEnable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YEnable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYEnable(YEnable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YFocusable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YFocusable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYFocusable(YFocusable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YField</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YField</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYField(YField object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YBindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YBindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYBindable(YBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YValue Bindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YValue Bindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYValueBindable(YValueBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YLayout</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YLayout</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYLayout(YLayout object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSpacingable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSpacingable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSpacingable(YSpacingable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMarginable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMarginable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMarginable(YMarginable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAlignment Container</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAlignment Container</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAlignmentContainer(YAlignmentContainer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCollection Bindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCollection Bindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCollectionBindable(YCollectionBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YSelection Bindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YSelection Bindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYSelectionBindable(YSelectionBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YMulti Selection Bindable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YMulti Selection Bindable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYMultiSelectionBindable(YMultiSelectionBindable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YAction</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YAction</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYAction(YAction object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YActivateable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YActivateable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYActivateable(YActivateable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>YCommand</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>YCommand</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseYCommand(YCommand object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //ExtensionModelSwitch
diff --git a/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/util/SimpleExtensionModelFactory.java b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/util/SimpleExtensionModelFactory.java
new file mode 100644
index 0000000..2f66be0
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/src/org/eclipse/osbp/ecview/core/extension/model/extension/util/SimpleExtensionModelFactory.java
@@ -0,0 +1,603 @@
+/*
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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                                 
+ *                                                                            
+ *  Initial contribution:                                                      
+ *     Loetz GmbH & Co. KG                               
+ * 
+ */
+package org.eclipse.osbp.ecview.core.extension.model.extension.util;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.util.SimpleCoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.ValidationFactory;
+import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCheckBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YColumn;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YComboBox;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YCssLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDateTime;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YDecimalField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YFormLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YHorizontalLayoutCellStyle;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YImage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YLabel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YList;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YMasterDetail;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YNumericField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YOptionsGroup;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YProgressBar;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSlider;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSortColumn;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSpanInfo;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YSplitPanel;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTab;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTabSheet;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextArea;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTree;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YVerticalLayoutCellStyle;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A factory for creating SimpleExtensionModel objects.
+ */
+public class SimpleExtensionModelFactory extends SimpleCoreModelFactory {
+
+	/** The factory. */
+	private ExtensionModelFactory factory = ExtensionModelFactory.eINSTANCE;
+
+	/** The dt factory. */
+	private ExtDatatypesFactory dtFactory = ExtDatatypesFactory.eINSTANCE;
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y text field
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYTextField()
+	 */
+	public YTextField createTextField() {
+		return factory.createYTextField();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y image
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYImage()
+	 */
+	public YImage createImage() {
+		return factory.createYImage();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y progress bar
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYProgressBar()
+	 */
+	public YProgressBar createProgressBar() {
+		return factory.createYProgressBar();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y slider
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYSlider()
+	 */
+	public YSlider createSlider() {
+		return factory.createYSlider();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y grid layout
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYGridLayout()
+	 */
+	public YGridLayout createGridLayout() {
+		return factory.createYGridLayout();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y grid layout cell style
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYGridLayoutCellStyle()
+	 */
+	public YGridLayoutCellStyle createGridLayoutCellStyle() {
+		return factory.createYGridLayoutCellStyle();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y css layout
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYHorizontalLayout()
+	 */
+	public YCssLayout createCssLayout() {
+		return factory.createYCssLayout();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y css layout cell style
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYHorizontalLayoutCellStyle()
+	 */
+	public YCssLayoutCellStyle createCssLayoutCellStyle() {
+		return factory.createYCssLayoutCellStyle();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y horizontal layout
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYHorizontalLayout()
+	 */
+	public YHorizontalLayout createHorizontalLayout() {
+		return factory.createYHorizontalLayout();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y horizontal layout cell style
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYHorizontalLayoutCellStyle()
+	 */
+	public YHorizontalLayoutCellStyle createHorizontalLayoutCellStyle() {
+		return factory.createYHorizontalLayoutCellStyle();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y vertical layout
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYVerticalLayout()
+	 */
+	public YVerticalLayout createVerticalLayout() {
+		return factory.createYVerticalLayout();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y form layout
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYFormLayout()
+	 */
+	public YFormLayout createFormLayout() {
+		return factory.createYFormLayout();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y vertical layout cell style
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYVerticalLayoutCellStyle()
+	 */
+	public YVerticalLayoutCellStyle createVerticalLayoutCellStyle() {
+		return factory.createYVerticalLayoutCellStyle();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y span info
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYSpanInfo()
+	 */
+	public YSpanInfo createSpanInfo() {
+		return factory.createYSpanInfo();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y table
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYTable()
+	 */
+	public YTable createTable() {
+		return factory.createYTable();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y column
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYColumn()
+	 */
+	public YColumn createColumn() {
+		return ExtensionModelFactory.eINSTANCE.createYColumn();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y column
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYSortColumn()
+	 */
+	public YSortColumn createSortColumn() {
+		return ExtensionModelFactory.eINSTANCE.createYSortColumn();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y tab sheet
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYTable()
+	 */
+	public YTabSheet createTabSheet() {
+		return factory.createYTabSheet();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y tab
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYTable()
+	 */
+	public YTab createTab() {
+		return factory.createYTab();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y tree
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYTree()
+	 */
+	public YTree createTree() {
+		return factory.createYTree();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y label
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYLabel()
+	 */
+	public YLabel createLabel() {
+		return factory.createYLabel();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y text area
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYTextArea()
+	 */
+	public YTextArea createTextArea() {
+		return factory.createYTextArea();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y browser
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYBrowser()
+	 */
+	public YBrowser createBrowser() {
+		return factory.createYBrowser();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y date time
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYDateTime()
+	 */
+	public YDateTime createDateTime() {
+		return factory.createYDateTime();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y check box
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYCheckBox()
+	 */
+	public YCheckBox createCheckBox() {
+		return factory.createYCheckBox();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y decimal field
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYDecimalField()
+	 */
+	public YDecimalField createDecimalField() {
+		return factory.createYDecimalField();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y numeric field
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYNumericField()
+	 */
+	public YNumericField createNumericField() {
+		return factory.createYNumericField();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y combo box
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYComboBox()
+	 */
+	public YComboBox createComboBox() {
+		return factory.createYComboBox();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y list
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYList()
+	 */
+	public YList createList() {
+		return factory.createYList();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y options group
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYOptionsGroup()
+	 */
+	public YOptionsGroup createOptionsGroup() {
+		return factory.createYOptionsGroup();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y button
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYButton()
+	 */
+	public YButton createButton() {
+		return factory.createYButton();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y split panel
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYSplitPanel()
+	 */
+	public YSplitPanel createSplitPanel() {
+		return factory.createYSplitPanel();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y panel
+	 * @see org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory#createYPanel()
+	 */
+	public YPanel createPanel() {
+		return factory.createYPanel();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y text datatype
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYTextDatatype()
+	 */
+	public YTextDatatype createTextDatatype() {
+		return dtFactory.createYTextDatatype();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y progress bar datatype
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYProgressBarDatatype()
+	 */
+	public YProgressBarDatatype createProgressBarDatatype() {
+		return dtFactory.createYProgressBarDatatype();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y text area datatype
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYTextAreaDatatype()
+	 */
+	public YTextAreaDatatype createTextAreaDatatype() {
+		return dtFactory.createYTextAreaDatatype();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y numeric datatype
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYNumericDatatype()
+	 */
+	public YNumericDatatype createNumericDatatype() {
+		return dtFactory.createYNumericDatatype();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y decimal datatype
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYDecimalDatatype()
+	 */
+	public YDecimalDatatype createDecimalDatatype() {
+		return dtFactory.createYDecimalDatatype();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y table datatype
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYTableDatatype()
+	 */
+	public YTableDatatype createTableDatatype() {
+		return dtFactory.createYTableDatatype();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y tree datatype
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYTreeDatatype()
+	 */
+	public YTreeDatatype createTreeDatatype() {
+		return dtFactory.createYTreeDatatype();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y check box datatype
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYCheckBoxDatatype()
+	 */
+	public YCheckBoxDatatype createCheckBoxDatatype() {
+		return dtFactory.createYCheckBoxDatatype();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y combo box datatype
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYComboBoxDatatype()
+	 */
+	public YComboBoxDatatype createComboBoxDatatype() {
+		return dtFactory.createYComboBoxDatatype();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y list data type
+	 * @see org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesFactory#createYListDataType()
+	 */
+	public YListDataType createListDataType() {
+		return dtFactory.createYListDataType();
+	}
+
+	/**
+	 * Creates an instance of {@link YHorizontalLayoutCellStyle}.
+	 *
+	 * @param yComponent
+	 *            set as target
+	 * @param yLayout
+	 *            style added to this layout
+	 * @return the y horizontal layout cell style
+	 */
+	public YHorizontalLayoutCellStyle createHorizontalLayoutCellStyle(
+			YEmbeddable yComponent, YHorizontalLayout yLayout) {
+		YHorizontalLayoutCellStyle yStyle = ExtensionModelFactory.eINSTANCE
+				.createYHorizontalLayoutCellStyle();
+		yStyle.setTarget(yComponent);
+		yLayout.getCellStyles().add(yStyle);
+		return yStyle;
+	}
+
+	/**
+	 * Creates an instance of {@link YVerticalLayoutCellStyle}.
+	 *
+	 * @param yComponent
+	 *            set as target
+	 * @param yLayout
+	 *            style added to this layout
+	 * @return the y vertical layout cell style
+	 */
+	public YVerticalLayoutCellStyle createVerticalLayoutCellStyle(
+			YEmbeddable yComponent, YVerticalLayout yLayout) {
+		YVerticalLayoutCellStyle yStyle = ExtensionModelFactory.eINSTANCE
+				.createYVerticalLayoutCellStyle();
+		yStyle.setTarget(yComponent);
+		yLayout.getCellStyles().add(yStyle);
+		return yStyle;
+	}
+
+	/**
+	 * Returns a master detail element.
+	 *
+	 * @return the y master detail
+	 */
+	public YMasterDetail createMasterDetail() {
+		return ExtensionModelFactory.eINSTANCE.createYMasterDetail();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y max length validator
+	 */
+	public YMaxLengthValidator createMaxLengthValidator() {
+		return ValidationFactory.eINSTANCE.createYMaxLengthValidator();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y min length validator
+	 */
+	public YMinLengthValidator createMinLengthValidator() {
+		return ValidationFactory.eINSTANCE.createYMinLengthValidator();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y regexp validator
+	 */
+	public YRegexpValidator createRegexpValidator() {
+		return ValidationFactory.eINSTANCE.createYRegexpValidator();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y class delegate validator
+	 */
+	public YClassDelegateValidator createClassDelegateValidator() {
+		return ValidationFactory.eINSTANCE.createYClassDelegateValidator();
+	}
+
+	/**
+	 * Creates a new SimpleExtensionModel object.
+	 *
+	 * @return the y bean validation validator
+	 */
+	public YBeanValidationValidator createBeanValidationValidator() {
+		return ValidationFactory.eINSTANCE.createYBeanValidationValidator();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.model/text/description.txt b/org.eclipse.osbp.ecview.core.extension.model/text/description.txt
new file mode 100644
index 0000000..06cec71
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.model/text/description.txt
@@ -0,0 +1,402 @@
+Model Extension
+
+This model description is not a real EMF artifact. It was generated by the
+org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's
+code generator can be extended.
+This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+
+Contains packages:
+  datatypes <http://lunifera.org/ecview/v1/extension/datatypes>
+  extension <http://lunifera.org/ecview/v1/extension/view>
+
+Package datatypes <http://lunifera.org/ecview/v1/extension/datatypes>
+
+  Class YTextDatatype -> YDatatype, YMaxLengthValidationConfig, YMinLengthValidationConfig, YRegexpValidationConfig
+
+  Class YTextAreaDatatype -> YDatatype, YMinLengthValidationConfig, YMaxLengthValidationConfig, YRegexpValidationConfig
+
+  Class YNumericDatatype -> YDatatype, YRegexpValidationConfig
+    Attribute grouping : EBoolean
+    Attribute markNegative : EBoolean
+
+  Class YDecimalDatatype -> YNumericDatatype, YRegexpValidationConfig
+    Attribute precision : EInt
+
+  Class YTableDatatype -> YDatatype
+
+  Class YCheckBoxDatatype -> YDatatype
+
+  Class YComboBoxDatatype -> YDatatype
+
+  Class YListDataType -> YDatatype
+
+  Class YOptionsGroupDataType -> YDatatype
+
+  Class YBrowserDatatype -> YDatatype
+
+  Class YDateTimeDatatype -> YDatatype
+    Attribute format : YDateTimeFormat
+    Attribute resolution : YDateTimeResolution
+
+  Class YTreeDatatype -> YDatatype
+
+  Class YProgressBarDatatype -> YDatatype
+
+  Class YTabSheetDatatype -> YDatatype
+
+  Class YMasterDetailDatatype -> YDatatype
+
+  Enum YDateTimeFormat
+    Literal DATE = 0
+    Literal TIME = 1
+    Literal DATE_TIME = 2
+
+  Enum YDateTimeResolution
+    Literal SECOND = 0
+    Literal MINUTE = 1
+    Literal HOUR = 2
+    Literal DAY = 3
+    Literal MONTH = 4
+    Literal YEAR = 5
+    Literal UNDEFINED = 6
+
+Package extension <http://lunifera.org/ecview/v1/extension/view>
+
+  Class YInput -> YField
+
+  Class YGridLayout -> YLayout, YSpacingable, YMarginable
+    Reference cellStyles : YGridLayoutCellStyle<<0..*>>
+    Attribute columns : EInt
+    Operation addGridLayoutCellStyle(YEmbeddable) : YGridLayoutCellStyle
+
+  Class YGridLayoutCellStyle
+    Reference target : YEmbeddable<<1..1>>
+    Attribute alignment : YAlignment
+    Reference spanInfo : YSpanInfo
+    Operation addSpanInfo(EInt, EInt, EInt, EInt) : YSpanInfo
+
+  Class YHorizontalLayout -> YLayout, YSpacingable, YMarginable
+    Reference cellStyles : YHorizontalLayoutCellStyle<<0..*>>
+    Operation getCellStyle(YEmbeddable) : YHorizontalLayoutCellStyle
+
+  Class YHorizontalLayoutCellStyle
+    Reference target : YEmbeddable<<1..1>>
+    Attribute alignment : YAlignment
+
+  Class YVerticalLayout -> YLayout, YSpacingable, YMarginable
+    Reference cellStyles : YVerticalLayoutCellStyle<<0..*>>
+
+  Class YVerticalLayoutCellStyle
+    Reference target : YEmbeddable<<1..1>>
+    Attribute alignment : YAlignment
+
+  Class YSpanInfo
+    Attribute columnFrom : EInt
+    Attribute rowFrom : EInt
+    Attribute columnTo : EInt
+    Attribute rowTo : EInt
+
+  Class YTable -> YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable, YBeanServiceConsumer
+    Reference datatype : YTableDatatype
+    Reference datadescription : YDatadescription
+    Attribute selectionType : YSelectionType
+    Attribute selection : EJavaObject
+    Attribute multiSelection : EJavaObject<<0..*>>
+    Attribute collection : EJavaObject<<0..*>>
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+    Reference columns : YColumn<<0..*>>
+    Attribute itemImageProperty : EString
+    Attribute filter : EJavaObject
+    Attribute refresh : EJavaObject
+
+  Class YColumn -> YElement
+    Attribute icon : EString
+    Attribute visible : EBoolean
+    Reference datadescription : YDatadescription
+    Reference orphanDatadescriptions : YDatadescription<<0..*>>
+    Attribute orderable : EBoolean
+    Attribute collapsed : EBoolean
+    Attribute collapsible : EBoolean
+    Attribute alignment : YFlatAlignment
+    Attribute expandRatio : EFloat
+    Attribute propertyPath : EString
+
+  Class YTree -> YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable, YBeanServiceConsumer
+    Reference datatype : YTreeDatatype
+    Reference datadescription : YDatadescription
+    Attribute selectionType : YSelectionType
+    Attribute selection : EJavaObject
+    Attribute multiSelection : EJavaObject<<0..*>>
+    Attribute collection : EJavaObject<<0..*>>
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+
+  Class YOptionsGroup -> YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable, YBeanServiceConsumer
+    Reference datadescription : YDatadescription
+    Reference datatype : YOptionsGroupDataType
+    Attribute selectionType : YSelectionType
+    Attribute selection : EJavaObject
+    Attribute multiSelection : EJavaObject<<0..*>>
+    Attribute collection : EJavaObject<<0..*>>
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+    Attribute captionProperty : EString
+    Attribute imageProperty : EString
+    Attribute descriptionProperty : EString
+    Attribute description : EString
+
+  Class YList -> YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable, YBeanServiceConsumer
+    Reference datadescription : YDatadescription
+    Reference datatype : YListDataType
+    Attribute selectionType : YSelectionType
+    Attribute selection : EJavaObject
+    Attribute multiSelection : EJavaObject<<0..*>>
+    Attribute collection : EJavaObject<<0..*>>
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+    Attribute captionProperty : EString
+    Attribute imageProperty : EString
+    Attribute descriptionProperty : EString
+    Attribute description : EString
+
+  Class YLabel -> YField, YValueBindable
+    Reference datadescription : YDatadescription
+    Attribute value : EString
+
+  Class YImage -> YField, YValueBindable
+    Reference datadescription : YDatadescription
+    Attribute value : EString
+
+  Class YTextField -> YInput, YValueBindable
+    Reference datatype : YTextDatatype
+    Reference datadescription : YDatadescription
+    Attribute value : EString
+
+  Class YBeanReferenceField -> YInput, YValueBindable, YBeanServiceConsumer
+    Reference datadescription : YDatadescription
+    Attribute value : EJavaObject
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+    Attribute inMemoryBeanProvider : EJavaClass
+    Attribute inMemoryBeanProviderQualifiedName : EString
+    Attribute captionPropertyPath : EString
+    Attribute imagePropertyPath : EString
+    Attribute descriptionProperty : EString
+    Attribute description : EString
+    Attribute referenceSourceType : EJavaClass
+    Attribute referenceSourceTypeQualifiedName : EString
+    Attribute referenceSourceTypeProperty : EString
+
+  Class YTextArea -> YInput, YValueBindable
+    Reference datadescription : YDatadescription
+    Reference datatype : YTextAreaDatatype
+    Attribute value : EString
+
+  Class YCheckBox -> YInput, YValueBindable
+    Reference datadescription : YDatadescription
+    Reference datatype : YCheckBoxDatatype
+    Attribute value : EBoolean
+
+  Class YBrowser -> YInput, YValueBindable
+    Reference datatype : YBrowserDatatype
+    Reference datadescription : YDatadescription
+    Attribute value : EJavaObject
+
+  Class YDateTime -> YInput, YValueBindable
+    Reference datatype : YDateTimeDatatype
+    Reference datadescription : YDatadescription
+    Attribute value : EDate
+
+  Class YDecimalField -> YInput, YValueBindable
+    Reference datatype : YDecimalDatatype
+    Reference datadescription : YDatadescription
+    Attribute value : EDouble
+
+  Class YNumericField -> YInput, YValueBindable
+    Reference datatype : YNumericDatatype
+    Reference datadescription : YDatadescription
+    Attribute value : ELong
+
+  Class YComboBox -> YInput, YCollectionBindable, YSelectionBindable, YBeanServiceConsumer
+    Reference datadescription : YDatadescription
+    Reference datatype : YComboBoxDatatype
+    Attribute selection : EJavaObject
+    Attribute collection : EJavaObject<<0..*>>
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+    Attribute captionProperty : EString
+    Attribute imageProperty : EString
+    Attribute descriptionProperty : EString
+    Attribute description : EString
+
+  Class YButton -> YAction, YVisibleable, YEditable, YEnable
+    Reference datadescription : YDatadescription
+    Attribute clickListeners : YButtonClickListener<<0..*>>
+    Attribute lastClickTime : ELong
+    Operation addClickListener(YButtonClickListener) : void
+    Operation removeClickListener(YButtonClickListener) : void
+    Operation createClickEndpoint() : YECViewModelValueBindingEndpoint
+
+  Class YToggleButton -> YAction, YActivateable
+    Reference datadescription : YDatadescription
+
+  Class YProgressBar -> YInput, YValueBindable
+    Reference datatype : YProgressBarDatatype
+    Reference datadescription : YDatadescription
+    Attribute value : EFloat
+
+  Class YTabSheet -> YEmbeddable
+    Reference tabs : YTab<<0..*>>
+
+  Class YTab -> YElement, YCssAble
+    Reference parent : YTabSheet<<1..1>>
+    Reference embeddable : YEmbeddable<<1..1>>
+    Reference datadescription : YDatadescription
+    Operation getView() : YView
+
+  Class YMasterDetail -> YInput, YCollectionBindable, YSelectionBindable
+    Reference datatype : YMasterDetailDatatype
+    Reference datadescription : YDatadescription
+    Attribute selection : EJavaObject
+    Attribute collection : EJavaObject<<0..*>>
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Reference masterElement : YEmbeddable
+    Reference detailElement : YEmbeddable
+    Attribute typeQualifiedName : EString
+
+  Class YFormLayout -> YLayout, YSpacingable, YMarginable
+    Reference cellStyles : YFormLayoutCellStyle<<0..*>>
+
+  Class YFormLayoutCellStyle
+    Reference target : YEmbeddable<<1..1>>
+    Attribute alignment : YAlignment
+
+  Class YTextSearchField -> YInput, YValueBindable
+    Reference datadescription : YDatadescription
+    Attribute value : EString
+    Attribute wildcard : YSearchWildcards
+    Attribute propertyPath : EString
+
+  Class YBooleanSearchField -> YInput, YValueBindable
+    Reference datadescription : YDatadescription
+    Attribute value : YBooleanSearchOption
+    Attribute propertyPath : EString
+
+  Class YNumericSearchField -> YInput, YValueBindable
+    Reference datadescription : YDatadescription
+    Attribute value : EString
+    Attribute wildcard : YSearchWildcards
+    Attribute propertyPath : EString
+    Attribute type : EJavaClass
+    Attribute typeQualifiedName : EString
+
+  Class YReferenceSearchField -> YInput, YValueBindable
+    Reference datadescription : YDatadescription
+    Attribute value : EJavaObject
+    Attribute wildcard : YSearchWildcards
+    Attribute propertyPath : EString
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+
+  Class YPanel -> YLayout
+    Reference datadescription : YDatadescription
+    Reference firstContent : YEmbeddable
+    Reference secondContent : YEmbeddable
+    Operation getCellStyle(YEmbeddable) : YHorizontalLayoutCellStyle
+
+  Class YSplitPanel -> YLayout
+    Reference datadescription : YDatadescription
+    Reference cellStyles : YHorizontalLayoutCellStyle<<0..*>>
+    Attribute fillHorizontal : EBoolean
+    Attribute splitPosition : EInt
+    Attribute vertical : EBoolean
+    Operation getCellStyle(YEmbeddable) : YHorizontalLayoutCellStyle
+
+  Class YSearchPanel -> YLayout, YSpacingable, YMarginable
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+    Attribute applyFilter : EJavaObject
+    Attribute filter : EJavaObject
+
+  Class YEnumOptionsGroup -> YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable
+    Reference datadescription : YDatadescription
+    Reference datatype : YOptionsGroupDataType
+    Attribute selectionType : YSelectionType
+    Attribute selection : EJavaObject
+    Attribute multiSelection : EJavaObject<<0..*>>
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+
+  Class YEnumList -> YInput, YCollectionBindable, YSelectionBindable, YMultiSelectionBindable
+    Reference datadescription : YDatadescription
+    Reference datatype : YListDataType
+    Attribute selectionType : YSelectionType
+    Attribute selection : EJavaObject
+    Attribute multiSelection : EJavaObject<<0..*>>
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+
+  Class YEnumComboBox -> YInput, YCollectionBindable, YSelectionBindable
+    Reference datadescription : YDatadescription
+    Reference datatype : YComboBoxDatatype
+    Attribute selection : EJavaObject
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+
+  Class YBeanServiceConsumer
+    Attribute useBeanService : EBoolean
+
+  Class YAddToTableCommand -> YCommand
+    Reference table : YTable
+    Attribute trigger : EJavaObject
+
+  Class YRemoveFromTableCommand -> YCommand
+    Reference table : YTable
+    Attribute trigger : EJavaObject
+
+  Class YBrowserStreamInput
+    Attribute filename : EString<<1..1>>
+    Attribute inputStream : YInputStream<<1..1>>
+    Attribute mimeType : EString<<1..1>>
+
+  Class YSetNewBeanInstanceCommand -> YCommand
+    Reference target : YValueBindingEndpoint
+    Attribute trigger : EJavaObject
+    Attribute type : EJavaClass
+    Attribute emfNsURI : EString
+    Attribute typeQualifiedName : EString
+
+  Enum YSelectionType
+    Literal SINGLE = 0
+    Literal MULTI = 1
+
+  Enum YBooleanSearchOption
+    Literal TRUE = 0
+    Literal FALSE = 1
+    Literal IGNORE = 2
+
+  Enum YSearchWildcards
+    Literal GT = 0
+    Literal GE = 1
+    Literal LT = 2
+    Literal LE = 3
+    Literal EQ = 4
+    Literal NE = 5
+    Literal ANY = 6
+
+  DataType YButtonClickListener <org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener>
+
+  DataType YInputStream <java.io.InputStream>
diff --git a/org.eclipse.osbp.ecview.core.extension.tests/.project b/org.eclipse.osbp.ecview.core.extension.tests/.project
new file mode 100644
index 0000000..bd20bd6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.tests/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.extension.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.extension.tests/LICENSE.txt b/org.eclipse.osbp.ecview.core.extension.tests/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.tests/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.extension.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..651ee1c
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.extension.tests
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.extension.tests
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Require-Bundle: org.junit;bundle-version="4.10.0",
+ org.eclipse.osbp.ecview.core.extension.editparts;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.extension.editparts.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.extension.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.util.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common.editparts.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.slf4j;version="1.7.2"
diff --git a/org.eclipse.osbp.ecview.core.extension.tests/build.properties b/org.eclipse.osbp.ecview.core.extension.tests/build.properties
new file mode 100644
index 0000000..5e68017
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.tests/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+bin.includes = META-INF/,\
+               .,\
+               target/classes/,\
+               license.html,\
+               LICENSE.txt
+output.. = target/classes
+src.includes = LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.extension.tests/license.html b/org.eclipse.osbp.ecview.core.extension.tests/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.tests/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.extension.tests/pom.xml b/org.eclipse.osbp.ecview.core.extension.tests/pom.xml
new file mode 100644
index 0000000..92023f9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.tests/pom.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.osbp.ecview.core</groupId>
+    <artifactId>org.eclipse.osbp.ecview.core</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>org.eclipse.osbp.ecview.core.extension.tests</artifactId>
+  <packaging>eclipse-test-plugin</packaging>
+  <description>Tests the extensions</description>
+  
+  	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<configuration>
+					<includes>
+						<include>**/*Test.class</include>
+						<include>**/*Tests.class</include>
+					</includes>
+					<failIfNoTests>false</failIfNoTests>
+					<showEclipseLog>true</showEclipseLog>
+					<!-- <argLine>${ui.test.vmargs}</argLine> -->
+					<bundleStartLevel>
+						<bundle>
+							<id>org.eclipse.osgi</id>
+							<level>-1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.equinox.common</id>
+							<level>1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.equinox.ds</id>
+							<level>2</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.equinox.log</id>
+							<level>1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.osgi.services</id>
+							<level>1</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.osbp.ecview.core.common.editparts.emf</id>
+							<level>4</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.osbp.ecview.core.extension.editparts.emf</id>
+							<level>4</level>
+							<autoStart>true</autoStart>
+						</bundle>
+						<bundle>
+							<id>org.eclipse.osbp.ecview.core.extension.tests</id>
+							<level>4</level>
+							<autoStart>true</autoStart>
+						</bundle>
+					</bundleStartLevel>
+
+					<dependencies>
+						<!-- Plugins -->
+						<dependency>
+							<type>eclipse-plugin</type>
+							<artifactId>org.eclipse.equinox.ds</artifactId>
+							<version>0.0.0</version>
+						</dependency>
+						<dependency>
+							<type>eclipse-plugin</type>
+							<artifactId>org.eclipse.equinox.util</artifactId>
+							<version>0.0.0</version>
+						</dependency>
+					</dependencies>
+
+					<useUIHarness>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+  
+</project>
diff --git a/org.eclipse.osbp.ecview.core.extension.tests/src/org/eclipse/osbp/ecview/core/extension/tests/datatypes/DatatypeEditpartTest_BasedOnTextTests.java b/org.eclipse.osbp.ecview.core.extension.tests/src/org/eclipse/osbp/ecview/core/extension/tests/datatypes/DatatypeEditpartTest_BasedOnTextTests.java
new file mode 100644
index 0000000..8774eed
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.tests/src/org/eclipse/osbp/ecview/core/extension/tests/datatypes/DatatypeEditpartTest_BasedOnTextTests.java
@@ -0,0 +1,637 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.tests.datatypes;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeBridge;
+import org.eclipse.osbp.ecview.core.common.editpart.datatypes.IDatatypeEditpart.DatatypeChangeEvent;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.MaxLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.MinLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.RegexpValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IMaxLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IMinLengthValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IRegexpValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.validation.IValidatorEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
+import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.TextFieldEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YGridLayout;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YTextField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.util.SimpleExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.tests.datatypes.helper.HelperEditpartManager;
+import org.eclipse.osbp.ecview.core.extension.tests.datatypes.helper.HelperTextDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.util.emf.ModelUtil;
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+
+@SuppressWarnings("restriction")
+public class DatatypeEditpartTest_BasedOnTextTests {
+
+	private SimpleExtensionModelFactory factory = new SimpleExtensionModelFactory();
+	private DelegatingEditPartManager editpartManager = DelegatingEditPartManager
+			.getInstance();
+	private CoreModelFactory modelFactory = CoreModelFactory.eINSTANCE;
+	private YTextField yText;
+	private YTextDatatype yTextDatatype;
+	private TextFieldEditpart textEditpart;
+	private HelperTextDatatypeEditpart textDatatypeEditpart;
+	private YGridLayout yLayout;
+
+	/**
+	 * Setup.
+	 */
+	@Before
+	public void setup() {
+		editpartManager.clear();
+		editpartManager
+				.addDelegate(new org.eclipse.osbp.ecview.core.common.editpart.emf.EditpartManager());
+		editpartManager.addDelegate(new HelperEditpartManager());
+
+		YView yView = factory.createView();
+		yLayout = factory.createGridLayout();
+		yView.setContent(yLayout);
+		yText = factory.createTextField();
+		yLayout.getElements().add(yText);
+		yTextDatatype = factory.createTextDatatype();
+		yText.setDatatype(yTextDatatype);
+
+		ViewContext context = new ViewContext();
+		IViewEditpart viewEditpart = ModelUtil.getEditpart(context, yView);
+
+		textEditpart = ModelUtil.getEditpart(context, yText);
+		textDatatypeEditpart = ModelUtil.getEditpart(context, yTextDatatype);
+	}
+
+	@Test
+	public void test_DefaultDatatype() {
+		assertEquals(0, textEditpart.getValidators().size());
+		assertEquals(0, yText.getValidators().size());
+
+		// no datatype validators created since datasettings are default
+		assertEquals(0, textEditpart.getDatatypeValidators().size());
+		assertEquals(0, yText.getInternalValidators().size());
+	}
+
+	@Test
+	public void test_datatypeIsSetFromBeginning() {
+		// the problem is, that the textEditparts need to register as a bridge
+		// at the datatype editpart during initializion
+		// at this state, the setup must be done!
+
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+
+		yTextDatatype.setMinLength(10);
+		yTextDatatype.setRegExpression("Huhu");
+		// no datatype validators created since datasettings are default
+		assertEquals(0, textEditpart.getValidators().size());
+		assertEquals(0, yText.getValidators().size());
+		assertEquals(2, textEditpart.getDatatypeValidators().size());
+		assertEquals(2, yText.getInternalValidators().size());
+
+	}
+
+	@Test
+	public void test_setNewDatatypeToField_AndChangeSettings() {
+
+		// reset datatype
+		yText.setDatatype(null);
+
+		// set the datatype
+		yText.setDatatype(yTextDatatype);
+
+		yTextDatatype.setMinLength(10);
+		yTextDatatype.setMaxLength(100);
+		yTextDatatype.setRegExpression("Huhu");
+		// no datatype validators created since datasettings are default
+		assertEquals(0, textEditpart.getValidators().size());
+		assertEquals(0, yText.getValidators().size());
+		assertEquals(3, textEditpart.getDatatypeValidators().size());
+		assertEquals(3, yText.getInternalValidators().size());
+
+		Set<Class<?>> types = new HashSet<Class<?>>();
+		Set<Class<?>> allowedTypes = new HashSet<Class<?>>();
+		allowedTypes.add(MinLengthValidatorEditpart.class);
+		allowedTypes.add(MaxLengthValidatorEditpart.class);
+		allowedTypes.add(RegexpValidatorEditpart.class);
+		for (IValidatorEditpart validator : textEditpart
+				.getDatatypeValidators()) {
+			Class<?> type = validator.getClass();
+			if (!allowedTypes.contains(type)) {
+				fail(type + " is not a valid type!");
+			}
+
+			if (!types.add(type)) {
+				fail(type + " must only be defined once!");
+			}
+		}
+
+		// now set minlength to -1
+		// -> So the MinLengthValidator is removed
+		yTextDatatype.setMinLength(-1);
+		assertEquals(2, textEditpart.getDatatypeValidators().size());
+		assertEquals(2, yText.getInternalValidators().size());
+		types = new HashSet<Class<?>>();
+		allowedTypes = new HashSet<Class<?>>();
+		allowedTypes.add(MaxLengthValidatorEditpart.class);
+		allowedTypes.add(RegexpValidatorEditpart.class);
+		for (IValidatorEditpart validator : textEditpart
+				.getDatatypeValidators()) {
+			Class<?> type = validator.getClass();
+			if (!allowedTypes.contains(type)) {
+				fail(type + " is not a valid type!");
+			}
+
+			if (!types.add(type)) {
+				fail(type + " must only be defined once!");
+			}
+		}
+
+		// now set minlength to 10
+		// -> So the MinLengthValidator is added again
+		yTextDatatype.setMinLength(10);
+		assertEquals(3, textEditpart.getDatatypeValidators().size());
+		assertEquals(3, yText.getInternalValidators().size());
+		types = new HashSet<Class<?>>();
+		allowedTypes = new HashSet<Class<?>>();
+		allowedTypes.add(MinLengthValidatorEditpart.class);
+		allowedTypes.add(MaxLengthValidatorEditpart.class);
+		allowedTypes.add(RegexpValidatorEditpart.class);
+		for (IValidatorEditpart validator : textEditpart
+				.getDatatypeValidators()) {
+			Class<?> type = validator.getClass();
+			if (!allowedTypes.contains(type)) {
+				fail(type + " is not a valid type!");
+			}
+
+			if (!types.add(type)) {
+				fail(type + " must only be defined once!");
+			}
+		}
+
+		// now set all values to default
+		// -> So all validators are removed again
+		yTextDatatype.setMinLength(-1);
+		yTextDatatype.setMaxLength(-1);
+		yTextDatatype.setRegExpression("");
+		types = new HashSet<Class<?>>();
+		assertEquals(0, textEditpart.getDatatypeValidators().size());
+		assertEquals(0, yText.getInternalValidators().size());
+	}
+
+	/**
+	 * Changing the settings does not change the amount of registered
+	 * validators. Updated internally.
+	 */
+	@Test
+	public void test_changeDatatype_Settings() {
+
+		// reset datatype
+		yText.setDatatype(null);
+		// set the datatype
+		yTextDatatype.setMinLength(10);
+		yTextDatatype.setMaxLength(100);
+		yTextDatatype.setRegExpression("Huhu");
+		yText.setDatatype(yTextDatatype);
+
+		assertEquals(0, textEditpart.getValidators().size());
+		assertEquals(0, yText.getValidators().size());
+		assertEquals(3, textEditpart.getDatatypeValidators().size());
+		assertEquals(3, yText.getInternalValidators().size());
+
+		// set to null
+		yTextDatatype.setMinLength(20);
+		assertEquals(0, textEditpart.getValidators().size());
+		assertEquals(0, yText.getValidators().size());
+		assertEquals(3, textEditpart.getDatatypeValidators().size());
+		assertEquals(3, yText.getInternalValidators().size());
+
+		// set again
+		yTextDatatype.setMaxLength(999);
+		assertEquals(0, textEditpart.getValidators().size());
+		assertEquals(0, yText.getValidators().size());
+		assertEquals(3, textEditpart.getDatatypeValidators().size());
+		assertEquals(3, yText.getInternalValidators().size());
+
+		// now all datatypes must be removed
+		yTextDatatype.setMinLength(-1);
+		yTextDatatype.setMaxLength(-1);
+		yTextDatatype.setRegExpression("");
+		assertEquals(0, textEditpart.getDatatypeValidators().size());
+		assertEquals(0, yText.getInternalValidators().size());
+	}
+
+	/**
+	 * Changing the settings does not change the amount of registered
+	 * validators. Updated internally.
+	 */
+	@Test
+	public void test_internalUpdateOfValidatorsByDatatype() {
+
+		// set the datatype
+		yTextDatatype.setMinLength(10);
+		yTextDatatype.setMaxLength(100);
+		yTextDatatype.setRegExpression("Huhu");
+
+		IMinLengthValidatorEditpart minLength = null;
+		IMaxLengthValidatorEditpart maxLength = null;
+		IRegexpValidatorEditpart regexpLength = null;
+		for (IValidatorEditpart editpart : textEditpart.getDatatypeValidators()) {
+			if (editpart instanceof IMinLengthValidatorEditpart) {
+				minLength = (IMinLengthValidatorEditpart) editpart;
+			} else if (editpart instanceof IMaxLengthValidatorEditpart) {
+				maxLength = (IMaxLengthValidatorEditpart) editpart;
+			} else if (editpart instanceof IRegexpValidatorEditpart) {
+				regexpLength = (IRegexpValidatorEditpart) editpart;
+			}
+		}
+
+		assertNotNull(minLength);
+		assertNotNull(maxLength);
+		assertNotNull(regexpLength);
+
+		YMinLengthValidator yMinLength = (YMinLengthValidator) minLength
+				.getModel();
+		YMaxLengthValidator yMaxLength = (YMaxLengthValidator) maxLength
+				.getModel();
+		YRegexpValidator yRegexpLength = (YRegexpValidator) regexpLength
+				.getModel();
+
+		assertEquals(10, yMinLength.getMinLength());
+		assertEquals(100, yMaxLength.getMaxLength());
+		assertEquals("Huhu", yRegexpLength.getRegExpression());
+
+		yTextDatatype.setMinLength(20);
+		assertEquals(20, yMinLength.getMinLength());
+		assertEquals(100, yMaxLength.getMaxLength());
+		assertEquals("Huhu", yRegexpLength.getRegExpression());
+
+		yTextDatatype.setMaxLength(999);
+		assertEquals(20, yMinLength.getMinLength());
+		assertEquals(999, yMaxLength.getMaxLength());
+		assertEquals("Huhu", yRegexpLength.getRegExpression());
+
+		yTextDatatype.setRegExpression("blablabla");
+		assertEquals(20, yMinLength.getMinLength());
+		assertEquals(999, yMaxLength.getMaxLength());
+		assertEquals("blablabla", yRegexpLength.getRegExpression());
+	}
+
+	@Test
+	public void test_getBridges_1() {
+		// access the editpart for yText2 eager
+		//
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+		yText.setDatatype(null);
+		assertEquals(0, textDatatypeEditpart.getBridges().size());
+		yText.setDatatype(yTextDatatype);
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+
+		// share the same datatype between two fields
+		YTextField yText2 = factory.createTextField();
+		yLayout.getElements().add(yText2);
+		// eager
+		ModelUtil.getEditpart(new ViewContext(), yText2);
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+
+		yText2.setDatatype(yTextDatatype);
+		assertEquals(2, textDatatypeEditpart.getBridges().size());
+
+		yText.setDatatype(null);
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+		yText2.setDatatype(null);
+		assertEquals(0, textDatatypeEditpart.getBridges().size());
+
+	}
+
+	@Test
+	public void test_getBridges_2() {
+		// access the editpart for yText2 late
+		//
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+		yText.setDatatype(null);
+		assertEquals(0, textDatatypeEditpart.getBridges().size());
+		yText.setDatatype(yTextDatatype);
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+
+		// share the same datatype between two fields
+		YTextField yText2 = factory.createTextField();
+		yLayout.getElements().add(yText2);
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+
+		yText2.setDatatype(yTextDatatype);
+		// late
+		ModelUtil.getEditpart(new ViewContext(), yText2);
+		assertEquals(2, textDatatypeEditpart.getBridges().size());
+
+		yText.setDatatype(null);
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+		yText2.setDatatype(null);
+		assertEquals(0, textDatatypeEditpart.getBridges().size());
+	}
+
+	@Test
+	public void test_getBridges_3() {
+		// never access editpart for text2
+		//
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+		yText.setDatatype(null);
+		assertEquals(0, textDatatypeEditpart.getBridges().size());
+		yText.setDatatype(yTextDatatype);
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+
+		// share the same datatype between two fields
+		YTextField yText2 = factory.createTextField();
+		yLayout.getElements().add(yText2);
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+
+		yText2.setDatatype(yTextDatatype);
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+	}
+
+	@Test
+	public void test_getCurrentState() {
+		YTextDatatype yTextDatatype = factory.createTextDatatype();
+		HelperTextDatatypeEditpart textDatatypeEditpart = ModelUtil
+				.getEditpart(new ViewContext(), yTextDatatype);
+
+		DatatypeChangeEvent state = textDatatypeEditpart.getCurrentState();
+		assertEquals(0, state.getAddedValidators().size());
+		assertEquals(0, state.getRemovedValidators().size());
+		assertNull(state.getChangeObject());
+		assertSame(textDatatypeEditpart, state.getEditpart());
+
+		yTextDatatype.setMinLength(10);
+		state = textDatatypeEditpart.getCurrentState();
+		assertEquals(1, state.getAddedValidators().size());
+		assertEquals(0, state.getRemovedValidators().size());
+		assertNull(state.getChangeObject());
+		assertSame(textDatatypeEditpart, state.getEditpart());
+
+		yTextDatatype.setMaxLength(10);
+		state = textDatatypeEditpart.getCurrentState();
+		assertEquals(2, state.getAddedValidators().size());
+		assertEquals(0, state.getRemovedValidators().size());
+		assertNull(state.getChangeObject());
+		assertSame(textDatatypeEditpart, state.getEditpart());
+
+		yTextDatatype.setRegExpression("Huhu");
+		state = textDatatypeEditpart.getCurrentState();
+		assertEquals(3, state.getAddedValidators().size());
+		assertEquals(0, state.getRemovedValidators().size());
+		assertNull(state.getChangeObject());
+		assertSame(textDatatypeEditpart, state.getEditpart());
+
+		yTextDatatype.setMinLength(-1);
+		yTextDatatype.setMaxLength(-1);
+		yTextDatatype.setRegExpression("");
+		state = textDatatypeEditpart.getCurrentState();
+		assertEquals(0, state.getAddedValidators().size());
+		assertEquals(0, state.getRemovedValidators().size());
+		assertNull(state.getChangeObject());
+		assertSame(textDatatypeEditpart, state.getEditpart());
+	}
+
+	@Test
+	public void test_bridgeNotification() {
+		YTextDatatype yTextDatatype = factory.createTextDatatype();
+		HelperTextDatatypeEditpart textDatatypeEditpart = ModelUtil
+				.getEditpart(new ViewContext(), yTextDatatype);
+
+		Bridge bridge = new Bridge();
+		textDatatypeEditpart.addBridge(bridge);
+		assertNull(bridge.lastEvent);
+
+		yTextDatatype.setMaxLength(10);
+		assertEquals(1, bridge.validators.size());
+
+		yTextDatatype.setMaxLength(0);
+		assertEquals(0, bridge.validators.size());
+
+		bridge.lastEvent = null;
+		yTextDatatype.setMaxLength(10);
+		assertNotNull(bridge.lastEvent);
+
+		bridge.lastEvent = null;
+		yTextDatatype.setMinLength(10);
+		assertNotNull(bridge.lastEvent);
+
+		bridge.lastEvent = null;
+		yTextDatatype.setRegExpression("Huhu");
+		assertEquals(3, bridge.validators.size());
+		assertNotNull(bridge.lastEvent);
+	}
+
+	@Test
+	public void test_dispose() {
+		assertEquals(1, textDatatypeEditpart.getBridges().size());
+
+		yTextDatatype.setMaxLength(10);
+		assertEquals(1, yText.getInternalValidators().size());
+
+		// dispose the datatype
+		textDatatypeEditpart.dispose();
+		assertEquals(0, yText.getInternalValidators().size());
+
+		try {
+			textDatatypeEditpart.addDisposeListener(new IDisposable.Listener() {
+				@Override
+				public void notifyDisposed(IDisposable notifier) {
+				}
+			});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			textDatatypeEditpart.getId();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			textDatatypeEditpart.getModel();
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			textDatatypeEditpart
+					.removeDisposeListener(new IDisposable.Listener() {
+						@Override
+						public void notifyDisposed(IDisposable notifier) {
+						}
+					});
+			Assert.fail();
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (Exception e) {
+			// END SUPRESS CATCH EXCEPTION
+			// expected
+		}
+
+		try {
+			textDatatypeEditpart.getBridges();
+			fail("Is disposed!");
+		} catch (Exception ex) {
+		}
+
+		try {
+			textDatatypeEditpart.getCurrentState();
+			fail("Is disposed!");
+		} catch (Exception ex) {
+		}
+
+		try {
+			textDatatypeEditpart.getValidationSettings();
+			fail("Is disposed!");
+		} catch (Exception ex) {
+		}
+
+		assertEquals(0, yText.getDatatype().eAdapters().size());
+
+		// assert no events are delivered
+		yTextDatatype.setMinLength(10);
+		assertEquals(0, yText.getInternalValidators().size());
+	}
+
+	@Test
+	public void test_internalValidatorsDisposed() {
+		// set the datatype
+		yTextDatatype.setMinLength(10);
+		yTextDatatype.setMaxLength(100);
+		yTextDatatype.setRegExpression("Huhu");
+
+		IMinLengthValidatorEditpart minLength = null;
+		IMaxLengthValidatorEditpart maxLength = null;
+		IRegexpValidatorEditpart regexpLength = null;
+		for (IValidatorEditpart editpart : textEditpart.getDatatypeValidators()) {
+			if (editpart instanceof IMinLengthValidatorEditpart) {
+				minLength = (IMinLengthValidatorEditpart) editpart;
+			} else if (editpart instanceof IMaxLengthValidatorEditpart) {
+				maxLength = (IMaxLengthValidatorEditpart) editpart;
+			} else if (editpart instanceof IRegexpValidatorEditpart) {
+				regexpLength = (IRegexpValidatorEditpart) editpart;
+			}
+		}
+
+		assertNotNull(minLength);
+		assertNotNull(maxLength);
+		assertNotNull(regexpLength);
+		assertFalse(minLength.isDisposed());
+		assertFalse(maxLength.isDisposed());
+		assertFalse(regexpLength.isDisposed());
+		assertEquals(4, yTextDatatype.eAdapters().size());
+
+		yTextDatatype.setMinLength(0);
+		assertTrue(minLength.isDisposed());
+		assertFalse(maxLength.isDisposed());
+		assertFalse(regexpLength.isDisposed());
+		assertEquals(3, yTextDatatype.eAdapters().size());
+
+		yTextDatatype.setMaxLength(0);
+		assertTrue(minLength.isDisposed());
+		assertTrue(maxLength.isDisposed());
+		assertFalse(regexpLength.isDisposed());
+		assertEquals(2, yTextDatatype.eAdapters().size());
+
+		yTextDatatype.setRegExpression("");
+		assertTrue(minLength.isDisposed());
+		assertTrue(maxLength.isDisposed());
+		assertTrue(regexpLength.isDisposed());
+		assertEquals(1, yTextDatatype.eAdapters().size());
+	}
+
+	@Test
+	public void test_internalValidatorsDisposed_AfterEditpartDisposal() {
+		// set the datatype
+		yTextDatatype.setMinLength(10);
+		yTextDatatype.setMaxLength(100);
+		yTextDatatype.setRegExpression("Huhu");
+
+		IMinLengthValidatorEditpart minLength = null;
+		IMaxLengthValidatorEditpart maxLength = null;
+		IRegexpValidatorEditpart regexpLength = null;
+		for (IValidatorEditpart editpart : textEditpart.getDatatypeValidators()) {
+			if (editpart instanceof IMinLengthValidatorEditpart) {
+				minLength = (IMinLengthValidatorEditpart) editpart;
+			} else if (editpart instanceof IMaxLengthValidatorEditpart) {
+				maxLength = (IMaxLengthValidatorEditpart) editpart;
+			} else if (editpart instanceof IRegexpValidatorEditpart) {
+				regexpLength = (IRegexpValidatorEditpart) editpart;
+			}
+		}
+
+		assertNotNull(minLength);
+		assertNotNull(maxLength);
+		assertNotNull(regexpLength);
+		assertFalse(minLength.isDisposed());
+		assertFalse(maxLength.isDisposed());
+		assertFalse(regexpLength.isDisposed());
+		assertEquals(4, yTextDatatype.eAdapters().size());
+
+		textDatatypeEditpart.dispose();
+
+		assertTrue(minLength.isDisposed());
+		assertTrue(maxLength.isDisposed());
+		assertTrue(regexpLength.isDisposed());
+		assertEquals(0, yTextDatatype.eAdapters().size());
+	}
+
+	private class Bridge implements DatatypeBridge {
+
+		private final List<IValidatorEditpart> validators = new ArrayList<IValidatorEditpart>();
+		private DatatypeChangeEvent lastEvent;
+
+		@Override
+		public void notifyDatatypeChanged(DatatypeChangeEvent event) {
+			validators.removeAll(event.getRemovedValidators());
+			validators.addAll(event.getAddedValidators());
+			lastEvent = event;
+
+		}
+
+		@Override
+		public List<IValidatorEditpart> getDatatypeValidators() {
+			return validators;
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.tests/src/org/eclipse/osbp/ecview/core/extension/tests/datatypes/helper/HelperEditpartManager.java b/org.eclipse.osbp.ecview.core.extension.tests/src/org/eclipse/osbp/ecview/core/extension/tests/datatypes/helper/HelperEditpartManager.java
new file mode 100644
index 0000000..8b8e4df
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.tests/src/org/eclipse/osbp/ecview/core/extension/tests/datatypes/helper/HelperEditpartManager.java
@@ -0,0 +1,126 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.tests.datatypes.helper;
+
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.EditpartManager;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.TextAreaEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.BrowserDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.CheckBoxDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.ComboBoxDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.DateTimeDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.DecimalDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.ListDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.NumericDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.OptionsGroupDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.ProgressBarDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.TabSheetDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.TableDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.TreeDatatypeEditpart;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YBrowserDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YCheckBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YComboBoxDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDateTimeDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YDecimalDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YListDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YNumericDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YOptionsGroupDataType;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YProgressBarDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTabSheetDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTableDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextAreaDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTextDatatype;
+import org.eclipse.osbp.ecview.core.extension.model.datatypes.YTreeDatatype;
+
+/**
+ * Hooks up the helper editparts to test internal behaviour.
+ */
+@SuppressWarnings("restriction")
+public class HelperEditpartManager extends EditpartManager {
+
+	/**
+	 * Creates a new instance of the edit part.
+	 * 
+	 * @param <A>
+	 *            an instance of {@link IElementEditpart}
+	 * @param yElement
+	 *            the model element
+	 * @return editpart
+	 */
+	@SuppressWarnings("unchecked")
+	public <A extends IElementEditpart> A getEditpart(IViewContext context,
+			Object yElement) {
+		// asserts that no editpart was created already for the given element
+		assertOneEditpartForModelelement(yElement);
+
+		ElementEditpart<YElement> result = null;
+		if (yElement instanceof YBrowserDatatype) {
+			result = createNewInstance(BrowserDatatypeEditpart.class);
+		} else if (yElement instanceof YCheckBoxDatatype) {
+			result = createNewInstance(CheckBoxDatatypeEditpart.class);
+		} else if (yElement instanceof YComboBoxDatatype) {
+			result = createNewInstance(ComboBoxDatatypeEditpart.class);
+		} else if (yElement instanceof YDateTimeDatatype) {
+			result = createNewInstance(DateTimeDatatypeEditpart.class);
+		} else if (yElement instanceof YDecimalDatatype) {
+			result = createNewInstance(DecimalDatatypeEditpart.class);
+		} else if (yElement instanceof YListDataType) {
+			result = createNewInstance(ListDatatypeEditpart.class);
+		} else if (yElement instanceof YNumericDatatype) {
+			result = createNewInstance(NumericDatatypeEditpart.class);
+		} else if (yElement instanceof YOptionsGroupDataType) {
+			result = createNewInstance(OptionsGroupDatatypeEditpart.class);
+		} else if (yElement instanceof YProgressBarDatatype) {
+			result = createNewInstance(ProgressBarDatatypeEditpart.class);
+		} else if (yElement instanceof YTableDatatype) {
+			result = createNewInstance(TableDatatypeEditpart.class);
+		} else if (yElement instanceof YTabSheetDatatype) {
+			result = createNewInstance(TabSheetDatatypeEditpart.class);
+		} else if (yElement instanceof YTextAreaDatatype) {
+			result = createNewInstance(TextAreaEditpart.class);
+		} else if (yElement instanceof YTextDatatype) {
+			result = createNewInstance(HelperTextDatatypeEditpart.class);
+		} else if (yElement instanceof YTreeDatatype) {
+			result = createNewInstance(TreeDatatypeEditpart.class);
+		} else {
+			return super.getEditpart(context, yElement);
+		}
+
+		if (result != null) {
+			result.initialize(context, (YElement) yElement);
+		}
+
+		return (A) result;
+	}
+
+	/**
+	 * Returns a new instance of the type.
+	 * 
+	 * @param type
+	 *            The type of the editpart for which an instance should be
+	 *            created.
+	 * @return editPart
+	 * @throws InstantiationException
+	 *             e
+	 * @throws IllegalAccessException
+	 *             e
+	 */
+	protected IElementEditpart newInstance(
+			Class<? extends IElementEditpart> type)
+			throws InstantiationException, IllegalAccessException {
+		return type.newInstance();
+	}
+
+}
diff --git a/org.eclipse.osbp.ecview.core.extension.tests/src/org/eclipse/osbp/ecview/core/extension/tests/datatypes/helper/HelperTextDatatypeEditpart.java b/org.eclipse.osbp.ecview.core.extension.tests/src/org/eclipse/osbp/ecview/core/extension/tests/datatypes/helper/HelperTextDatatypeEditpart.java
new file mode 100644
index 0000000..6a1dcfc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.extension.tests/src/org/eclipse/osbp/ecview/core/extension/tests/datatypes/helper/HelperTextDatatypeEditpart.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.extension.tests.datatypes.helper;
+
+import java.util.Set;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.osbp.ecview.core.extension.editpart.emf.datatypes.TextDatatypeEditpart;
+
+@SuppressWarnings("restriction")
+public class HelperTextDatatypeEditpart extends TextDatatypeEditpart {
+	
+	@Override
+	public ValidatorDelta internalGetValidatorsDelta(DatatypeBridge bridge,
+			Notification notification) {
+		return super.internalGetValidatorsDelta(bridge, notification);
+	}
+
+	@Override
+	public Set<DatatypeBridge> getBridges() {
+		return super.getBridges();
+	}
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.feature.core/.project b/org.eclipse.osbp.ecview.core.feature.core/.project
new file mode 100644
index 0000000..67831c9
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.feature.core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.feature.core/LICENSE.txt b/org.eclipse.osbp.ecview.core.feature.core/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.feature.core/build.properties b/org.eclipse.osbp.ecview.core.feature.core/build.properties
new file mode 100644
index 0000000..2969796
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/build.properties
@@ -0,0 +1,6 @@
+bin.includes = epl-v10.html,  feature.xml,\
+               feature.properties,\
+               LICENSE.txt,\
+               license.html
+src.includes = epl-v10.html,  license.html,\
+               LICENSE.txt
diff --git a/org.eclipse.osbp.ecview.core.feature.core/epl-v10.html b/org.eclipse.osbp.ecview.core.feature.core/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?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 ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" 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>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"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.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" 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
+("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.</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 "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.</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/org.eclipse.osbp.ecview.core.feature.core/feature.properties b/org.eclipse.osbp.ecview.core.feature.core/feature.properties
new file mode 100644
index 0000000..0fbd182
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/feature.properties
@@ -0,0 +1,169 @@
+###############################################################################
+# Copyright (c) 2012, 2015 - Florian Pirchner (Austria), Loetz GmbH&Co.KG and others
+# 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:
+#    Florian Pirchner - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName = ECP UiModel Core feature 
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse OSBP
+
+# "description" property - description of the feature
+description= . 
+
+# "updateSiteName" property - label for the update site
+updateSiteName=
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+################ end of copyright property ####################################
+
+# "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/org.eclipse.osbp.ecview.core.feature.core/feature.xml b/org.eclipse.osbp.ecview.core.feature.core/feature.xml
new file mode 100644
index 0000000..07f3129
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/feature.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<feature
+        id="org.eclipse.osbp.ecview.core.feature.core"
+        label="%featureName"
+        version="0.9.0.qualifier"
+        provider-name="%providerName">
+        
+    <description>
+        %description
+    </description>
+        
+    <copyright>
+        %copyright
+    </copyright>
+        
+    <license url="%licenseURL">
+        %license
+    </license>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.common"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.common.editparts.emf"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.common.model"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.common.model.edit"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.databinding.beans"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.databinding.emf"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.extension.editparts"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.extension.editparts.emf"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.extension.model"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.extension.model.edit"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        		 
+    <plugin
+        id="org.eclipse.osbp.ecview.core.ui.presentation.common"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.util.emf"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.ecview.core.emf.api"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+</feature>
diff --git a/org.eclipse.osbp.ecview.core.feature.core/license.html b/org.eclipse.osbp.ecview.core.feature.core/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.feature.core/pom.xml b/org.eclipse.osbp.ecview.core.feature.core/pom.xml
new file mode 100644
index 0000000..f97bcb6
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/pom.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.osbp.ecview.core</groupId>
+    <artifactId>org.eclipse.osbp.ecview.core</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>org.eclipse.osbp.ecview.core.feature.core</artifactId>
+  <description>Feature for core bundles</description>
+  <packaging>eclipse-feature</packaging>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho.extras</groupId>
+				<artifactId>tycho-source-feature-plugin</artifactId>
+				<version>${tychoExtrasVersion}</version>
+				<executions>
+					<execution>
+						<id>source-feature</id>
+						<phase>package</phase>
+						<goals>
+							<goal>source-feature</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<labelSuffix> (source)</labelSuffix>
+				</configuration>
+			</plugin>
+			<plugin>
+				<!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 
+					is not fixed -->
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-p2-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<executions>
+					<execution>
+						<id>attached-p2-metadata</id>
+						<phase>package</phase>
+						<goals>
+							<goal>p2-metadata</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>javadoc-jar</id>
+						<phase>package</phase>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.feature.core/src/main/javadoc/README.txt b/org.eclipse.osbp.ecview.core.feature.core/src/main/javadoc/README.txt
new file mode 100644
index 0000000..831da7e
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/src/main/javadoc/README.txt
@@ -0,0 +1 @@
+Resource folder for javadoc resources.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.feature.core/src/overview.html b/org.eclipse.osbp.ecview.core.feature.core/src/overview.html
new file mode 100644
index 0000000..b079b59
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.feature.core/src/overview.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+  <HEAD>
+    <TITLE>OSBP .... Overview</TITLE>
+  </HEAD>
+  <BODY>
+    The <b>OSBP ....</b> implements the functionality ...
+
+	</BODY>
+</HTML>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.target.luna/.project b/org.eclipse.osbp.ecview.core.target.luna/.project
new file mode 100644
index 0000000..b993d64
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.target.luna/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.target.luna</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.target.luna/LICENSE.txt b/org.eclipse.osbp.ecview.core.target.luna/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.target.luna/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.target.luna/license.html b/org.eclipse.osbp.ecview.core.target.luna/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.target.luna/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.target.luna/org.eclipse.emf.ecp.ecview.target.kepler.target_xx b/org.eclipse.osbp.ecview.core.target.luna/org.eclipse.emf.ecp.ecview.target.kepler.target_xx
new file mode 100644
index 0000000..3b10e5f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.target.luna/org.eclipse.emf.ecp.ecview.target.kepler.target_xx
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target includeMode="feature" name="org.lunifera.ecview.core.ui.target.kepler" sequenceNumber="82">
+<locations>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
+<unit id="ch.qos.logback.core.source" version="1.0.7.v20121108-1250"/>
+<unit id="org.slf4j.api.source" version="1.7.2.v20121108-1250"/>
+<unit id="ch.qos.logback.core" version="1.0.7.v20121108-1250"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.201312041736"/>
+<repository location="http://download.eclipse.org/technology/nebula/snapshot"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.platform.sdk" version="4.3.1.M20130911-1000"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="2.9.1.v20130902-0605"/>
+<repository location="http://download.eclipse.org/releases/kepler"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.junit" version="4.11.0.v201303080030"/>
+<unit id="org.junit.source" version="4.11.0.v201303080030"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.apache.commons.beanutils" version="1.8.0.v201205091237"/>
+<unit id="org.apache.commons.beanutils.source" version="1.8.0.v201205091237"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.apache.commons.logging" version="1.1.1.v201101211721"/>
+<unit id="org.apache.commons.logging.source" version="1.1.1.v201101211721"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.riena.build.feature.sdk.e4.feature.group" version="5.0.0.v20130910_5_0_0_SR1"/>
+<repository location="http://download.eclipse.org/releases/kepler"/>
+</location>
+</locations>
+</target>
diff --git a/org.eclipse.osbp.ecview.core.target.luna/org.eclipse.osbp.ecview.core.target.luna.target b/org.eclipse.osbp.ecview.core.target.luna/org.eclipse.osbp.ecview.core.target.luna.target
new file mode 100644
index 0000000..599171b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.target.luna/org.eclipse.osbp.ecview.core.target.luna.target
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target includeMode="feature" name="org.eclipse.osbp.ecview.core.ui.target.luna.core" sequenceNumber="86">
+<locations>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.apache.commons.lang.source" version="2.6.0.v201404270220"/>
+<unit id="ch.qos.logback.core" version="1.0.7.v20121108-1250"/>
+<unit id="org.junit" version="4.11.0.v201303080030"/>
+<unit id="org.junit.source" version="4.11.0.v201303080030"/>
+<unit id="org.apache.commons.logging" version="1.1.1.v201101211721"/>
+<unit id="org.slf4j.api.source" version="1.7.2.v20121108-1250"/>
+<unit id="ch.qos.logback.core.source" version="1.0.7.v20121108-1250"/>
+<unit id="org.apache.commons.beanutils.source" version="1.8.0.v201205091237"/>
+<unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
+<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
+<unit id="org.apache.commons.logging.source" version="1.1.1.v201101211721"/>
+<unit id="org.apache.commons.beanutils" version="1.8.0.v201205091237"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.sdk.feature.group" version="2.10.1.v20140901-1055"/>
+<repository location="http://download.eclipse.org/releases/luna"/>
+</location>
+</locations>
+</target>
diff --git a/org.eclipse.osbp.ecview.core.target.luna/pom.xml b/org.eclipse.osbp.ecview.core.target.luna/pom.xml
new file mode 100644
index 0000000..0dc40a4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.target.luna/pom.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+		<groupId>org.eclipse.osbp.ecview.core</groupId>
+		<version>0.9.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.osbp.ecview.core.target.luna</artifactId>
+	<packaging>eclipse-target-definition</packaging>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/.checkstyle b/org.eclipse.osbp.ecview.core.ui.presentation.common/.checkstyle
new file mode 100644
index 0000000..2f2667a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <fileset name="all" enabled="true" check-config-name="emfstoreStyle" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/.project b/org.eclipse.osbp.ecview.core.ui.presentation.common/.project
new file mode 100644
index 0000000..397b491
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.ui.presentation.common</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/LICENSE.txt b/org.eclipse.osbp.ecview.core.ui.presentation.common/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.ui.presentation.common/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..552c44b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.ui.presentation.common
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.ui.presentation.common
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Import-Package: org.apache.commons.logging;version="1.0.4",
+ org.osgi.service.component;version="1.2.0",
+ org.slf4j
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.apache.commons.beanutils;bundle-version="1.9.2",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.1,1.5.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.1,1.5.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/about.html b/org.eclipse.osbp.ecview.core.ui.presentation.common/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/about.ini b/org.eclipse.osbp.ecview.core.ui.presentation.common/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/about.mappings b/org.eclipse.osbp.ecview.core.ui.presentation.common/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/about.properties b/org.eclipse.osbp.ecview.core.ui.presentation.common/about.properties
new file mode 100644
index 0000000..992fa77
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.ui.presentation.common
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/build.properties b/org.eclipse.osbp.ecview.core.ui.presentation.common/build.properties
new file mode 100644
index 0000000..a859291
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               target/classes/,\
+               LICENSE.txt,\
+               license.html
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/license.html b/org.eclipse.osbp.ecview.core.ui.presentation.common/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/pom.xml b/org.eclipse.osbp.ecview.core.ui.presentation.common/pom.xml
new file mode 100644
index 0000000..c6af0fb
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.ui.presentation.common</artifactId>
+  <description>Common Presentation</description>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.6</source>
+          <target>1.6</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.ui.presentation.common/src/org/eclipse/osbp/ecview/core/ui/presentation/common/IPlaceholder.java b/org.eclipse.osbp.ecview.core.ui.presentation.common/src/org/eclipse/osbp/ecview/core/ui/presentation/common/IPlaceholder.java
new file mode 100644
index 0000000..7d4b483
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.ui.presentation.common/src/org/eclipse/osbp/ecview/core/ui/presentation/common/IPlaceholder.java
@@ -0,0 +1,17 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.ui.presentation.common;
+
+public class IPlaceholder {
+
+}
+ 
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.util.emf/.checkstyle b/org.eclipse.osbp.ecview.core.util.emf/.checkstyle
new file mode 100644
index 0000000..2f2667a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <fileset name="all" enabled="true" check-config-name="emfstoreStyle" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/org.eclipse.osbp.ecview.core.util.emf/.project b/org.eclipse.osbp.ecview.core.util.emf/.project
new file mode 100644
index 0000000..8c8f9a4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.ecview.core.util.emf</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.ecview.core.util.emf/LICENSE.txt b/org.eclipse.osbp.ecview.core.util.emf/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/LICENSE.txt
@@ -0,0 +1,161 @@
+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.
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.util.emf/META-INF/MANIFEST.MF b/org.eclipse.osbp.ecview.core.util.emf/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..d189a7f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.ecview.core.util.emf
+Bundle-SymbolicName: org.eclipse.osbp.ecview.core.util.emf;singleton:=true
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore.xmi;bundle-version="2.8.0",
+ org.eclipse.osbp.ecview.core.extension.editparts;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common.editparts.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.extension.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.core.databinding,
+ org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.slf4j;version="1.6.4"
+Export-Package: org.eclipse.osbp.ecview.core.util.emf;
+  uses:="org.eclipse.osbp.ecview.core.common.editpart.binding,
+   org.eclipse.osbp.ecview.core.common.model.binding,
+   org.eclipse.core.databinding,
+   org.eclipse.osbp.ecview.core.common.presentation,
+   org.eclipse.osbp.ecview.core.common.binding,
+   org.eclipse.osbp.ecview.core.common.editpart,
+   org.eclipse.osbp.ecview.core.common.context,
+   org.eclipse.osbp.ecview.core.common.model.core,
+   org.eclipse.osbp.ecview.core.common.notification";version="0.9.0"
diff --git a/org.eclipse.osbp.ecview.core.util.emf/about.html b/org.eclipse.osbp.ecview.core.util.emf/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/about.html
@@ -0,0 +1,28 @@
+<!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>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content 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 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>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.util.emf/about.ini b/org.eclipse.osbp.ecview.core.util.emf/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.ecview.core.util.emf/about.mappings b/org.eclipse.osbp.ecview.core.util.emf/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.ecview.core.util.emf/about.properties b/org.eclipse.osbp.ecview.core.util.emf/about.properties
new file mode 100644
index 0000000..b408f5b
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Loetz GmbH&Co.KG - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.ecview.core.util.emf
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Loetz GmbH&Co.KG - implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.ecview.core.util.emf/build.properties b/org.eclipse.osbp.ecview.core.util.emf/build.properties
new file mode 100644
index 0000000..89d66d1
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               LICENSE.txt,\
+               license.html
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.ecview.core.util.emf/license.html b/org.eclipse.osbp.ecview.core.util.emf/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/license.html
@@ -0,0 +1,164 @@
+<!--?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 "CONTENT").  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
+   ("EPL").  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, "Program" 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 ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</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 ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</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 "features".  Within a Feature, files 
+named "feature.xml" 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 ("Included 
+Features"). Within a Feature, files named "feature.xml" 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 "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" 
+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 ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). 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>
+   ("Specification").</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 ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") 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 ("Installable Software Agreement") 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>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ecview.core.util.emf/pom.xml b/org.eclipse.osbp.ecview.core.util.emf/pom.xml
new file mode 100644
index 0000000..b058f43
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.ecview.core.util.emf</artifactId>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source/>
+          <target/>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <parent>
+  	<groupId>org.eclipse.osbp.ecview.core</groupId>
+  	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/org.eclipse.osbp.ecview.core.util.emf/src/org/eclipse/osbp/ecview/core/util/emf/ModelUtil.java b/org.eclipse.osbp.ecview.core.util.emf/src/org/eclipse/osbp/ecview/core/util/emf/ModelUtil.java
new file mode 100644
index 0000000..9b10b38
--- /dev/null
+++ b/org.eclipse.osbp.ecview.core.util.emf/src/org/eclipse/osbp/ecview/core/util/emf/ModelUtil.java
@@ -0,0 +1,442 @@
+/**
+ * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ *         Florian Pirchner - Initial implementation
+ */
+
+package org.eclipse.osbp.ecview.core.util.emf;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.ecview.core.common.binding.IECViewBindingManager;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.context.ViewContext;
+import org.eclipse.osbp.ecview.core.common.editpart.DelegatingEditPartManager;
+import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IEmbeddableValueBindingEndpointEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IBindingSetEditpart;
+import org.eclipse.osbp.ecview.core.common.editpart.binding.IValueBindingEditpart;
+import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBinding;
+import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
+import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YElement;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
+import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
+import org.eclipse.osbp.ecview.core.common.model.core.YValueBindable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.common.notification.ILifecycleService;
+import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
+import org.eclipse.osbp.ecview.core.common.uri.URIHelper;
+
+/**
+ * The Class ModelUtil.
+ */
+public class ModelUtil {
+
+	/**
+	 * Returns the editpart for the given element. If no editpart was found, a
+	 * new instance will be created.
+	 * 
+	 * @param context
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param yElement
+	 *            the y element
+	 * @return editpart - the controller class of the element
+	 */
+	public static <A extends IElementEditpart> A getEditpart(
+			ViewContext context, YElement yElement) {
+		return DelegatingEditPartManager.getInstance().getEditpart(context,
+				yElement);
+	}
+
+	/**
+	 * Returns the editpart for the given element. If no existing could be
+	 * found, a new one will be created.
+	 *
+	 * @param <A>
+	 *            the generic type
+	 * @param yElement
+	 *            the y element
+	 * @return editpart - the controller class of the element
+	 */
+	public static <A extends IElementEditpart> A findEditpart(YElement yElement) {
+		return DelegatingEditPartManager.getInstance().findEditpart(yElement);
+	}
+
+	public static <A extends IElementEditpart> A getEditpart(
+			IViewContext viewContext, YElement yElement) {
+		return DelegatingEditPartManager.getInstance().getEditpart(viewContext,
+				yElement);
+	}
+
+	/**
+	 * Returns the presentation for the given embeddable.
+	 *
+	 * @param yElement
+	 *            the y element
+	 * @return Presentation - the class that renders the UI for the element
+	 */
+	public static IWidgetPresentation<?> getPresentation(YEmbeddable yElement) {
+		IEmbeddableEditpart editpart = DelegatingEditPartManager.getInstance()
+				.findEditpart(yElement);
+		return editpart != null ? editpart.getPresentation() : null;
+	}
+
+	/**
+	 * Returns all bindings for the given element.
+	 *
+	 * @param yElement
+	 *            the y element
+	 * @return the bindings
+	 */
+	public static List<YBinding> getBindings(YElement yElement) {
+		if (yElement == null) {
+			return Collections.emptyList();
+		}
+
+		YView yView = getView(yElement);
+		if (yView == null) {
+			return Collections.emptyList();
+		}
+
+		YBindingSet yBindingSet = yView.getBindingSet();
+		if (yBindingSet == null) {
+			return Collections.emptyList();
+		}
+
+		List<YBinding> result = new ArrayList<YBinding>();
+		for (YBinding yBinding : yBindingSet.getBindings()) {
+			if (yBinding.isBindsElement(yElement)) {
+				result.add(yBinding);
+			}
+		}
+
+		for (YBinding yBinding : yBindingSet.getTransientBindings()) {
+			if (yBinding.isBindsElement(yElement)) {
+				result.add(yBinding);
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * Returns the value binding for the given bindable.
+	 *
+	 * @param bindable
+	 *            the bindable
+	 * @return the value binding
+	 */
+	public static Binding getValueBinding(YValueBindable bindable) {
+		if (bindable == null || bindable.getValueBindingEndpoint() == null) {
+			return null;
+		}
+		IValueBindingEditpart bindingEditpart = getValueBindingEditpart(bindable);
+		if(bindingEditpart == null) {
+			return null;
+		}
+		Binding binding = bindingEditpart.getBinding();
+		return binding;
+	}
+
+	/**
+	 * Returns the binding editpart for the given bindable.
+	 *
+	 * @param bindable
+	 *            the bindable
+	 * @return the value binding editpart
+	 */
+	public static IValueBindingEditpart getValueBindingEditpart(
+			YValueBindable bindable) {
+		if (bindable == null || bindable.getValueBindingEndpoint() == null) {
+			return null;
+		}
+
+		YBinding yBinding = bindable.getValueBindingEndpoint().getBinding();
+		IValueBindingEditpart bindingEditpart = findEditpart(yBinding);
+		return bindingEditpart;
+	}
+
+	/**
+	 * Returns the value endpoint editpart for the given bindable.
+	 *
+	 * @param bindable
+	 *            the bindable
+	 * @return the value endpoint editpart
+	 */
+	public static IEmbeddableValueBindingEndpointEditpart getValueEndpointEditpart(
+			YValueBindable bindable) {
+		if (bindable == null || bindable.getValueBindingEndpoint() == null) {
+			return null;
+		}
+
+		YEmbeddableValueEndpoint yBinding = bindable.getValueBindingEndpoint();
+		return getValueEndpointEditpart(yBinding);
+	}
+
+	/**
+	 * Returns the value endpoint editpart for the given endpoint.
+	 *
+	 * @param endpoint
+	 *            the endpoint
+	 * @return the value endpoint editpart
+	 */
+	public static IEmbeddableValueBindingEndpointEditpart getValueEndpointEditpart(
+			YEmbeddableValueEndpoint endpoint) {
+		IEmbeddableValueBindingEndpointEditpart bindingEditpart = DelegatingEditPartManager
+				.getInstance().findEditpart(endpoint);
+		return bindingEditpart;
+	}
+
+	/**
+	 * Returns all bindings that are attached to the UI widget. These bindings
+	 * connect the ECView model to the widgets. For bindings from domain model
+	 * to ECView model see {@link #getModelBindingEditparts(YEmbeddable)}. No
+	 * bindingEditparts are available for that kind of binding.
+	 *
+	 * @param yEmbeddable
+	 *            the y embeddable
+	 * @return the UI bindings
+	 */
+	public static Set<Binding> getUIBindings(YEmbeddable yEmbeddable) {
+		IWidgetPresentation<?> presentation = getPresentation(yEmbeddable);
+		return presentation.getUIBindings();
+	}
+
+	/**
+	 * Returns all bindings that are wire the domain model with the ECView
+	 * model. The ECView model is bound to the UI widgets by the UI bindings.
+	 * See {@link #getUIBindings(YEmbeddable)}.
+	 *
+	 * @param yEmbeddable
+	 *            the y embeddable
+	 * @return the model binding editparts
+	 */
+	@SuppressWarnings("unchecked")
+	public static List<IValueBindingEditpart> getModelBindingEditparts(
+			YEmbeddable yEmbeddable) {
+		YBindingSet bindingset = yEmbeddable.getView().getBindingSet();
+		if (bindingset == null) {
+			return Collections.emptyList();
+		}
+
+		IBindingSetEditpart bindingSetEditpart = findEditpart(bindingset);
+		return (List<IValueBindingEditpart>) (bindingSetEditpart != null ? bindingSetEditpart
+				.findBindings(yEmbeddable) : Collections.emptyList());
+	}
+
+	/**
+	 * Returns the widget that is associated with the given embeddable.
+	 *
+	 * @param yEmbeddable
+	 *            the y embeddable
+	 * @return the widget
+	 */
+	public static Object getWidget(YEmbeddable yEmbeddable) {
+		IWidgetPresentation<?> presentation = getPresentation(yEmbeddable);
+		return presentation.getWidget();
+	}
+
+	/**
+	 * Returns the view context for the given embeddable.
+	 *
+	 * @param yView
+	 *            the y view
+	 * @return the view context
+	 */
+	public static IViewContext getViewContext(YView yView) {
+		IViewEditpart viewEditpart = findViewEditpart(yView);
+		return viewEditpart != null ? viewEditpart.getContext() : null;
+	}
+
+	/**
+	 * Returns the view editpart for the given yView.
+	 *
+	 * @param yView
+	 *            the y view
+	 * @return the view editpart
+	 */
+	public static IViewEditpart findViewEditpart(YView yView) {
+		return findEditpart(yView);
+	}
+
+	/**
+	 * Returns the view context for the given embeddable.
+	 *
+	 * @param yEmbeddable
+	 *            the y embeddable
+	 * @return the view context
+	 */
+	public static IViewContext getViewContext(YEmbeddable yEmbeddable) {
+		IViewEditpart viewEditpart = findViewEditpart(yEmbeddable);
+		return viewEditpart != null ? viewEditpart.getContext() : null;
+	}
+
+	/**
+	 * Returns the view editpart for the given embeddable.
+	 *
+	 * @param yEmbeddable
+	 *            the y embeddable
+	 * @return the view editpart
+	 */
+	public static IViewEditpart findViewEditpart(YEmbeddable yEmbeddable) {
+		YView view = getView(yEmbeddable);
+		return (IViewEditpart) (view != null ? findEditpart(view) : null);
+	}
+
+	/**
+	 * Returns the view for the given element.
+	 *
+	 * @param yElement
+	 *            the y element
+	 * @return the view
+	 */
+	public static YView getView(YElement yElement) {
+
+		if (yElement == null) {
+			return null;
+		}
+
+		if (yElement instanceof YView) {
+			return (YView) yElement;
+		} else {
+			EObject container = yElement.eContainer();
+			while (container != null) {
+				if (container instanceof YView) {
+					return (YView) container;
+				}
+				container = container.eContainer();
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the view context for the given element.
+	 *
+	 * @param yElement
+	 *            the y element
+	 * @return the view context
+	 */
+	public static IViewContext getViewContext(YElement yElement) {
+
+		if (yElement == null) {
+			return null;
+		}
+
+		if (yElement instanceof YView) {
+			return getViewContext((YView) yElement);
+		} else {
+			EObject container = yElement.eContainer();
+			while (container != null) {
+				if (container instanceof YView) {
+					return getViewContext((YView) container);
+				}
+				container = container.eContainer();
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the {@link ILifecycleService} registered with the context.
+	 *
+	 * @param context
+	 *            the context
+	 * @return the lifecylce service
+	 */
+	public static ILifecycleService getLifecylceService(IViewContext context) {
+		return context.getService(ILifecycleService.class.getName());
+	}
+
+	/**
+	 * Returns the {@link IECViewBindingManager} registered with the context.
+	 *
+	 * @param context
+	 *            the context
+	 * @return the binding manager
+	 */
+	public static IECViewBindingManager getBindingManager(IViewContext context) {
+		return context.getService(IECViewBindingManager.class.getName());
+	}
+
+	/**
+	 * Returns the URI for the given bean slot. The URI may be used with the
+	 * {@link URIHelper} to access the bean slot.
+	 *
+	 * @param yBeanSlot
+	 *            the y bean slot
+	 * @return the uri
+	 */
+	public static URI getURI(YBeanSlot yBeanSlot) {
+		EObject container = yBeanSlot.eContainer();
+		URI uri = null;
+		if (container instanceof YView) {
+			uri = URIHelper.view().bean(yBeanSlot.getName()).toURI();
+		} else {
+			throw new RuntimeException(container + " is not a valid type!");
+		}
+
+		return uri;
+	}
+
+	/**
+	 * Returns the URI for the given bean slot endpoint. The URI may be used
+	 * with the {@link URIHelper} to access the bean the URI points to.
+	 *
+	 * @param yBeanSlotEndpoint
+	 *            the y bean slot endpoint
+	 * @return the uri
+	 */
+	public static URI getURI(YBeanSlotValueBindingEndpoint yBeanSlotEndpoint) {
+
+		YBeanSlot beanSlot = yBeanSlotEndpoint.getBeanSlot();
+		if (beanSlot == null) {
+			throw new IllegalArgumentException("BeanSlot mus not be null!");
+		}
+		EObject container = beanSlot.eContainer();
+		URI uri = null;
+		if (container instanceof YView) {
+			uri = URIHelper.view().bean(beanSlot.getName())
+					.fragment(yBeanSlotEndpoint.getAttributePath()).toURI();
+		} else {
+			throw new RuntimeException(container + " is not a valid type!");
+		}
+
+		return uri;
+	}
+
+	/**
+	 * Creates and {@link YEnumListBindingEndpoint} for the given enum.
+	 *
+	 * @param xEnum
+	 *            the x enum
+	 * @return the enum list binding
+	 */
+	public static YEnumListBindingEndpoint getEnumListBinding(
+			Class<? extends Enum<?>> xEnum) {
+		YEnumListBindingEndpoint yEndpoint = BindingFactory.eINSTANCE
+				.createYEnumListBindingEndpoint();
+		yEndpoint.setEnum(xEnum);
+		return yEndpoint;
+	}
+
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..b2b6755
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,441 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.osbp.releng.maven</groupId>
+		<artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath/>
+	</parent>
+
+	<groupId>org.eclipse.osbp.ecview.core</groupId>
+	<artifactId>org.eclipse.osbp.ecview.core</artifactId>
+	<version>0.9.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+
+	<modules>
+		<module>org.eclipse.osbp.ecview.core.common</module>
+		<module>org.eclipse.osbp.ecview.core.common.editparts.emf</module>
+		<module>org.eclipse.osbp.ecview.core.common.model</module>
+		<module>org.eclipse.osbp.ecview.core.common.model.edit</module>
+		<module>org.eclipse.osbp.ecview.core.common.model.tests</module>
+		<module>org.eclipse.osbp.ecview.core.databinding.beans</module>
+		<module>org.eclipse.osbp.ecview.core.databinding.emf</module>
+		<module>org.eclipse.osbp.ecview.core.extension.editparts</module>
+		<module>org.eclipse.osbp.ecview.core.extension.editparts.emf</module>
+		<module>org.eclipse.osbp.ecview.core.extension.model</module>
+		<module>org.eclipse.osbp.ecview.core.extension.model.edit</module>
+		<module>org.eclipse.osbp.ecview.core.extension.tests</module>
+		<module>org.eclipse.osbp.ecview.core.feature.core</module>
+		<module>org.eclipse.osbp.ecview.core.target.luna</module>
+		<module>org.eclipse.osbp.ecview.core.ui.presentation.common</module>
+		<module>org.eclipse.osbp.ecview.core.util.emf</module>
+		<module>org.eclipse.osbp.ecview.core.emf.api</module>
+
+		<!-- <module>org.eclipse.osbp.ecview.core.common.tests</module> -->
+		<!-- <module>org.eclipse.osbp.ecview.core.databinding.tests</module> -->
+		<!-- <module>org.eclipse.osbp.ecview.core.example.swt</module> -->
+		<!-- <module>org.eclipse.osbp.ecview.core.extension.tests</module> -->
+		<!-- <module>org.eclipse.osbp.ecview.core.ui.presentation.swt</module> -->
+		<!-- <module>org.eclipse.osbp.ecview.core.ui.presentation.swt.tests</module> -->
+	</modules>
+
+	<properties>
+		<next-release>0.7.6</next-release>
+		<tycho-version>0.21.0</tycho-version>
+		<tychoExtrasVersion>0.21.0</tychoExtrasVersion>
+
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
+	</properties>
+
+	<developers>
+		<developer>
+			<id>florianpirchner</id>
+			<name>Florian Pirchner</name>
+			<email>florian.pirchner@gmail.com</email>
+			<timezone>+2</timezone>
+		</developer>
+	</developers>
+
+<!-- 	<distributionManagement> -->
+<!-- 		<repository> -->
+<!-- 			<id>osbp-nexus-release</id> -->
+<!-- 			<name>Nexus Release Repository</name> -->
+<!-- 			<url>http://maven.osbp.org:8086/nexus/content/repositories/releases/</url> -->
+<!-- 		</repository> -->
+<!-- 		<snapshotRepository> -->
+<!-- 			<id>osbp-nexus-snapshots</id> -->
+<!-- 			<name>Sonatype Nexus Snapshots</name> -->
+<!-- 			<url>http://maven.osbp.org:8086/nexus/content/repositories/snapshots/</url> -->
+<!-- 		</snapshotRepository> -->
+<!-- 	</distributionManagement> -->
+
+	<profiles>
+		<profile>
+			<id>prepare-for-next-release</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<build>
+				<defaultGoal>org.eclipse.tycho:tycho-versions-plugin:set-version</defaultGoal>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>tycho-versions-plugin</artifactId>
+						<version>${tycho-version}</version>
+						<executions>
+							<execution>
+								<id>change-next-release</id>
+								<goals>
+									<goal>set-version</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<newVersion>${next-release}</newVersion>
+							<artifacts>org.eclipse.osbp.ecview.core
+							</artifacts>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+		<profile>
+			<id>testAll</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<build>
+				<defaultGoal>verify</defaultGoal>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>target-platform-configuration</artifactId>
+						<version>${tycho-version}</version>
+						<configuration>
+							<dependency-resolution>
+								<optionalDependencies>ignore</optionalDependencies>
+							</dependency-resolution>
+							<!-- <resolver>p2</resolver> -->
+							<!-- <pomDependencies>consider</pomDependencies> -->
+							<ignoreTychoRepositories>true</ignoreTychoRepositories>
+							<target>
+								<artifact>
+									<groupId>org.eclipse.osbp.ecview.core</groupId>
+									<artifactId>org.eclipse.osbp.ecview.core.target.luna</artifactId>
+									<version>0.9.0-SNAPSHOT</version>
+								</artifact>
+							</target>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+			<modules>
+				<module>org.eclipse.osbp.ecview.core.common.model.tests</module>
+				<module>org.eclipse.osbp.ecview.core.extension.tests</module>
+				<module>org.eclipse.osbp.ecview.core.databinding.tests</module>
+				<!-- <module>org.eclipse.osbp.ecview.core.common.tests</module> -->
+				<module>org.eclipse.osbp.ecview.core.common</module>
+				<module>org.eclipse.osbp.ecview.core.common.model</module>
+				<module>org.eclipse.osbp.ecview.core.extension.model</module>
+				<module>org.eclipse.osbp.ecview.core.extension.editparts</module>
+				<!-- <module>org.eclipse.osbp.ecview.core.ui.e4.css.core</module> -->
+				<module>org.eclipse.osbp.ecview.core.ui.presentation.common</module>
+				<!-- <module>org.eclipse.osbp.ecview.core.ui.presentation.swt</module> -->
+				<!-- <module>org.eclipse.osbp.ecview.core.ui.presentation.swt.tests</module> -->
+
+				<!-- P2 features -->
+				<module>org.eclipse.osbp.ecview.core.feature.core</module>
+				<!-- <module>org.eclipse.osbp.ecview.core.feature.ui.presentation.swt</module> -->
+				<!-- end P2 features -->
+			</modules>
+		</profile>
+
+		<profile>
+			<id>p2-luna-core</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<build>
+				<defaultGoal>verify</defaultGoal>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>target-platform-configuration</artifactId>
+						<version>${tycho-version}</version>
+						<configuration>
+							<dependency-resolution>
+								<optionalDependencies>ignore</optionalDependencies>
+							</dependency-resolution>
+							<!-- <resolver>p2</resolver> -->
+							<!-- <pomDependencies>consider</pomDependencies> -->
+							<ignoreTychoRepositories>true</ignoreTychoRepositories>
+							<target>
+								<artifact>
+									<groupId>org.eclipse.osbp.ecview.core</groupId>
+									<artifactId>org.eclipse.osbp.ecview.core.target.luna</artifactId>
+									<version>0.9.0-SNAPSHOT</version>
+								</artifact>
+							</target>
+						</configuration>
+					</plugin>
+					<plugin>
+						<artifactId>maven-clean-plugin</artifactId>
+						<configuration>
+							<filesets>
+								<fileset>
+									<directory>xtend-gen</directory>
+									<includes>
+										<include>**</include>
+									</includes>
+								</fileset>
+							</filesets>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.eclipse.xtend</groupId>
+						<artifactId>xtend-maven-plugin</artifactId>
+						<executions>
+							<execution>
+								<goals>
+									<goal>compile</goal>
+									<goal>testCompile</goal>
+								</goals>
+								<configuration>
+									<outputDirectory>xtend-gen</outputDirectory>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+			<modules>
+				<!-- exclusive for P2 -->
+				<!-- <module>org.eclipse.osbp.ecview.core.target.kepler</module> -->
+				<module>org.eclipse.osbp.ecview.core.p2</module>
+				<!-- P2 features -->
+				<module>org.eclipse.osbp.ecview.core.feature.core</module>
+				<!-- end P2 features -->
+
+				<!-- P2 bundles -->
+				<module>org.eclipse.osbp.ecview.core.common</module>
+				<module>org.eclipse.osbp.ecview.core.common.editparts.emf</module>
+				<module>org.eclipse.osbp.ecview.core.common.model</module>
+				<module>org.eclipse.osbp.ecview.core.extension.editparts</module>
+				<module>org.eclipse.osbp.ecview.core.extension.editparts.emf</module>
+				<module>org.eclipse.osbp.ecview.core.extension.model</module>
+				<module>org.eclipse.osbp.ecview.core.util.emf</module>
+				<module>org.eclipse.osbp.ecview.core.emf.api</module>
+
+				<module>org.eclipse.osbp.ecview.core.databinding.beans</module>
+				<module>org.eclipse.osbp.ecview.core.databinding.emf</module>
+
+				<module>org.eclipse.osbp.ecview.core.ui.presentation.common</module>
+
+				<!-- <module>org.eclipse.osbp.ecview.core.common.model.tests</module> -->
+				<!-- <module>org.eclipse.osbp.ecview.core.extension.tests</module> -->
+				<!-- <module>org.eclipse.osbp.ecview.core.databinding.tests</module> -->
+				<!-- <module>org.eclipse.osbp.ecview.core.common.tests</module> -->
+				<!-- P2 bundles -->
+			</modules>
+		</profile>
+
+		<!-- <profile> -->
+		<!-- <id>build.p2</id> -->
+		<!-- <activation> -->
+		<!-- <property> -->
+		<!-- <name>osbp.build.p2</name> -->
+		<!-- </property> -->
+		<!-- </activation> -->
+		<!-- <build> -->
+		<!-- <defaultGoal>clean verify</defaultGoal> -->
+		<!-- </build> -->
+		<!-- <modules> -->
+		<!-- <module>org.eclipse.osbp.ecview.core.p2</module> -->
+		<!-- </modules> -->
+		<!-- </profile> -->
+
+		<profile>
+			<id>binding</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<build>
+				<defaultGoal>verify</defaultGoal>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>target-platform-configuration</artifactId>
+						<version>${tycho-version}</version>
+						<configuration>
+							<dependency-resolution>
+								<optionalDependencies>ignore</optionalDependencies>
+							</dependency-resolution>
+							<!-- <resolver>p2</resolver> -->
+							<!-- <pomDependencies>consider</pomDependencies> -->
+							<ignoreTychoRepositories>true</ignoreTychoRepositories>
+							<target>
+								<artifact>
+									<groupId>org.eclipse.osbp.ecview.core</groupId>
+									<artifactId>org.eclipse.osbp.ecview.core.target.kepler</artifactId>
+									<version>0.9.0-SNAPSHOT</version>
+								</artifact>
+							</target>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+			<modules>
+				<!-- exclusive for P2 -->
+				<module>org.eclipse.osbp.ecview.core.target.kepler</module>
+				<module>org.eclipse.osbp.ecview.core.common</module>
+				<module>org.eclipse.osbp.ecview.core.databinding.beans</module>
+				<!-- P2 bundles -->
+			</modules>
+		</profile>
+	</profiles>
+
+	<pluginRepositories>
+		<pluginRepository>
+			<id>tycho-snapshots</id>
+			<url>https://oss.sonatype.org/content/groups/public/</url>
+		</pluginRepository>
+		<pluginRepository>
+			<!-- used to find XMLTask jar -->
+			<id>atlassian</id>
+			<url>http://repository.atlassian.com/maven2/</url>
+		</pluginRepository>
+	</pluginRepositories>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-resources-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-maven-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-compiler-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-source-plugin</artifactId>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-dependency-plugin</artifactId>
+			</plugin>
+		</plugins>
+
+		<pluginManagement>
+			<plugins>
+				<!-- enable tycho build -->
+				<plugin>
+					<groupId>org.eclipse.tycho</groupId>
+					<artifactId>tycho-maven-plugin</artifactId>
+					<version>${tycho-version}</version>
+					<extensions>true</extensions>
+				</plugin>
+				<plugin>
+					<groupId>org.eclipse.tycho</groupId>
+					<artifactId>tycho-compiler-plugin</artifactId>
+					<version>${tycho-version}</version>
+					<configuration>
+						<compilerVersion>1.7</compilerVersion>
+						<encoding>UTF-8</encoding>
+						<source>1.7</source>
+						<target>1.7</target>
+					</configuration>
+				</plugin>
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-resources-plugin</artifactId>
+					<version>2.5</version>
+					<configuration>
+						<encoding>UTF-8</encoding>
+					</configuration>
+				</plugin>
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-dependency-plugin</artifactId>
+					<version>2.7</version>
+					<configuration>
+						<encoding>UTF-8</encoding>
+					</configuration>
+				</plugin>
+				<plugin>
+					<groupId>org.eclipse.tycho</groupId>
+					<artifactId>tycho-source-plugin</artifactId>
+					<version>${tycho-version}</version>
+					<executions>
+						<execution>
+							<id>plugin-source</id>
+							<goals>
+								<goal>plugin-source</goal>
+							</goals>
+						</execution>
+					</executions>
+				</plugin>
+				<plugin>
+					<groupId>org.eclipse.tycho</groupId>
+					<artifactId>tycho-surefire-plugin</artifactId>
+					<version>${tycho-version}</version>
+					<configuration>
+						<includes>
+							<include>**/*Tests.java</include>
+						</includes>
+						<showEclipseLog>true</showEclipseLog>
+						<useUIHarness>false</useUIHarness>
+						<useUIThread>false</useUIThread>
+						<failIfNoTests>false</failIfNoTests>
+						<!-- <appArgLine>-Dfile.encoding=UTF-8</appArgLine> -->
+						<argLine>-Dfile.encoding=UTF-8</argLine>
+						<!-- Kill test JVM if tests take more than 10 minutes (600 seconds) 
+							to finish -->
+						<forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
+					</configuration>
+				</plugin>
+				<plugin>
+					<artifactId>maven-clean-plugin</artifactId>
+					<version>2.5</version>
+				</plugin>
+				<plugin>
+					<groupId>org.codehaus.mojo</groupId>
+					<artifactId>build-helper-maven-plugin</artifactId>
+					<version>1.7</version>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+	<description>ECView parent</description>
+</project>